import Database from 'better-sqlite3' import { mkdirSync } from 'fs' import { join, dirname } from 'path' import { fileURLToPath } from 'url' const __dirname = dirname(fileURLToPath(import.meta.url)) const DATA_DIR = join(__dirname, '..', 'data') const DB_PATH = process.env.DB_PATH || join(DATA_DIR, 'partite.db') mkdirSync(DATA_DIR, { recursive: true }) const db = new Database(DB_PATH) db.pragma('journal_mode = WAL') db.exec(` CREATE TABLE IF NOT EXISTS partite ( id INTEGER PRIMARY KEY AUTOINCREMENT, data TEXT NOT NULL, modalita TEXT NOT NULL, nome_home TEXT NOT NULL, nome_guest TEXT NOT NULL, set_home INTEGER NOT NULL, set_guest INTEGER NOT NULL, vincitore TEXT, json TEXT NOT NULL ) `) const stmtInsert = db.prepare(` INSERT INTO partite (data, modalita, nome_home, nome_guest, set_home, set_guest, vincitore, json) VALUES (?, ?, ?, ?, ?, ?, ?, ?) `) export function salvaPartita(state) { const payload = { data: new Date().toISOString(), modalita: state.modalitaPartita, nomi: state.sp.nomi, set: state.sp.set, vincitore: state.sp.partitaFinita?.vincitore ?? null, strisce: state.sp.strisce, } const { lastInsertRowid } = stmtInsert.run( payload.data, payload.modalita, payload.nomi.home, payload.nomi.guest, payload.set.home, payload.set.guest, payload.vincitore, JSON.stringify(payload) ) return lastInsertRowid } export function getPartite() { return db.prepare('SELECT * FROM partite ORDER BY id DESC').all() } export function getPartita(id) { return db.prepare('SELECT * FROM partite WHERE id = ?').get(id) }