-- Ayarlar tablosu (okul adı, vb. - admin panelden güncellenebilir)
CREATE TABLE IF NOT EXISTS settings (
    key TEXT PRIMARY KEY,
    value TEXT NOT NULL,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- Admin kullanıcıları
CREATE TABLE IF NOT EXISTS admins (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE NOT NULL,
    password TEXT NOT NULL,
    display_name TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- Akıllı tahtalar
CREATE TABLE IF NOT EXISTS boards (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    location TEXT DEFAULT '',
    mac_address TEXT DEFAULT '',
    ip_address TEXT DEFAULT '',
    status TEXT DEFAULT 'offline',
    is_locked INTEGER DEFAULT 1,
    last_seen DATETIME,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- OTP kodları
CREATE TABLE IF NOT EXISTS otps (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    board_id TEXT NOT NULL,
    code TEXT NOT NULL,
    expires_at DATETIME NOT NULL,
    used INTEGER DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (board_id) REFERENCES boards(id) ON DELETE CASCADE
);

-- Aktivite logları
CREATE TABLE IF NOT EXISTS activity_logs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    board_id TEXT,
    action TEXT NOT NULL,
    details TEXT DEFAULT '',
    ip_address TEXT DEFAULT '',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (board_id) REFERENCES boards(id) ON DELETE SET NULL
);

-- Varsayılan ayarlar
INSERT OR IGNORE INTO settings (key, value) VALUES ('school_name', 'Okul Adı Giriniz');
INSERT OR IGNORE INTO settings (key, value) VALUES ('otp_expiry_seconds', '60');
INSERT OR IGNORE INTO settings (key, value) VALUES ('lock_message', 'Bu tahta kilitlidir. Açmak için QR kodu telefonunuzla tarayın.');
INSERT OR IGNORE INTO settings (key, value) VALUES ('server_port', '3000');
INSERT OR IGNORE INTO settings (key, value) VALUES ('theme_color', '#6366f1');
