Fix student grade registration: set grade_10 as default, add auto-heal for legacy tawjihi_2008, add student grade selector and update-grade API

This commit is contained in:
Hamza-Ayed
2026-09-09 01:06:35 +03:00
parent 8183e53b86
commit 0a2ca71cb4
13 changed files with 440 additions and 41 deletions
+37
View File
@@ -0,0 +1,37 @@
<?php
require_once dirname(__DIR__) . '/app/bootstrap.php';
use App\Core\Database;
echo "🔧 Starting Saqel Student Grade Repair Engine...\n";
try {
Database::query("ALTER TABLE students ALTER COLUMN grade_level SET DEFAULT 'grade_10'");
echo " ✓ Altered students.grade_level default to 'grade_10'\n";
} catch (\Throwable $e) {
echo " ℹ Note on students alter: " . $e->getMessage() . "\n";
}
try {
Database::query("ALTER TABLE school_rosters ALTER COLUMN grade_level SET DEFAULT 'grade_10'");
echo " ✓ Altered school_rosters.grade_level default to 'grade_10'\n";
} catch (\Throwable $e) {
echo " ℹ Note on school_rosters alter: " . $e->getMessage() . "\n";
}
try {
$affectedStudents = Database::query("UPDATE students SET grade_level = 'grade_10' WHERE grade_level IN ('tawjihi_2008', 'grade_12')");
echo " ✓ Updated obsolete tawjihi_2008/grade_12 students to 'grade_10'\n";
} catch (\Throwable $e) {
echo " ❌ Error updating students: " . $e->getMessage() . "\n";
}
try {
$affectedRosters = Database::query("UPDATE school_rosters SET grade_level = 'grade_10' WHERE grade_level IN ('tawjihi_2008', 'grade_12')");
echo " ✓ Updated obsolete tawjihi_2008/grade_12 rosters to 'grade_10'\n";
} catch (\Throwable $e) {
echo " ❌ Error updating rosters: " . $e->getMessage() . "\n";
}
echo "🎉 Grade repair completed successfully!\n";