44 lines
1.6 KiB
SQL
44 lines
1.6 KiB
SQL
-- اسکیمای اولیه حکمشو (SQLite)
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
mobile TEXT NOT NULL UNIQUE,
|
|
first_name TEXT,
|
|
last_name TEXT,
|
|
avatar TEXT,
|
|
coins INTEGER NOT NULL DEFAULT 0,
|
|
is_admin INTEGER NOT NULL DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS otp_tokens (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
user_id INTEGER NOT NULL,
|
|
token TEXT NOT NULL,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_otp_user ON otp_tokens(user_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS wallet_tx (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
user_id INTEGER NOT NULL,
|
|
amount INTEGER NOT NULL, -- مثبت=واریز، منفی=برداشت
|
|
reason TEXT NOT NULL, -- مثل: game_win, kot, purchase
|
|
ref TEXT, -- شناسه میز/تراکنش مرجع
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_wallet_user ON wallet_tx(user_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS game_history (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
room TEXT NOT NULL,
|
|
players_json TEXT NOT NULL,
|
|
winner_team INTEGER NOT NULL,
|
|
kot INTEGER NOT NULL DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|