Implement verified curriculum, video review, watch sessions, ledger safeguards, and remove demo data

This commit is contained in:
Hamza-Ayed
2026-09-09 17:04:08 +03:00
parent 0dc5df7b5e
commit 5af684a892
49 changed files with 1809 additions and 3005 deletions
+10
View File
@@ -92,6 +92,12 @@ $router->get('/api/curriculum/search', function ($request, $response) {
$router->get('/api/curriculum/simulations', [\App\Controllers\CurriculumController::class, 'listSimulations']);
$router->get('/api/curriculum/simulations/{subject}/{simName}', [\App\Controllers\CurriculumController::class, 'getSimulation']);
$router->get('/api/curriculum/document', [\App\Controllers\CurriculumController::class, 'getDocumentContent']);
$router->get('/api/curriculum/assets/{assetId}', [\App\Controllers\CurriculumController::class, 'getPublishedAsset'], $studentMiddleware);
$router->get('/api/curriculum/lessons/{lessonId}/videos', [\App\Controllers\VideoController::class, 'listPublishedLessonVideos'], $studentMiddleware);
$router->get('/api/curriculum/lessons/{lessonId}/english-package', [\App\Controllers\CurriculumController::class, 'getPublishedEnglishPackage'], $studentMiddleware);
$router->get('/api/video-versions/{versionId}/playback', [\App\Controllers\VideoController::class, 'getVideoVersionPlayback'], $studentMiddleware);
$router->post('/api/video-versions/{versionId}/watch-sessions', [\App\Controllers\VideoController::class, 'startWatchSession'], $studentMiddleware);
$router->post('/api/watch-sessions/{sessionId}/events', [\App\Controllers\VideoController::class, 'recordWatchEvent'], $studentMiddleware);
// Health & Diagnostic Routes
$router->get('/api/health', function ($request, $response) {
@@ -157,6 +163,10 @@ $router->post('/api/teacher/broadcast', [\App\Controllers\TeacherController:
// Dual Video Storage & Cloudflare R2 / HLS Stream Routes (API-Driven)
$router->post('/api/teacher/videos/upload-direct', [\App\Controllers\VideoController::class, 'uploadDirect'], $teacherMiddleware);
$router->post('/api/teacher/submissions/preflight', [\App\Controllers\VideoController::class, 'preflightSubmission'], $teacherMiddleware);
$router->post('/api/admin/video-review/publish', [\App\Controllers\VideoController::class, 'publishReviewedVersion'], $superAdminMiddleware);
$router->post('/api/admin/video-review/decision', [\App\Controllers\VideoController::class, 'recordVideoReviewDecision'], $superAdminMiddleware);
$router->post('/api/admin/video-review/evidence', [\App\Controllers\VideoController::class, 'submitVideoReviewEvidence'], $superAdminMiddleware);
$router->post('/api/teacher/lessons/checkpoints', [\App\Controllers\VideoController::class, 'saveCheckpoint'], $teacherMiddleware);
$router->get('/api/student/lessons', [\App\Controllers\VideoController::class, 'getStudentLessons'], [\App\Middlewares\AuthMiddleware::class]);
$router->get('/api/videos/stream/{uuid}', [\App\Controllers\VideoController::class, 'streamLocalVideo'], [\App\Middlewares\AuthMiddleware::class]);