import Database from 'better-sqlite3' import { join, dirname } from 'path' import { fileURLToPath } from 'url' import fs from 'fs' const __dirname = dirname(fileURLToPath(import.meta.url)) const projectRoot = join(__dirname, '..', '..') const dataDir = join(projectRoot, 'data') const dbPath = join(dataDir, 'sports.db') if (!fs.existsSync(dataDir)) { fs.mkdirSync(dataDir, { recursive: true }) } const db = new Database(dbPath) // 初始化数据库表 db.exec(` CREATE TABLE IF NOT EXISTS events ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, category TEXT NOT NULL, event_group TEXT NOT NULL, unit TEXT NOT NULL, status TEXT DEFAULT 'pending', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS teams ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, team_group TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS results ( id INTEGER PRIMARY KEY AUTOINCREMENT, event_id INTEGER NOT NULL, team_id INTEGER NOT NULL, score TEXT NOT NULL, rank INTEGER, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (event_id) REFERENCES events(id), FOREIGN KEY (team_id) REFERENCES teams(id) ); CREATE TABLE IF NOT EXISTS team_scores ( id INTEGER PRIMARY KEY AUTOINCREMENT, team_id INTEGER NOT NULL, total_score INTEGER DEFAULT 0, gold_count INTEGER DEFAULT 0, silver_count INTEGER DEFAULT 0, bronze_count INTEGER DEFAULT 0, FOREIGN KEY (team_id) REFERENCES teams(id) ); `) export default db