add all controllers logic

This commit is contained in:
root
2026-03-11 17:53:15 -04:00
parent 3e6c577085
commit 2ef71cc92b
421 changed files with 12009 additions and 5211 deletions
+141 -18
View File
@@ -24,7 +24,7 @@ use App\Http\Controllers\Api\Parents\ParentAttendanceReportController as ParentA
use App\Http\Controllers\Api\AttendanceTracking\AttendanceTrackingController;
use App\Http\Controllers\Api\Email\BroadcastEmailController;
use App\Http\Controllers\Api\Settings\ConfigurationController;
use App\Http\Controllers\Api\Staff\ContactController;
use App\Http\Controllers\Api\Staff\StaffController;
use App\Http\Controllers\Api\ClassPreparation\ClassPreparationController;
use App\Http\Controllers\Api\ClassPrep\ClassPrepController;
use App\Http\Controllers\Api\Email\EmailController;
@@ -36,6 +36,7 @@ use App\Http\Controllers\Api\Expenses\ExpenseController;
use App\Http\Controllers\Api\ExtraCharges\ExtraChargesController;
use App\Http\Controllers\Api\Parents\EmergencyContactController;
use App\Http\Controllers\Api\Settings\EventController;
use App\Http\Controllers\Api\Settings\PolicyController;
use App\Http\Controllers\Api\Family\FamilyAdminController;
use App\Http\Controllers\Api\Family\FamilyController;
use App\Http\Controllers\Api\Reports\FilesController;
@@ -44,12 +45,16 @@ use App\Http\Controllers\Api\Reports\StickersController;
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\System\DashboardController;
use App\Http\Controllers\Api\System\DatabaseHealthController;
use App\Http\Controllers\Api\System\NavBuilderController;
use App\Http\Controllers\Api\Scores\GradingController;
use App\Http\Controllers\Api\System\HealthController;
use App\Http\Controllers\Api\System\SchoolIdController;
use App\Http\Controllers\Api\System\SemesterRangeController;
use App\Http\Controllers\Api\Scores\HomeworkController;
use App\Http\Controllers\Api\Frontend\InfoIconController;
use App\Http\Controllers\Api\Frontend\FrontendController;
use App\Http\Controllers\Api\Inventory\InventoryController;
use App\Http\Controllers\Api\Inventory\InventoryCategoryController;
use App\Http\Controllers\Api\Inventory\InventoryMovementController;
@@ -58,15 +63,8 @@ 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\Incidents\IncidentController as IncidentApiController;
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\RefundController;
use App\Http\Controllers\Api\Finance\PaymentNotificationController;
@@ -82,17 +80,15 @@ 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\Inventory\SupplyCategoryController;
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\Ui\UiController;
use App\Http\Controllers\Api\Support\ContactController as SupportContactController;
use App\Http\Controllers\Api\Support\SupportController as ApiSupportController;
use App\Http\Controllers\Api\Scores\ProjectController as ProjectScoreController;
use App\Http\Controllers\Api\Scores\MidtermController as MidtermScoreController;
use App\Http\Controllers\Api\Scores\FinalController as FinalScoreController;
@@ -108,6 +104,10 @@ use App\Http\Controllers\Api\Subjects\SubjectCurriculumController as SubjectCurr
use App\Http\Controllers\Api\Exams\ExamDraftController as ExamDraftApiController;
use App\Http\Controllers\Api\Settings\ConfigurationAdminController;
use App\Http\Controllers\Api\Notifications\NotificationController as ApiNotificationController;
use App\Http\Controllers\Api\Utilities\PhoneFormatterController;
use App\Http\Controllers\Api\Settings\PreferencesController;
use App\Http\Controllers\Api\Settings\SettingsController;
use App\Http\Controllers\Api\Classes\ClassController as ClassSectionController;
use App\Http\Controllers\Api\Attendance\AdminAttendanceApiController;
use App\Http\Controllers\Api\Attendance\AttendanceCommentTemplateController;
@@ -124,6 +124,64 @@ Route::prefix('v1')->group(function () {
Route::get('me', [AuthController::class, 'me'])->middleware('auth.multi');
});
Route::prefix('policies')->group(function () {
Route::get('school', [PolicyController::class, 'school']);
Route::get('picture', [PolicyController::class, 'picture']);
});
Route::prefix('pages')->group(function () {
Route::get('privacy', [PageController::class, 'privacyPolicy']);
Route::get('terms', [PageController::class, 'termsOfService']);
Route::get('help', [PageController::class, 'helpCenter']);
Route::post('contact', [PageController::class, 'submitContact']);
});
Route::post('contact', [SupportContactController::class, 'send']);
Route::prefix('frontend')->group(function () {
Route::get('/', [FrontendController::class, 'index']);
Route::get('facility', [FrontendController::class, 'facility']);
Route::get('team', [FrontendController::class, 'team']);
Route::get('call-to-action', [FrontendController::class, 'callToAction']);
Route::get('testimonial', [FrontendController::class, 'testimonial']);
Route::get('not-found', [FrontendController::class, 'notFound']);
Route::get('me', [FrontendController::class, 'fetchUser'])->middleware('auth.multi');
});
Route::get('health', [HealthController::class, 'index']);
Route::get('system/db-check', [DatabaseHealthController::class, 'index']);
Route::middleware('auth.multi')->prefix('preferences')->group(function () {
Route::get('/', [PreferencesController::class, 'show']);
Route::post('/', [PreferencesController::class, 'store']);
Route::get('list', [PreferencesController::class, 'index']);
Route::get('{userId}', [PreferencesController::class, 'showForUser']);
Route::put('{userId}', [PreferencesController::class, 'updateForUser']);
Route::delete('{userId}', [PreferencesController::class, 'destroy']);
});
Route::middleware('auth.multi')->prefix('nav-builder')->group(function () {
Route::get('menu', [NavBuilderController::class, 'menu']);
Route::get('data', [NavBuilderController::class, 'data']);
Route::post('/', [NavBuilderController::class, 'store']);
Route::delete('{id}', [NavBuilderController::class, 'destroy']);
Route::post('reorder', [NavBuilderController::class, 'reorder']);
});
Route::middleware('auth.multi')->prefix('landing')->group(function () {
Route::get('/', [LandingPageController::class, 'index']);
Route::get('teacher', [LandingPageController::class, 'teacher']);
Route::get('parent', [LandingPageController::class, 'parent']);
Route::get('administrator', [LandingPageController::class, 'administrator']);
Route::get('admin', [LandingPageController::class, 'admin']);
Route::get('student', [LandingPageController::class, 'student']);
Route::get('guest', [LandingPageController::class, 'guest']);
});
Route::middleware('auth.multi')->prefix('info-icon')->group(function () {
Route::get('profile', [InfoIconController::class, 'profileIcon']);
});
Route::middleware('auth.multi')->prefix('administrator')->group(function () {
Route::get('absence', [AdministratorAbsenceController::class, 'index']);
Route::post('absence', [AdministratorAbsenceController::class, 'store']);
@@ -170,6 +228,12 @@ Route::prefix('v1')->group(function () {
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('late-slip-logs')->group(function () {
Route::get('/', [LateSlipLogsController::class, 'index']);
Route::get('{id}', [LateSlipLogsController::class, 'show']);
Route::delete('{id}', [LateSlipLogsController::class, 'destroy']);
});
});
Route::prefix('attendance-tracking')->group(function () {
@@ -191,6 +255,66 @@ Route::prefix('v1')->group(function () {
});
Route::middleware('auth.multi')->group(function () {
Route::get('dashboard/route', [DashboardController::class, 'route']);
Route::prefix('utilities/phone')->group(function () {
Route::post('format', [PhoneFormatterController::class, 'format']);
});
Route::prefix('ui')->group(function () {
Route::post('style', [UiController::class, 'style']);
});
Route::prefix('support')->group(function () {
Route::get('/', [ApiSupportController::class, 'index']);
Route::post('/', [ApiSupportController::class, 'store']);
Route::get('teacher', [ApiSupportController::class, 'teacher']);
});
Route::prefix('staff')->group(function () {
Route::get('/', [StaffController::class, 'index']);
Route::get('{id}', [StaffController::class, 'show']);
Route::post('/', [StaffController::class, 'store']);
Route::patch('{id}', [StaffController::class, 'update']);
Route::delete('{id}', [StaffController::class, 'destroy']);
});
Route::prefix('messages')->group(function () {
Route::get('/', [MessagesController::class, 'index']);
Route::get('inbox', [MessagesController::class, 'inbox']);
Route::get('sent', [MessagesController::class, 'sent']);
Route::get('drafts', [MessagesController::class, 'drafts']);
Route::get('trash', [MessagesController::class, 'trash']);
Route::post('/', [MessagesController::class, 'store']);
Route::post('receive', [MessagesController::class, 'receive']);
Route::get('recipients/{type}', [MessagesController::class, 'recipients']);
Route::get('{id}', [MessagesController::class, 'show']);
Route::patch('{id}', [MessagesController::class, 'update']);
Route::delete('{id}', [MessagesController::class, 'destroy']);
});
Route::prefix('settings')->group(function () {
Route::get('/', [SettingsController::class, 'index']);
Route::patch('/', [SettingsController::class, 'update']);
});
Route::prefix('ip-bans')->group(function () {
Route::get('/', [IpBanController::class, 'index']);
Route::get('{id}', [IpBanController::class, 'show']);
Route::post('ban', [IpBanController::class, 'ban']);
Route::post('unban', [IpBanController::class, 'unban']);
});
Route::prefix('class-sections')->group(function () {
Route::get('/', [ClassSectionController::class, 'index']);
Route::post('/', [ClassSectionController::class, 'store']);
Route::get('{classSection}', [ClassSectionController::class, 'show']);
Route::put('{classSection}', [ClassSectionController::class, 'update']);
Route::delete('{classSection}', [ClassSectionController::class, 'destroy']);
Route::get('{classSectionId}/attendance', [ClassSectionController::class, 'attendance']);
Route::post('seed-defaults', [ClassSectionController::class, 'seedDefaults']);
});
Route::get('stats', [StatsController::class, 'index']);
Route::prefix('notifications')->group(function () {
Route::get('/', [ApiNotificationController::class, 'index']);
@@ -203,11 +327,6 @@ Route::prefix('v1')->group(function () {
Route::post('{notificationId}/restore', [ApiNotificationController::class, 'restore']);
Route::post('{notificationId}/read', [ApiNotificationController::class, 'markRead']);
});
Route::prefix('session')->group(function () {
Route::get('timeout-config', [SessionTimeoutController::class, 'config'])->name('session.timeout.config');
Route::get('check-timeout', [SessionTimeoutController::class, 'check'])->name('session.timeout.check');
Route::post('ping', [SessionTimeoutController::class, 'ping'])->name('session.timeout.ping');
});
Route::prefix('role-permissions')->group(function () {
Route::get('roles', [RolePermissionController::class, 'roles']);
Route::post('roles', [RolePermissionController::class, 'storeRole']);
@@ -681,6 +800,8 @@ Route::prefix('v1')->group(function () {
Route::prefix('class-prep')->group(function () {
Route::get('/', [ClassPreparationController::class, 'index']);
Route::post('mark-printed', [ClassPreparationController::class, 'markPrinted']);
Route::post('adjustments', [ClassPreparationController::class, 'saveAdjustments']);
Route::post('print/{classSectionId}/{schoolYear}', [ClassPreparationController::class, 'print']);
Route::get('sticker-counts', [ClassPrepController::class, 'stickerCounts']);
Route::get('classes/{classSectionId}/students', [ClassPrepController::class, 'studentsByClass']);
});
@@ -732,6 +853,8 @@ Route::middleware('auth.multi')->group(function () {
Route::prefix('class-prep')->group(function () {
Route::get('/', [ClassPreparationController::class, 'index']);
Route::post('mark-printed', [ClassPreparationController::class, 'markPrinted']);
Route::post('adjustments', [ClassPreparationController::class, 'saveAdjustments']);
Route::post('print/{classSectionId}/{schoolYear}', [ClassPreparationController::class, 'print']);
Route::get('sticker-counts', [ClassPrepController::class, 'stickerCounts']);
Route::get('classes/{classSectionId}/students', [ClassPrepController::class, 'studentsByClass']);
});