const path = require('path'); const fs = require('fs'); const { DatabaseSync } = require('node:sqlite'); const dataDir = process.env.DATA_DIR || path.join(__dirname, '..', 'data'); fs.mkdirSync(dataDir, { recursive: true }); const db = new DatabaseSync(path.join(dataDir, 'leaderboard.db')); db.exec('PRAGMA journal_mode = WAL;'); db.exec(` CREATE TABLE IF NOT EXISTS players ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL COLLATE NOCASE, created_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS doses ( id INTEGER PRIMARY KEY AUTOINCREMENT, player_id INTEGER NOT NULL REFERENCES players(id) ON DELETE CASCADE, date TEXT NOT NULL, created_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE INDEX IF NOT EXISTS idx_doses_player_date ON doses(player_id, date); `); module.exports = db;