group(function () { Route::middleware('auth:sanctum')->prefix('administrator')->group(function () { Route::get('absence', [AdministratorAbsenceController::class, 'index']); Route::post('absence', [AdministratorAbsenceController::class, 'store']); Route::get('dashboard/metrics', [AdministratorDashboardController::class, 'metrics']); Route::get('dashboard/user-search', [AdministratorDashboardController::class, 'userSearch']); Route::get('teacher-submissions', [AdministratorTeacherSubmissionController::class, 'index']); Route::post('teacher-submissions/notify', [AdministratorTeacherSubmissionController::class, 'notify']); Route::get('notifications/alerts', [AdministratorNotificationController::class, 'alerts']); Route::post('notifications/alerts', [AdministratorNotificationController::class, 'saveAlerts']); Route::get('notifications/print-recipients', [AdministratorNotificationController::class, 'printRecipients']); Route::post('notifications/print-recipients', [AdministratorNotificationController::class, 'savePrintRecipients']); Route::get('enrollment-withdrawal', [AdministratorEnrollmentController::class, 'index']); Route::get('enrollment-withdrawal/new-students', [AdministratorEnrollmentController::class, 'newStudents']); Route::post('enrollment-withdrawal/update-statuses', [AdministratorEnrollmentController::class, 'updateStatuses']); }); Route::middleware('auth:sanctum')->prefix('attendance')->group(function () { // Teacher Route::get('/teacher/grid', [TeacherAttendanceApiController::class, 'grid']); Route::get('/teacher/form', [TeacherAttendanceApiController::class, 'form']); Route::post('/teacher/submit', [TeacherAttendanceApiController::class, 'submit']); // Admin daily/student attendance Route::get('/admin/daily', [AdminAttendanceApiController::class, 'dailyData']); Route::post('/admin/update', [AdminAttendanceApiController::class, 'updateManagement']); Route::post('/admin/add-entry', [AdminAttendanceApiController::class, 'addEntry']); // Staff/admin monthly/admin attendance Route::get('/staff/month', [StaffAttendanceApiController::class, 'monthData']); Route::get('/staff/admins', [StaffAttendanceApiController::class, 'admins']); Route::post('/staff/admins/save', [StaffAttendanceApiController::class, 'saveAdmins']); Route::post('/staff/cell', [StaffAttendanceApiController::class, 'saveCell']); Route::get('/staff/month-csv', [StaffAttendanceApiController::class, 'monthCsv']); }); Route::prefix('attendance-tracking')->group(function () { Route::get('/pending-violations', [AttendanceTrackingController::class, 'pendingViolations']); Route::get('/notified-violations', [AttendanceTrackingController::class, 'notifiedViolations']); Route::get('/student-case/{studentId}', [AttendanceTrackingController::class, 'studentCase']); Route::post('/record', [AttendanceTrackingController::class, 'record']); Route::post('/send-auto-emails', [AttendanceTrackingController::class, 'sendAutoEmails']); Route::get('/compose', [AttendanceTrackingController::class, 'compose']); Route::post('/send-manual-email', [AttendanceTrackingController::class, 'sendManualEmail']); Route::get('/parents-info', [AttendanceTrackingController::class, 'parentsInfo']); Route::post('/save-notification-note', [AttendanceTrackingController::class, 'saveNotificationNote']); }); Route::prefix('assignments')->group(function () { Route::get('/', [AssignmentApiController::class, 'index']); Route::post('/', [AssignmentApiController::class, 'store']); Route::get('/class-assignment-data', [AssignmentApiController::class, 'classAssignmentData']); }); Route::middleware('auth:sanctum')->group(function () { Route::get('stats', [StatsController::class, 'index']); Route::prefix('badges')->group(function () { Route::get('form-data', [BadgeController::class, 'formData']); Route::post('pdf', [BadgeController::class, 'generatePdf']); Route::get('print-status', [BadgeController::class, 'printStatus']); Route::post('log-print', [BadgeController::class, 'logPrint']); }); }); }); Route::prefix('attendance-comment-templates')->group(function () { Route::get('/', [AttendanceCommentTemplateController::class, 'index']); Route::get('list-data', [AttendanceCommentTemplateController::class, 'listData']); Route::get('{id}', [AttendanceCommentTemplateController::class, 'show']); Route::post('/', [AttendanceCommentTemplateController::class, 'store']); Route::put('{id}', [AttendanceCommentTemplateController::class, 'update']); Route::delete('{id}', [AttendanceCommentTemplateController::class, 'destroy']); }); Route::prefix('attendance-tracking')->group(function () { Route::get('pending-violations', [AttendanceTrackingController::class, 'pendingViolations']); Route::get('notified-violations', [AttendanceTrackingController::class, 'notifiedViolations']); Route::get('student-case/{studentId}', [AttendanceTrackingController::class, 'studentCase']); Route::post('record', [AttendanceTrackingController::class, 'record']); Route::post('send-auto-emails', [AttendanceTrackingController::class, 'sendAutoEmails']); Route::get('compose', [AttendanceTrackingController::class, 'compose']); Route::post('send-manual-email', [AttendanceTrackingController::class, 'sendManualEmail']); Route::get('parents-info', [AttendanceTrackingController::class, 'parentsInfo']); Route::post('save-notification-note', [AttendanceTrackingController::class, 'saveNotificationNote']); }); Route::middleware('auth:sanctum')->group(function () { Route::prefix('assignments')->group(function () { Route::get('/', [AssignmentApiController::class, 'index']); Route::post('/', [AssignmentApiController::class, 'store']); Route::get('class-assignment-data', [AssignmentApiController::class, 'classAssignmentData']); }); Route::prefix('badges')->group(function () { Route::get('form-data', [BadgeController::class, 'formData']); Route::post('pdf', [BadgeController::class, 'generatePdf']); Route::get('print-status', [BadgeController::class, 'printStatus']); Route::post('log-print', [BadgeController::class, 'logPrint']); }); });