feat: tournament DB schema
Add tournaments, tournament_entries, and tournament_matches tables with Drizzle ORM definitions and SQLite CREATE TABLE migrations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
38f94c2955
commit
4dfa49c036
@@ -1,4 +1,5 @@
|
||||
import { sqlite } from './index.js'
|
||||
import { logger } from '../lib/logger.js'
|
||||
|
||||
export function runMigrations() {
|
||||
sqlite.exec(`
|
||||
@@ -86,6 +87,45 @@ export function runMigrations() {
|
||||
);
|
||||
`)
|
||||
|
||||
|
||||
sqlite.exec(`
|
||||
CREATE TABLE IF NOT EXISTS tournaments (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
format TEXT NOT NULL DEFAULT 'single_elim',
|
||||
size INTEGER NOT NULL,
|
||||
entry_sats INTEGER NOT NULL DEFAULT 0,
|
||||
prize_sats INTEGER NOT NULL DEFAULT 0,
|
||||
status TEXT NOT NULL DEFAULT 'open',
|
||||
current_round INTEGER NOT NULL DEFAULT 0,
|
||||
season_id TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
started_at TEXT,
|
||||
finished_at TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tournament_entries (
|
||||
id TEXT PRIMARY KEY,
|
||||
tournament_id TEXT NOT NULL REFERENCES tournaments(id),
|
||||
bot_id TEXT NOT NULL REFERENCES bots(id),
|
||||
seed INTEGER NOT NULL DEFAULT 0,
|
||||
eliminated INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tournament_matches (
|
||||
id TEXT PRIMARY KEY,
|
||||
tournament_id TEXT NOT NULL REFERENCES tournaments(id),
|
||||
round INTEGER NOT NULL,
|
||||
match_index INTEGER NOT NULL,
|
||||
bot_a_id TEXT REFERENCES bots(id),
|
||||
bot_b_id TEXT REFERENCES bots(id),
|
||||
fight_id TEXT REFERENCES fights(id),
|
||||
winner_id TEXT REFERENCES bots(id),
|
||||
status TEXT NOT NULL DEFAULT 'pending'
|
||||
);
|
||||
`)
|
||||
|
||||
// Column migrations for existing databases
|
||||
const migrations = [
|
||||
"ALTER TABLE bots ADD COLUMN archetype TEXT NOT NULL DEFAULT 'standard'",
|
||||
@@ -120,5 +160,5 @@ export function runMigrations() {
|
||||
sqlite.exec("UPDATE bots SET bot_type = 'classic' WHERE webhook_url LIKE 'http://classic.local%' AND bot_type = 'regular'")
|
||||
} catch { /* ok */ }
|
||||
|
||||
console.log('[botfights] database migrated')
|
||||
logger.info('db', 'database migrated')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user