feat: add tournoment
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
-- تورنومنتِ امتیازی: بازیکنان با پرداختِ ورودی ثبتنام میکنند و در بازهی
|
||||
-- تورنومنت با بردنِ بازیها امتیاز میگیرند؛ در پایان، نفراتِ برتر جایزه میگیرند.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tournaments (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
title TEXT NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
entry_fee INTEGER NOT NULL DEFAULT 0, -- ورودی به سکه
|
||||
prizes TEXT NOT NULL DEFAULT '[]', -- JSON: سکهی جایزه بهترتیبِ رتبه [رتبه۱, رتبه۲, ...]
|
||||
starts_at TEXT NOT NULL, -- زمانِ شروع (UTC)
|
||||
ends_at TEXT NOT NULL, -- زمانِ پایان (UTC)
|
||||
settled INTEGER NOT NULL DEFAULT 0, -- آیا جوایز پرداخت شده
|
||||
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%d %H:%M:%S','now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tournament_entries (
|
||||
tournament_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
points INTEGER NOT NULL DEFAULT 0,
|
||||
games INTEGER NOT NULL DEFAULT 0,
|
||||
wins INTEGER NOT NULL DEFAULT 0,
|
||||
prize INTEGER NOT NULL DEFAULT 0, -- سکهی جایزهی دریافتی (پس از تسویه)
|
||||
joined_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%d %H:%M:%S','now')),
|
||||
PRIMARY KEY (tournament_id, user_id),
|
||||
FOREIGN KEY (tournament_id) REFERENCES tournaments(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tournament_entries_user ON tournament_entries(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_tournaments_window ON tournaments(ends_at, settled);
|
||||
Reference in New Issue
Block a user