fix apply the plan docs/alrahma_api_fix_plan_school_year_only_v7
API CI/CD / Validate (composer + pint) (push) Successful in 3m10s
API CI/CD / Test (PHPUnit) (push) Failing after 6m49s
API CI/CD / Build frontend assets (push) Successful in 1m3s
API CI/CD / Security audit (push) Failing after 1m0s
API CI/CD / Deploy to shared hosting (PHP) (push) Has been skipped

This commit is contained in:
root
2026-07-07 01:52:29 -04:00
parent 58726ee0e9
commit 031e499819
35 changed files with 5633 additions and 182 deletions
+29 -9
View File
@@ -43,6 +43,7 @@ use App\Http\Controllers\Api\Expenses\ExpenseController;
use App\Http\Controllers\Api\ExtraCharges\ExtraChargesController;
use App\Http\Controllers\Api\Family\FamilyAdminController;
use App\Http\Controllers\Api\Family\FamilyController;
use App\Http\Controllers\Api\Family\ParentProfileAdminController;
use App\Http\Controllers\Api\Finance\BalanceCarryforwardController;
use App\Http\Controllers\Api\Finance\ChargeController;
use App\Http\Controllers\Api\Finance\EventChargeController;
@@ -384,10 +385,10 @@ Route::prefix('v1')->group(function () {
Route::prefix('staff')->group(function () {
Route::get('/', [StaffController::class, 'index']);
Route::get('form-options', [StaffController::class, 'formOptions']);
Route::get('{id}', [StaffController::class, 'show']);
Route::post('/', [StaffController::class, 'store']);
Route::patch('{id}', [StaffController::class, 'update']);
Route::delete('{id}', [StaffController::class, 'destroy']);
Route::get('{id}', [StaffController::class, 'show'])->whereNumber('id');
Route::post('/', [StaffController::class, 'store'])->middleware('school_year.editable');
Route::patch('{id}', [StaffController::class, 'update'])->whereNumber('id')->middleware('school_year.editable');
Route::delete('{id}', [StaffController::class, 'destroy'])->whereNumber('id')->middleware('school_year.editable');
});
Route::prefix('flags')->group(function () {
@@ -509,10 +510,20 @@ Route::prefix('v1')->group(function () {
});
Route::middleware(['multi.auth', 'account.active'])->prefix('school-years')->group(function () {
Route::get('/', [SchoolYearController::class, 'index'])->middleware('perm:school_year.view');
Route::get('/', [SchoolYearController::class, 'index']);
Route::get('current', [SchoolYearController::class, 'current']);
Route::get('options', [SchoolYearController::class, 'options']);
Route::get('summary', [SchoolYearController::class, 'summarySelected'])->middleware('perm:school_year.view');
Route::get('reports/closing', [SchoolYearController::class, 'closingReportSelected'])->middleware('perm:school_year.view');
Route::post('validate-close', [SchoolYearController::class, 'validateCloseSelected'])->middleware('perm:school_year.close');
Route::post('preview-close', [SchoolYearController::class, 'previewCloseSelected'])->middleware('perm:school_year.close');
Route::post('close', [SchoolYearController::class, 'closeSelected'])->middleware('perm:school_year.close');
Route::post('reopen', [SchoolYearController::class, 'reopenSelected'])->middleware('perm:school_year.reopen');
Route::post('archive', [SchoolYearController::class, 'archiveSelected'])->middleware('perm:school_year.archive');
Route::get('parent-balances', [SchoolYearController::class, 'parentBalancesSelected'])->middleware('perm:finance.balance_transfer.view');
Route::get('promotion-preview', [SchoolYearController::class, 'promotionPreviewSelected'])->middleware('perm:student_enrollment.promote');
Route::post('/', [SchoolYearController::class, 'store'])->middleware('perm:school_year.create');
Route::patch('selected', [SchoolYearController::class, 'updateSelected'])->middleware('perm:school_year.manage');
Route::patch('{schoolYear}', [SchoolYearController::class, 'update'])->middleware('perm:school_year.manage')->whereNumber('schoolYear');
Route::get('{schoolYear}/summary', [SchoolYearController::class, 'summary'])->middleware('perm:school_year.view')->whereNumber('schoolYear');
Route::get('{schoolYear}/reports/closing', [SchoolYearController::class, 'closingReport'])->middleware('perm:school_year.view')->whereNumber('schoolYear');
@@ -685,10 +696,10 @@ Route::prefix('v1')->group(function () {
Route::prefix('staff')->group(function () {
Route::get('/', [StaffController::class, 'index']);
Route::get('form-options', [StaffController::class, 'formOptions']);
Route::get('{id}', [StaffController::class, 'show']);
Route::post('/', [StaffController::class, 'store']);
Route::patch('{id}', [StaffController::class, 'update']);
Route::delete('{id}', [StaffController::class, 'destroy']);
Route::get('{id}', [StaffController::class, 'show'])->whereNumber('id');
Route::post('/', [StaffController::class, 'store'])->middleware('school_year.editable');
Route::patch('{id}', [StaffController::class, 'update'])->whereNumber('id')->middleware('school_year.editable');
Route::delete('{id}', [StaffController::class, 'destroy'])->whereNumber('id')->middleware('school_year.editable');
});
Route::prefix('messages')->group(function () {
@@ -976,6 +987,15 @@ Route::prefix('v1')->group(function () {
Route::post('compose-email', [FamilyAdminController::class, 'composeEmail']);
});
Route::middleware('admin.access')->prefix('parent-profiles')->group(function () {
Route::get('/', [ParentProfileAdminController::class, 'index']);
Route::get('search', [ParentProfileAdminController::class, 'search']);
Route::get('{parent}', [ParentProfileAdminController::class, 'show'])->whereNumber('parent');
Route::patch('{parent}', [ParentProfileAdminController::class, 'update'])
->whereNumber('parent')
->middleware('school_year.editable');
});
Route::prefix('families')->group(function () {
Route::get('by-student/{studentId}', [FamilyController::class, 'familiesByStudent']);
Route::get('{familyId}/guardians', [FamilyController::class, 'guardiansByFamily']);