fix: Auto-seed official subjects table to satisfy foreign key constraints on courses creation
This commit is contained in:
@@ -17,7 +17,23 @@ class CurriculumService
|
||||
if (self::$schemaChecked) return;
|
||||
|
||||
try {
|
||||
// Check if lessons table has timeline_chapters_json column
|
||||
// 1. Check if subjects table has data, seed if empty
|
||||
$subjectsCount = (int)(Database::selectOne("SELECT COUNT(*) as total FROM subjects")['total'] ?? 0);
|
||||
if ($subjectsCount === 0) {
|
||||
Database::query(
|
||||
"INSERT INTO subjects (id, name, code, stream, is_active) VALUES
|
||||
(1, 'الرياضيات العلمي', 'math_scientific', 'scientific', 1),
|
||||
(2, 'الثقافة العسكرية والتربية الوطنية', 'military_culture', 'common', 1),
|
||||
(3, 'الفيزياء', 'physics_scientific', 'scientific', 1),
|
||||
(4, 'الكيمياء', 'chemistry_scientific', 'scientific', 1),
|
||||
(5, 'العلوم الحياتية (الأحياء)', 'biology_scientific', 'scientific', 1),
|
||||
(6, 'اللغة الإنجليزية', 'english_common', 'common', 1),
|
||||
(7, 'اللغة العربية المشتركة', 'arabic_common', 'common', 1)
|
||||
ON DUPLICATE KEY UPDATE name = VALUES(name)"
|
||||
);
|
||||
}
|
||||
|
||||
// 2. Check if lessons table has timeline_chapters_json column
|
||||
$cols = Database::select("SHOW COLUMNS FROM lessons LIKE 'timeline_chapters_json'");
|
||||
if (empty($cols)) {
|
||||
Database::query("ALTER TABLE lessons ADD COLUMN timeline_chapters_json JSON NULL AFTER hls_url");
|
||||
|
||||
Reference in New Issue
Block a user