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);
|
||||
@@ -0,0 +1,11 @@
|
||||
-- رتبه از بازیِ عمومی: بهجای یک میزِ «رتبهبندی»ِ جدا (که کاربر را گیج میکرد)،
|
||||
-- هر میزِ عمومی به برنده/بازنده امتیازِ رتبه میدهد (متناسب با سطحِ میز). میزِ
|
||||
-- تورنومنت هم عمومی است و همین امتیاز را میدهد. میزِ اختصاصیِ «رتبهبندی» حذف میشود.
|
||||
|
||||
UPDATE table_tiers SET rank_reward = 10 WHERE id = 'beginner';
|
||||
UPDATE table_tiers SET rank_reward = 20 WHERE id = 'amateur';
|
||||
UPDATE table_tiers SET rank_reward = 25 WHERE id = 'pro';
|
||||
UPDATE table_tiers SET rank_reward = 40 WHERE id = 'master';
|
||||
|
||||
-- حذفِ میزِ رتبهبندیِ اختصاصی از انتخابِ میز (سیستمِ رتبه و جدولِ قهرمانان میماند).
|
||||
UPDATE table_tiers SET enabled = 0 WHERE id = 'ranked';
|
||||
Reference in New Issue
Block a user