52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
require_once __DIR__ . '/../db/config.php';
|
|
|
|
function ensure_schema(PDO $db): void {
|
|
$db->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],
|
|
]);
|
|
}
|
|
}
|