CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE, password_hash TEXT, role TEXT, nama TEXT, guru_id INTEGER, aktif INTEGER DEFAULT 1);
CREATE TABLE IF NOT EXISTS guru (id INTEGER PRIMARY KEY AUTOINCREMENT, kode TEXT UNIQUE, nama TEXT, gender TEXT, status TEXT DEFAULT 'AKTIF', profil_lengkap INTEGER DEFAULT 0, kesiapan_lengkap INTEGER DEFAULT 0);
CREATE TABLE IF NOT EXISTS kelas (id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, tingkat TEXT, gender TEXT);
CREATE TABLE IF NOT EXISTS rombel (id INTEGER PRIMARY KEY AUTOINCREMENT, kelas_id INTEGER, nama TEXT, gender TEXT);
CREATE TABLE IF NOT EXISTS mapel (id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, jtm INTEGER DEFAULT 1, kitab TEXT, tingkat TEXT, kelas TEXT, status TEXT DEFAULT 'AKTIF');
CREATE TABLE IF NOT EXISTS draft_pembagian (id INTEGER PRIMARY KEY AUTOINCREMENT, kelas TEXT, rombel TEXT, mapel TEXT, jtm INTEGER DEFAULT 1, guru TEXT, kitab TEXT, status TEXT DEFAULT 'BELUM TERJADWAL', catatan TEXT);
CREATE TABLE IF NOT EXISTS blacklist_guru (id INTEGER PRIMARY KEY AUTOINCREMENT, guru TEXT, hari TEXT, jam INTEGER, alasan TEXT, status TEXT DEFAULT 'USULAN', created_at TEXT DEFAULT CURRENT_TIMESTAMP);
CREATE TABLE IF NOT EXISTS blacklist_mapel (id INTEGER PRIMARY KEY AUTOINCREMENT, mapel TEXT, target_mode TEXT DEFAULT 'SEMUA', target_value TEXT DEFAULT 'SEMUA', hari TEXT, jam INTEGER, keterangan TEXT, status TEXT DEFAULT 'AKTIF', created_by TEXT, created_at TEXT DEFAULT CURRENT_TIMESTAMP);
CREATE TABLE IF NOT EXISTS jadwal_master (id INTEGER PRIMARY KEY AUTOINCREMENT, hari TEXT, jam INTEGER, kelas TEXT, rombel TEXT, mapel TEXT, guru TEXT, kitab TEXT, status TEXT DEFAULT 'TERJADWAL', catatan TEXT);
CREATE TABLE IF NOT EXISTS settings (key TEXT PRIMARY KEY, value TEXT);
