<?php
// web/db.php
function db(): PDO {
    static $pdo = null;
    if ($pdo) return $pdo;

    $pdo = new PDO('sqlite:' . dirname(__DIR__) . '/data/app.db', null, null, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    ]);

    // Bedre concurrency når bot + web arbejder samtidig
    $pdo->exec('PRAGMA journal_mode=WAL');
    $pdo->exec('PRAGMA synchronous=NORMAL');
    $pdo->exec('PRAGMA busy_timeout=3000'); // 3s

    // Sikr users-tabellen findes (kompatibel med både 'password' og 'password_hash')
    $pdo->exec("
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            username TEXT UNIQUE NOT NULL,
            password TEXT,          -- foretrukket kolonne (password_hash())
            password_hash TEXT,     -- ældre kolonne (legacy)
            role TEXT DEFAULT 'user'
        )
    ");

    return $pdo;
}
