Files
back-hokm/internal/store/migrations/001_init.sql
T
2026-06-15 16:53:25 +03:30

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'))
);