Files
2026-03-08 16:33:24 -04:00

186 lines
11 KiB
PHP
Executable File

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\Auth\AuthController;
use App\Http\Controllers\DocsController;
use App\Http\Controllers\Api\UserController;
use App\Http\Controllers\Api\Administrator\AdministratorEnrollmentController;
use App\Http\Controllers\Api\Administrator\AdministratorAbsenceController;
use App\Http\Controllers\Api\Administrator\AdministratorDashboardController;
use App\Http\Controllers\Api\Administrator\AdministratorNotificationController;
use App\Http\Controllers\Api\Administrator\AdministratorTeacherSubmissionController;
use App\Http\Controllers\Api\Badges\BadgeController;
use App\Http\Controllers\Api\Students\StudentController;
use App\Http\Controllers\Api\Attendance\AttendanceController;
use App\Http\Controllers\Api\Finance\InvoiceController;
use App\Http\Controllers\Api\Assignment\AssignmentApiController;
use App\Http\Controllers\Api\Parents\AuthorizedUsersController;
use App\Http\Controllers\Api\AttendanceTracking\AttendanceTrackingController;
use App\Http\Controllers\Api\Email\BroadcastEmailController;
use App\Http\Controllers\Api\Messaging\CommunicationController;
use App\Http\Controllers\Api\Settings\ConfigurationController;
use App\Http\Controllers\Api\Staff\ContactController;
use App\Http\Controllers\Api\Classes\ClassPreparationController;
use App\Http\Controllers\Api\Email\EmailController;
use App\Http\Controllers\Api\Email\EmailExtractorController;
use App\Http\Controllers\Api\Parents\EmergencyContactController;
use App\Http\Controllers\Api\Settings\EventController;
use App\Http\Controllers\Api\Finance\ExtraChargesController;
use App\Http\Controllers\Api\Family\FamilyAdminController;
use App\Http\Controllers\Api\Family\FamilyController;
use App\Http\Controllers\Api\Reports\FilesController;
use App\Http\Controllers\Api\Scores\FinalController;
use App\Http\Controllers\Api\Finance\FinancialController;
use App\Http\Controllers\Api\System\FlagController;
use App\Http\Controllers\Api\Scores\GradingController;
use App\Http\Controllers\Api\System\HealthController;
use App\Http\Controllers\Api\Scores\HomeworkController;
use App\Http\Controllers\Api\Scores\HomeworkTrackingController;
use App\Http\Controllers\Api\Frontend\InfoIconController;
use App\Http\Controllers\Api\Inventory\InventoryController;
use App\Http\Controllers\Api\Auth\IpBanController;
use App\Http\Controllers\Api\Frontend\LandingPageController;
use App\Http\Controllers\Api\Attendance\LateSlipLogsController;
use App\Http\Controllers\Api\Messaging\MessagesController;
use App\Http\Controllers\Api\Scores\MidtermController;
use App\Http\Controllers\Api\System\NavBuilderController;
use App\Http\Controllers\Api\Notifications\NotificationManagementController;
use App\Http\Controllers\Api\Frontend\PageController;
use App\Http\Controllers\Api\Scores\ParticipationController;
use App\Http\Controllers\Api\Settings\PolicyController;
use App\Http\Controllers\Api\Reports\PrintablesReportsController;
use App\Http\Controllers\Api\Scores\ProjectController;
use App\Http\Controllers\Api\Scores\QuizController;
use App\Http\Controllers\Api\Finance\PaymentController;
use App\Http\Controllers\Api\Finance\PaymentNotificationController;
use App\Http\Controllers\Api\Finance\PaymentTransactionController;
use App\Http\Controllers\Api\Finance\PaypalTransactionsController;
use App\Http\Controllers\Api\Finance\PurchaseOrderController;
use App\Http\Controllers\Api\Auth\RegisterController;
use App\Http\Controllers\Api\RolePermissionController;
use App\Http\Controllers\Api\RoleSwitcherController;
use App\Http\Controllers\Api\Settings\SchoolCalendarController;
use App\Http\Controllers\Api\Scores\ScoreCommentController;
use App\Http\Controllers\Api\Scores\ScoreController;
use App\Http\Controllers\Api\Scores\ScorePredictorController;
use App\Http\Controllers\Api\Auth\SessionTimeoutController;
use App\Http\Controllers\Api\Reports\SlipPrinterController;
use App\Http\Controllers\Api\Staff\StaffController;
use App\Http\Controllers\Api\Inventory\SupplierController;
use App\Http\Controllers\Api\Staff\TeacherController;
use App\Http\Controllers\Api\StatsController;
use App\Http\Controllers\Api\Frontend\UiController;
use App\Http\Controllers\Api\Messaging\WhatsappController;
use App\Http\Controllers\Api\Attendance\AdminAttendanceApiController;
use App\Http\Controllers\Api\Attendance\AttendanceCommentTemplateController;
use App\Http\Controllers\Api\Attendance\TeacherAttendanceApiController;
use App\Http\Controllers\Api\Attendance\StaffAttendanceApiController;
Route::prefix('v1')->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']);
});
});