exec(" CREATE TABLE IF NOT EXISTS classes ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, grade_level VARCHAR(20) NOT NULL, homeroom_teacher VARCHAR(120) DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); $db->exec(" CREATE TABLE IF NOT EXISTS students ( id INT AUTO_INCREMENT PRIMARY KEY, student_code VARCHAR(30) NOT NULL UNIQUE, full_name VARCHAR(160) NOT NULL, gender VARCHAR(12) DEFAULT NULL, class_id INT DEFAULT NULL, guardian_name VARCHAR(160) DEFAULT NULL, status VARCHAR(20) NOT NULL DEFAULT 'aktif', notes TEXT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_students_class (class_id), INDEX idx_students_status (status) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); } function seed_classes(PDO $db): void { $count = (int)$db->query("SELECT COUNT(*) FROM classes")->fetchColumn(); if ($count > 0) { return; } $defaults = [ ['X IPA 1', '10', 'Ibu Fitri'], ['X IPA 2', '10', 'Bapak Dedi'], ['XI IPS 1', '11', 'Ibu Rina'], ['XII IPA 1', '12', 'Bapak Arif'], ]; $stmt = $db->prepare("INSERT INTO classes (name, grade_level, homeroom_teacher) VALUES (:name, :grade, :teacher)"); foreach ($defaults as $row) { $stmt->execute([ ':name' => $row[0], ':grade' => $row[1], ':teacher' => $row[2], ]); } }