From 4e33882ac7b362b29ce0bdbf5fe523603f5c1305 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 4 Jun 2026 02:24:41 -0400 Subject: [PATCH] update api and add more features --- app.zip | Bin 0 -> 2059134 bytes app/.DS_Store | Bin 0 -> 6148 bytes app/Http/.DS_Store | Bin 0 -> 8196 bytes app/Http/Controllers/.DS_Store | Bin 0 -> 6148 bytes app/Http/Controllers/Api.zip | Bin 0 -> 240705 bytes .../AdministratorPromotionController.php | 375 +++ .../Controllers/Api/Auth/AuthController.php | 21 +- .../Api/Core/BaseApiController.php | 25 +- .../Api/Finance/ChargeController.php | 158 ++ .../Api/Finance/FeeCalculationController.php | 61 +- .../AuthorizedUserInviteController.php | 31 +- .../Api/Parents/AuthorizedUsersController.php | 34 +- .../Api/Parents/ParentController.php | 19 +- .../Api/Parents/ParentPromotionController.php | 173 ++ app/Http/Kernel.php | 68 - .../Middleware/EnsureParentProgressAccess.php | 25 +- .../Finance/ApplyExtraChargeRequest.php | 20 + .../Requests/Finance/ChargeListRequest.php | 21 + .../Finance/FeeFamilyBalanceRequest.php | 30 + .../Finance/FeeTuitionBreakdownRequest.php | 28 + .../Finance/MarkEventChargePaidRequest.php | 21 + .../Finance/StoreEventChargeRequest.php | 27 + .../Finance/StoreExtraChargeRequest.php | 28 + .../Promotions/AdminListPromotionsRequest.php | 51 + .../Promotions/EvaluateEligibilityRequest.php | 18 + .../ParentEnrollmentStepRequest.php | 30 + .../ParentPromotionOverviewRequest.php | 15 + .../Promotions/SendReminderRequest.php | 21 + .../SetEnrollmentDeadlineRequest.php | 19 + .../UpdatePromotionStatusRequest.php | 19 + .../UpsertLevelProgressionRequest.php | 22 + .../Resources/Fees/ChargeActionResource.php | 33 + .../Resources/Fees/ChargeListResource.php | 19 + .../Fees/FeeFamilyBalanceResource.php | 53 + app/Http/Resources/Fees/FeeRefundResource.php | 16 + .../Fees/FeeTuitionBreakdownResource.php | 41 + .../Promotions/LevelProgressionResource.php | 23 + .../Promotions/PromotionAuditLogResource.php | 25 + .../Promotions/PromotionReminderResource.php | 24 + .../Promotions/StudentPromotionResource.php | 53 + app/Models/AuthorizedUser.php | 1 + app/Models/EventCharges.php | 3 + app/Models/LevelProgression.php | 62 + app/Models/PromotionAuditLog.php | 64 + app/Models/PromotionReminderLog.php | 61 + app/Models/StudentPromotionRecord.php | 194 ++ app/Services/Auth/ApiLoginSecurityService.php | 30 +- .../Billing/BalanceCalculationService.php | 172 ++ app/Services/Billing/BillingTotalsService.php | 92 +- app/Services/Billing/ChargeService.php | 456 ++++ .../Fees/FeeRefundCalculatorService.php | 202 +- app/Services/Fees/FeeStudentFeeService.php | 168 +- .../Fees/TuitionCalculationService.php | 73 + .../AuthorizedUsersManagementService.php | 71 +- .../Parents/ParentEnrollmentService.php | 34 +- .../ParentEventParticipationService.php | 65 +- .../Parents/ParentRegistrationService.php | 19 +- .../Payments/PaymentEventChargesService.php | 54 +- .../Promotions/LevelProgressionService.php | 202 ++ .../Promotions/PromotionAuditService.php | 153 ++ .../PromotionEligibilityService.php | 393 +++ .../Promotions/PromotionEnrollmentService.php | 391 +++ .../Promotions/PromotionQueryService.php | 223 ++ .../Promotions/PromotionReminderService.php | 207 ++ .../Promotions/PromotionStatusService.php | 164 ++ artisan | 0 bootstrap/app.php | 27 +- ...120000_create_level_progressions_table.php | 35 + ...create_student_promotion_records_table.php | 64 + ...20020_create_promotion_audit_log_table.php | 34 + ...0_create_promotion_reminders_log_table.php | 35 + docs/.DS_Store | Bin 0 -> 8196 bytes ...administrator_promotion_controller_plan.md | 126 + docs/api_auth_controller_plan.md | 74 + ..._authorized_user_invite_controller_plan.md | 70 + docs/api_authorized_users_controller_plan.md | 76 + docs/api_base_api_controller_plan.md | 66 + docs/api_charge_controller_plan.md | 75 + docs/api_fee_calculation_controller_plan.md | 66 + docs/api_parent_controller_plan.md | 96 + docs/api_parent_promotion_controller_plan.md | 69 + docs/app_project_plan.md | 1640 ++++++++++++ docs/app_project_plan_hardened.md | 1903 ++++++++++++++ docs/controller_plan.md | 2093 +++++++++++++++ docs/modular_plans/.DS_Store | Bin 0 -> 10244 bytes ...app_project_plan_global_modular_islamic.md | 2308 +++++++++++++++++ .../islamic_sunday_school_update_index.md | 45 + .../laravel_school_context_phase1.zip | Bin 0 -> 24351 bytes .../laravel_school_context_phase1/.DS_Store | Bin 0 -> 6148 bytes .../.github/CODEOWNERS | 11 + .../.github/pull_request_template.md | 19 + .../.github/workflows/architecture.yml | 29 + .../.github/workflows/release-gate.yml | 23 + .../.github/workflows/release-readiness.yml | 27 + .../laravel_school_context_phase1_phase2.zip | Bin 0 -> 84178 bytes ...el_school_context_phase1_phase2_phase3.zip | Bin 0 -> 128515 bytes ...ol_context_phase1_phase2_phase3_phase4.zip | Bin 0 -> 150228 bytes ...ext_phase1_phase2_phase3_phase4_phase5.zip | Bin 0 -> 210762 bytes ...se1_phase2_phase3_phase4_phase5_phase6.zip | Bin 0 -> 264240 bytes ...se2_phase3_phase4_phase5_phase6_phase7.zip | Bin 0 -> 322839 bytes ...se3_phase4_phase5_phase6_phase7_phase8.zip | Bin 0 -> 426782 bytes ...se4_phase5_phase6_phase7_phase8_phase9.zip | Bin 0 -> 456640 bytes ...e5_phase6_phase7_phase8_phase9_phase10.zip | Bin 0 -> 486268 bytes ...elease_readiness_execution_plan_islamic.md | 1561 +++++++++++ ...1_school_context_execution_plan_islamic.md | 764 ++++++ ...2_core_contracts_execution_plan_islamic.md | 942 +++++++ ..._modular_finance_execution_plan_islamic.md | 1511 +++++++++++ ...dular_attendance_execution_plan_islamic.md | 1799 +++++++++++++ ...tudent_lifecycle_execution_plan_islamic.md | 2017 ++++++++++++++ ...ar_communication_execution_plan_islamic.md | 2056 +++++++++++++++ ...odular_reporting_execution_plan_islamic.md | 2187 ++++++++++++++++ ...ller_api_cleanup_execution_plan_islamic.md | 1850 +++++++++++++ ...dary_enforcement_execution_plan_islamic.md | 1602 ++++++++++++ .../school_tuition_payment_management_plan.md | 579 +++++ docs/student_promotion_enrollment_plan.md | 509 ++++ docs/tuition_income_prediction_plan.md | 1094 ++++++++ routes/api.php | 76 +- .../Api/V1/Finance/ChargeControllerTest.php | 166 ++ .../Finance/FeeCalculationControllerTest.php | 179 ++ .../ParentPromotionControllerTest.php | 145 ++ .../Billing/BalanceCalculationServiceTest.php | 238 ++ .../Billing/BillingTotalsServiceTest.php | 75 + .../Services/Billing/ChargeServiceTest.php | 228 ++ .../Fees/FeeRefundCalculatorServiceTest.php | 294 ++- .../Fees/FeeStudentFeeServiceTest.php | 161 +- .../Fees/TuitionCalculationServiceTest.php | 178 ++ .../PaymentEventChargesServiceTest.php | 2 +- .../LevelProgressionServiceTest.php | 86 + .../PromotionEligibilityServiceTest.php | 169 ++ .../PromotionEnrollmentServiceTest.php | 146 ++ .../Promotions/PromotionStatusServiceTest.php | 110 + 131 files changed, 34596 insertions(+), 340 deletions(-) create mode 100644 app.zip create mode 100644 app/.DS_Store create mode 100644 app/Http/.DS_Store create mode 100644 app/Http/Controllers/.DS_Store create mode 100644 app/Http/Controllers/Api.zip create mode 100644 app/Http/Controllers/Api/Administrator/AdministratorPromotionController.php create mode 100644 app/Http/Controllers/Api/Finance/ChargeController.php create mode 100644 app/Http/Controllers/Api/Parents/ParentPromotionController.php delete mode 100644 app/Http/Kernel.php create mode 100644 app/Http/Requests/Finance/ApplyExtraChargeRequest.php create mode 100644 app/Http/Requests/Finance/ChargeListRequest.php create mode 100644 app/Http/Requests/Finance/FeeFamilyBalanceRequest.php create mode 100644 app/Http/Requests/Finance/FeeTuitionBreakdownRequest.php create mode 100644 app/Http/Requests/Finance/MarkEventChargePaidRequest.php create mode 100644 app/Http/Requests/Finance/StoreEventChargeRequest.php create mode 100644 app/Http/Requests/Finance/StoreExtraChargeRequest.php create mode 100644 app/Http/Requests/Promotions/AdminListPromotionsRequest.php create mode 100644 app/Http/Requests/Promotions/EvaluateEligibilityRequest.php create mode 100644 app/Http/Requests/Promotions/ParentEnrollmentStepRequest.php create mode 100644 app/Http/Requests/Promotions/ParentPromotionOverviewRequest.php create mode 100644 app/Http/Requests/Promotions/SendReminderRequest.php create mode 100644 app/Http/Requests/Promotions/SetEnrollmentDeadlineRequest.php create mode 100644 app/Http/Requests/Promotions/UpdatePromotionStatusRequest.php create mode 100644 app/Http/Requests/Promotions/UpsertLevelProgressionRequest.php create mode 100644 app/Http/Resources/Fees/ChargeActionResource.php create mode 100644 app/Http/Resources/Fees/ChargeListResource.php create mode 100644 app/Http/Resources/Fees/FeeFamilyBalanceResource.php create mode 100644 app/Http/Resources/Fees/FeeTuitionBreakdownResource.php create mode 100644 app/Http/Resources/Promotions/LevelProgressionResource.php create mode 100644 app/Http/Resources/Promotions/PromotionAuditLogResource.php create mode 100644 app/Http/Resources/Promotions/PromotionReminderResource.php create mode 100644 app/Http/Resources/Promotions/StudentPromotionResource.php create mode 100644 app/Models/LevelProgression.php create mode 100644 app/Models/PromotionAuditLog.php create mode 100644 app/Models/PromotionReminderLog.php create mode 100644 app/Models/StudentPromotionRecord.php create mode 100644 app/Services/Billing/BalanceCalculationService.php create mode 100644 app/Services/Billing/ChargeService.php create mode 100644 app/Services/Fees/TuitionCalculationService.php create mode 100644 app/Services/Promotions/LevelProgressionService.php create mode 100644 app/Services/Promotions/PromotionAuditService.php create mode 100644 app/Services/Promotions/PromotionEligibilityService.php create mode 100644 app/Services/Promotions/PromotionEnrollmentService.php create mode 100644 app/Services/Promotions/PromotionQueryService.php create mode 100644 app/Services/Promotions/PromotionReminderService.php create mode 100644 app/Services/Promotions/PromotionStatusService.php mode change 100755 => 100644 artisan create mode 100644 database/migrations/2026_05_29_120000_create_level_progressions_table.php create mode 100644 database/migrations/2026_05_29_120010_create_student_promotion_records_table.php create mode 100644 database/migrations/2026_05_29_120020_create_promotion_audit_log_table.php create mode 100644 database/migrations/2026_05_29_120030_create_promotion_reminders_log_table.php create mode 100644 docs/.DS_Store create mode 100644 docs/api_administrator_promotion_controller_plan.md create mode 100644 docs/api_auth_controller_plan.md create mode 100644 docs/api_authorized_user_invite_controller_plan.md create mode 100644 docs/api_authorized_users_controller_plan.md create mode 100644 docs/api_base_api_controller_plan.md create mode 100644 docs/api_charge_controller_plan.md create mode 100644 docs/api_fee_calculation_controller_plan.md create mode 100644 docs/api_parent_controller_plan.md create mode 100644 docs/api_parent_promotion_controller_plan.md create mode 100644 docs/app_project_plan.md create mode 100644 docs/app_project_plan_hardened.md create mode 100644 docs/controller_plan.md create mode 100644 docs/modular_plans/.DS_Store create mode 100644 docs/modular_plans/app_project_plan_global_modular_islamic.md create mode 100644 docs/modular_plans/islamic_sunday_school_update_index.md create mode 100644 docs/modular_plans/laravel_school_context_phase1.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1/.DS_Store create mode 100644 docs/modular_plans/laravel_school_context_phase1/.github/CODEOWNERS create mode 100644 docs/modular_plans/laravel_school_context_phase1/.github/pull_request_template.md create mode 100644 docs/modular_plans/laravel_school_context_phase1/.github/workflows/architecture.yml create mode 100644 docs/modular_plans/laravel_school_context_phase1/.github/workflows/release-gate.yml create mode 100644 docs/modular_plans/laravel_school_context_phase1/.github/workflows/release-readiness.yml create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8_phase9.zip create mode 100644 docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8_phase9_phase10.zip create mode 100644 docs/modular_plans/phase_10_migration_release_readiness_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_1_school_context_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_2_core_contracts_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_3_modular_finance_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_4_modular_attendance_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_5_modular_student_lifecycle_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_6_modular_communication_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_7_modular_reporting_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_8_controller_api_cleanup_execution_plan_islamic.md create mode 100644 docs/modular_plans/phase_9_boundary_enforcement_execution_plan_islamic.md create mode 100644 docs/school_tuition_payment_management_plan.md create mode 100644 docs/student_promotion_enrollment_plan.md create mode 100644 docs/tuition_income_prediction_plan.md create mode 100644 tests/Feature/Api/V1/Finance/ChargeControllerTest.php create mode 100644 tests/Feature/Api/V1/Promotions/ParentPromotionControllerTest.php create mode 100644 tests/Unit/Services/Billing/BalanceCalculationServiceTest.php create mode 100644 tests/Unit/Services/Billing/ChargeServiceTest.php create mode 100644 tests/Unit/Services/Fees/TuitionCalculationServiceTest.php create mode 100644 tests/Unit/Services/Promotions/LevelProgressionServiceTest.php create mode 100644 tests/Unit/Services/Promotions/PromotionEligibilityServiceTest.php create mode 100644 tests/Unit/Services/Promotions/PromotionEnrollmentServiceTest.php create mode 100644 tests/Unit/Services/Promotions/PromotionStatusServiceTest.php diff --git a/app.zip b/app.zip new file mode 100644 index 0000000000000000000000000000000000000000..1e7f5ec5ba53f50115c1d1cd6dcebd44ebdca9ed GIT binary patch literal 2059134 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%0Dk58rCKH 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

ii1Z(r`zvFhf&!N8?y^_ap;D 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∋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

D*}Z`LSarjl~Z!=5S%Y`lxD&NH&%Ea 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⁣d`xLvkn=NZD}#fA19YC$)3D@h#@qZlRPsr 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�sbMKH7ZSu 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 z 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

iYStGdr3ShX6| z@Q_p~_{k(>GeYq3o%a*vkovx2VBtpPur!f0m+vn{=9e_=aS|C+GZXrW%+(fGLz<=2 z;>`meup9(w(cVAgRbCF;IMWTgnOiBw-(5v%Ubv|=8H>WhNH2I?@ouRJDyqeWyNp_; z#{#%c6IhcVcWp2Cz@GNCcnCyNk8Zx7)dx%4Zm{mDmON)vRE!kqTini2p>8kg3Q+K&72QZ(-!sK#%M)(E^?7; z-{Ks6nk{by%_h!M!xYUbeO^hMl)GwR##*KNW_ePq(A-$R_dwl*HYuBjD4ZYXW_Ci> zdi9Tt=zr>NJ*zrD(>@8dV2jSQ3ekIta19PX=Rx89;*MO4?_Yth99z-mZRG(1JXx<< zm2Rp{RQl50tFj{qe574i!88P>VMtjS0|dh4yoPCp0{!UhPIguqYtQD?)=hm7Sue`e zkXd=s`oKTSPHZCG4QD=*A@o4E6k zMqn)BY&=MX{&@W4A=;XvfOJvzF`<#Ed-YFrj%FeNt)?ClKKUL^R_-vKY(V(zDp4{# zZoW)bNj6l4Zh9!kLSW;5F|Fm>Q_}AO`exVLaafPDyoy&hcIK3;4dV_D3whlVu2lQ# zaG8v=P{}2knoeIylfCA-eooJ3Oisnt_^=`Q9l?eJed}0aF*38rh<8?Mo?6@Pr+C4n zhI-W+-jjl2NS4DsFV`OOsssZo+cAb%Gb1;)Y#3d6Rs4IWoo4#?LQ^A2FPa;(2&2_d zxNI2tM3vQ`M%EIaMwNtwbak^Ts&(8{=w>EDLs?PPBoLK0UNW_;y^^$Ym0$ zx7Pf4-41cQt_xk@^Lz1#m=J0)?lyj4WD)22Y&EwD5wB0B4+U*tO!tQ=s@K7)QoO#t zE?Z<9SiP%GSw&R#{W}aIct3kK`k?w+P`K{q(wlU2axMI~s(`MxixQLO_3$2wXqwuL zYgJu|r5@v}KVUszx;vHE4662hwD8CZUxYdUFD#d{xviKw*v#DcvZNwbVUlgC-{N&) zeh9uX9)rD*q*fFlIm)ku>*KD4A^2o;;qK*y<8J-b6!;!j^>Z!??pj4W<0%s}`u)eE z{!@`_)Phq`rwQJ5ZdAtN&dZIV0|3r*hy=8=-fIruTm6Ef9?}v^V4&Kr=Rz02(BYNHaCaj-0?l}gG61^Ty z+|fF``==NDY1sX(s`}%PXW9E}Li;OhR!AUjk9Ie!!2Z|}sSML4nxzI`p6`2sXe>_K zQ9PW%eDsd7FzW{S{5WW`=-DRLw6VFfwQW^msXAw}_s_y9LOgBr$&%MQI0`q=ulu{3mE+Fwe;509Rx^V-HRjs$lO=f*azP^_oBjNg1}8= zH=$og6Qx9Wxb{roBJu<4j>K>`>>Dp(cD_rYDWN`s4;!+=Sh^*ij?}Li3Gb}F=@NX+ zTBwx2?j&Bq_6?eeVdV{qkc?R+p=ajCp-wWpo0(Lv|8QJX{W_gXvBrH}=a@wrP@1AVzJkd}*Y(Q`f4~%47Pr`FsPHe_?d5DOC zbnaP6R8hgb^;@^#E9LOmEJ;ppM4!|UVF8vMXh%sLFlZ<3eWtP>EPD!s_-FxNx!O+P zwwXsjy!H(V&DyzhsRHm6KL@BLRn$EsAi_X3XsEGN+BgHx(oSyJ^S%6u-}yrV+CP6Q zGN$qWs=?0o@8Qh<55 z&eY=%EORrpuB;>f*i_o+`|l`OBXh&wVhlxdN6Wu~YMRvlS2pE$ z|J($vk_Q@z`3-nv^2b_~!8xARkY05sY3UT^1cy`Tmn*K&h2VVhVVYWQkb1Yv?N)_U zwpGrv2gEjg#sVo(n}+i@93-tSquaMlMign?dynxSk`njRH31@CWr{asslI4QoxYwR zpY`v&hf?)piAB5Sf(go2X73c5!4>R95!gHre25>VqcBLHI1~;dqWe4$V*4~0T^Ui+ zvQuJ2w;?m07(iNI`Nc&<__$qIInsPl({fY8kF)48F~83HojiOzSUH-eNlW)Oow(Cu zNKNPCy_rQ=*}2l9WQY21(!5>rS3^n)POgnOd4IVI~up)7r#$bCyge3KVd8Awy2Pxp%Q+gXlA_*(*zZ5cC_)4In%tIA#a<=)CWq*h>y6Q=poBqM`6`bBO zk9MLbZdfuvtl>qZ#-lr+F@Kx|f(i>fIa$D4Dj=mk-@Z}_Vc)J*{1yhuOM_t=h*({` z5d3ieFof70`-#AV6y~ik@V0=o!;CU9ZD+J!*EwXLJ{Z=zY;LyfED92b0%ru&V6f2N zqHed&fG~409-SFF3ocAqnP3G1#Ce@eZF%2JN>@h*WBxTJkt%!U+2sx3RJTs1*d@;x zn3HghI~?+Yaho}IJCOvtVrU%D|NPPONxT(Eimzl>HUnBx2x@*#{Pwj8>0{1AE%*D^ zK6cxj?Yn;T;GClT8sE~x?*PbBU9PCTEF4m$5elyA%V7Z~&+FzsNkdR~@w;7O(@ms0j+$@vbvog2hRju4z)u90dXW;A+ zQ~@6g^bbR1;GVL--Ghge^_N2^&lx56C#)$a8Ef}$%VAhWEAl(LERK+qwCvio9h;32 zUW(xYduz^w?0rev#OB_9ya+oV$?WZ?M}_nQ@1O9Z4eJM&+Yt1kJ&H%D9x~-i`debp zl$4}{<+`W2FwQpm_E^N*a_=K(Dg3}r2XDnrFvUA2_54Jepu51lsy!(|xCB==?OX$6 zt!DVj805-VOz53^L~LnufE`e^tk1o;Z4-E7nrRl=Askm@r!Kcwi2=c@X9sf3%!N-3 z>+RXN4iXV)nC3=8l`1Z3%RNUMOAN*h)lahoW~2hz1q39mAML>k1EJQU8ruWFRJ{%- z4e2vo(gnuEIYv(H-=P8rf>XFOm7j5GW?_HeWX;$UTv9|qUaj51N1TD+xHNd&Qp!22 zGF`DPz#2K=l-W}Z8Px8qVI_roihwG+cG$IBzIw9nFB%-y?%W!#u;qpty|3P2?RM^1 zj`SFJ+OR`i+!=qIa=#MM;kg)CEP@#<1NJmiHL=oYP%I5vMc!Q zySI?jYDA>L=!X4h`}Ss9J$beJVsHAGg$N^JJ6*tm48oN^_p3hrfWpBBXexJKl`7?Y zoe=S9`4qn06;E;*6EgGiZ%bU3Q9DlLfDC{XMHnX*$*s}Z$1QTuWOmFA*^A!B7+D;H zsMr|5flx98pChZ9y>3!q$9{zLINdSHUOAvD+oR$n!wB}?t4T4 ztbK?~c?=|im*tPOT5RENe9gNQ_Kpe&T-Sn%FsmC!F zNEnbB=p5OVQzBqo9MS>x6@npb7br?ci3XQ%>RhJqO}tn}Q)s|<>osSs56vG#&Q^5$ z&gJRRWB@JF+o519YsZhh_xp^9_>+NSci9g7o)OmzYd)b8rZ@6V zuY$6yRN#h|pqMD#!fXB?=H4=>4t3cUCAdQf65QS0-QC?~;_mJm+})iJ+}+*X3GNmw zXf7-Jytns#=d7%iQ}4$rs;Eiv@0;DDM|Y3zt`0I~`DkUNAhQC3Ve2P~Uk?+3IDP5( zMPE1n0|D2D;Zv^)dnb(cUWWJi%TLZQ($J}-^~M>h(SF4l{(ODJ|6TL@-$c289&up# z^sBlb9H~$Qf1SRWyQexJ(M&BRzfoP!RzxAqp(0t>Sf|j%Ggnf@RtDoIafrh1T>Wd} z@MmgbIeQy(fT82hC;kn}@N-N|1kro3atTO8h@d96ZKOJa%?cVtT2YPPPXHA(SgXI> zEiuHh{>ta#ba)Sk2n9lTgfxtk@$F}@v3D`K--uxoJWecN++B)`_?QEaJs2)ww$ES$B@GAas0}wlOe&p+dVRVLEM45fZOKWVG;M>> z#kbpV+OfWZC;rU?i#q?4+9&`;{KJNuB8KSdCv0%}xrA=h#~7*?dnq7gmW*Q3gN{Fa}u7~C~R)=ef=Ku$j96vOdBEq_vy?%Oe4!J~}GuQ0OvfwoQ$5O$LdE)aBn} z*-!T@m09a2grkZap}=IT)lx_x5&<-9T29ip#B#<4l?nRe84LDyB2KP5$>j0{!X7#& zHm7usqHhkLa`*~b8?g-`D&Gmn_YryFD1}-T@RLXgK;uzWG>ftxep3hlTZdb;lB%2+ zT(RV!TnAaT)WaNFDHpdx57FYp)h4h>-hH=aFf#UlU?Hg*@u3h*%7fukUR1KFsQ1Tlmy$te29F1EJ$;1QM){ z*LEZ00H)_?kv!wxN)hHuB~O6C-TR~d^jw)yb83gE%2FbS=v0!JBoU(7i1^_j;P~w1 z_SOC64HT;D4_y0{S?_LpenX`L|+(&#~C3j{{6%&DWq#IV%$vF`twxxr*S_HMn@w z7?JMJmFvB3<%aJz1&xZ*(;LY1fX+o%WkYxn<1Uq!F@{Bn@gg3~ZIe?*^NCP|3n_rul6AK}9&k+%73D^jnN&$Eblr`|-eyg+;U=#veH+6FGWj0QNW-ox;LThdMx5@=yOpiOo&)a?S@r1PF zFK|_4u>)78mpEhrjl!QnLtH<%JWlCzvL2b6Im6~r0-h>s4;dJTUIh7=(!+yek!THS zH_B+AZ6rt`ZY&t853gbj=iJ?LzAvB@&SCa!X%!cSO2K7}H!reGzXnud^mcvil8fW# z0GWZk#3)8_;%qj@4S)A+SP3fM%m3musqQ1Z9z2Y#&&So z+9Arm9cmp^8Ni2$-df2dp8N@8w@s1q>HNhkpese(!YxynT)a4Vn37uYB!O6%`V$Ga=~FF6=*$9GUiLhs-;)%3?CROTZimh3ON=;G$AjKGalE zKiqCk((dUaS7+*0)$F|Z0GaRUiX!!lJa{UYKXX?UQ%4_eU_Nz;Fj2e>eyK#q`}|yz zwt_MVvHo^kGvSwmUw=bL`M)3-|2(!K8Zg$GrX=?^_zQ?i>-@`G|wGp2q5{6F` zxy;j)<_{a82STNnS4Gat~SbMEZ?Mfg$q&L&30;+gN zETxlZb0G)e&O}vxW(OP~(q)8~$JMOawUzv?9c*2!NK!!wUzd)g7(-d!D~iPLkI$o| z$w+&Bw>Q_2=`7MIylyzn)zr)=>i6qowUe$#aY#I(afd8229@cZ7&!=sP3|UvAiu|N z(ZD-iMeGjeZxC0Y%aL(w5QVXgX|Jq8L%pSJ` zi%*_~gGzeQ>6oL6LugNYd6cRrjXT(Cwz*_(E8;EK@&1vii^QrEV^6jtjhBEx*=O$94$}XPFSWpoUeN2U^_Q7NA>>rR`P-+)TmbT%| zK1IVy1`XpK-3C+dTlW`<@l^CQPhHl}&CL*V`+-Rk{Y8RsK!AB_EJxlY0xzsPV%BUiRQAJDr?!ruCm9?KweR9Mhdq4ExwEYdMg0By}zCm^699XOUg)Aupd(T^y}I3my4 zH$gJ|x3qryKI}%?nM&nYVto6pFfEww!M6;HqD8&}xQXou9-%IPh%M9R4$ix{)Wk+r zF%5cmFe-+X%;Rifl&|_8mu0Jsct)OOMCZDSD?QRGx@1Dal);Yb;oTWrNYY1C&|YwS zB?*>k+2KU0bfJl5X230G@LVSRA2BPO`qk~bUemNFA}d3 zTkmFw=o4#G!JMS@8EWbei9b7@QAXOKdwhH$;S@Uvw(!6+bck;bzPDKg0wxXDuBNdof<$2^SsKMov!lLZ z-M4o$`m2JF6g8(&7XT;3gFHS0l3B$?Uhh7}#!VneJ?x>s?MNF*dcVjR)^yvP;@)zb zDS|ZX_`(-e&oy@>7rxi0IRl#kqW;wif%hwTtMd)!iouqZCI9ZH@Dd<6haVzmG-IUZ z(OOiL724MdP&c*syt&O}oD`bHjGSRh-?-V~aIBziC#3~zRxHF(ETl;H2#e6--*L^_ zXo}z3?|e#yJ+W5sykNXcze05mHwZUOwH9yJ3ov|i)c}lqVkt1tf|8;F+%$rg+X30<@y@@?_-wErrbGdBiPhY^0_qb+8 zBn(zSeYq0iw>AxT|0*@Z;zpzx`uZKDT_-N~1EAO+lypf(v^W>Gq8oT*~b zl!Iq?U63S8yUy*k-Mz}x`NtQ{U?_(71>Tn9e@mHz1A`TWaDAv-JanH`4^Q%@`OHp@ zwKVBu9=(Fvuv)r*p9(^?kqzbgeW|(J0a-zX=IXr`Qm1q9g-)25{TYi8cvZ+I17&&< zts$k#7s8$trLvnTOmAEoF#-M+Vtts8t=)rkc?jld7i>$2^>qVqhC|_kh#VHBj5ej? z`#~mgUp?{pIwP<|yj*)fO!Sdy^i+L={Y`r zP~>>!_yxyn)u;Z&r)`0kpYs|5;rxjncOrJPvkS_ZD8?U1LA(P&!K>N^^N108wfdQU zE#g9BOnH#A=h5xVyuu(a+=dtRD zN%|4zVaTX4iSX!e)711X5p{n&Bn0FkLM_c-Q`tXTPW6+*Dgo@Rey8fFA|3v=K(75s zwFGei)krh(DOTI-wB~HT)5S9ue87%15^YhN%knozWy=hQ{Y(yQCcDJ7(J;( zF4jxxNWcyRF9@ivF-t~289hOREs=s7UdBrf3^YG;;2c>cc=dE7v z0Fxd#VMdF2a#>wps3t*V6x-7WR}FhLe}c*Mak&)43Bj8?W3TcZCDWcj`%rvnQT&0# z(7SjgOmeL2-S0~n0)RU@Z2o~Weym3Fh!D0Ndeb=-c5&V~xIJd=kP@v`BNn1pa0BRG zx6j*v(gt6wLvF=JgycPknnk5b+f8-to}>cl47yUsL|;uO8U$~LfNv|woK2h~rJ`K9 z82J_UVNnwtUJT3f+NVOf$ruC^2V|agFMh4zA1-DSdF_&lm>~yH@Q|aOMsV}u24zS)oliqT@S~IOTo#ykKK>5%2T>p)2C%9v0k9U*CcK~2PVoWwfhhshjB#p|k5Jl!3GpD>}($@=)$ zFhTw&O3nW&AN-~)S#DIKj}CeLfU<&)j`};;m-^7p>X1F+>^P*9M)&1 zy5o3Haf>f|}@S7X?8m#MD)M7q*|u`WBbJilIV$Qfziq29TZQswJxx{s?_ZR9mQRC&n%J zKd{p2dpD>LGkzB5F)#I!6SPgn{Aj;b*4H-Y20*)m`UA9Yy}CHi-T?to{!)(2^w;{G z-~M9$c{W~``ioHbUuxtjDq`NXE;35C@)@eN8K(ZprQXGR=HLR~KP--uM}Z+!0N+>sVZ=@#X6!qCLRAgwGqf*; zo1F|4uvvEu5ju#7Mew+gkbr#;O_x~CC{;c$-R>2RZ$@vuJdN~WcQq9o$e^f)2U3z5Evgp1g0Ig^Bq``IWNZ<)yaDTdX`5Rc?`7}qO}b^shxeutY#e_<3Qou7-9cZ ztpu{t@1W3){A4kM^pM4mgJ=mB&-+LYPOgBWK+9^C6mkG2f9FV-I^Pfj6j?LF4_+_V z4Tn@j{IHhxq4gnG|A*;E_}P$J7j6f%CL1%TYcc>H#?>ha_^cNqI(%Oj6y9^>dXf^&LpnH)6u-xMkiIHvHv%a-6kP^}XB6f8MkUEs-&z|ftMO@J1+r!mN ziZ$1krg|HHBz#F|BK<)ov-dXoT9qr#G*gNJqJ2uh=~v!b8S-8^!31!w?xIRu*`X2w zW+f)5ZlPo~86V}hx|Q!%w#f%(27IHG#hG)mR#ZZM1$vnn;eq9g-N2GYQWeRR4e5!% zMm(SGudU3&9jCvpW$83}$ujp!m}0JJNPsHGUp)r!iSB0 zT6rhvNl9j>STVaA3E7#4`~O1Rw9iKge~q}mTuAW$3Q2wgZ6g!3EmrA}gD+kv9p6{M zO$_xfsnrZ5oE24dr+6@?88E4b38RP~5^9pYT+D`?h{?1pxWsK-XXM{wJvdOi#{yu_ ztC0}(ZK?Z;y1(%us-%P4h0RlpMnIEpx`mXkcy3urI*SNMv(*lU3KaUP{)lNJ6mwwb zs~Ln{l1jb5Xx9s$lr1aOdGcg#GK{ZApi&QF~zA^_*P;~HV{f_;eLm}DrsiD5U3UVX4W|HZu9Q$$CSgd!TqJpmPn37F}aLEfAD~6WY(T% zBti_vQ&jl$4#ir*w>@PO@z16M+uKA7Z&$ckt($0lg7?3gb0;ZCGff9v*YsT}ovho; z)6wx~jZGzR=d2J_5wE))O1q$Pa;@iQhni!^0 zep0C(7kr7ocI-c^DhRvkTm5!(OikD3ZK%uVzW5LMvnuIftsl7-po}ty6Hg&q{ zJ*arr@B&1stZ0$?xr7q}Kx*5A_*BAyE-&hEZ?kOcz5=jxnD+()zUv5Zk+5pd}VDFUic zmXn%EbPI8z^|2z{baH8K?Gj~%f;13MC)0*M6>78N1!yBG*%QP+RujL3K{DiaVHl$+`Kq$C~S9Ss4POc z5;)_X;2b%Ysq9=GJ-=U2!$PN2<%%Sc;lmOhK_5&*t3?kZ*u-tmRQ~*+%8AI={^fhq zre+$TpHQ+=A#4Lf8=yjpU{?@lN_?xIle;r9QG5+Yz2gM0Vm)ZYLh9OJ2#kxfnr4E? zmwas`xo^vaqnqhKhj*9U$P};!nbiI5W5#jts1rm_eVf<$6(u#ua)}HO@$hJJ0C{*6 ze&zus1?W1Qd3sZKHli;sCW0DgLEd73NRe`frfWWv@#4$lScI=7kqc?dyZvX5%u}r3gStA ztw4lc(iV<+F*(t8jxTqODaD50ocUR9#PNGn_4GdSnQV(X@Ks&u_%(+00iEE@alcmP zm5h#R4}O*j6uKhg>^5T~&W#%ax+jqsonUw+a2rr0-s!819$n%Q(s972q#A!Qg51SR z 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,qu17Dfxq8*H{u84w>k%x`#~RenTA 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

I;#ZG2hx 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 literal 0 HcmV?d00001 diff --git a/app/Http/.DS_Store b/app/Http/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e20214d3dcdceb6d54b1eeaa4230ec0209e80470 GIT binary patch literal 8196 zcmeHMU2GIp6uxKL!VDAW6#ECW!i0qcu!T}UTKVaA+oH5UYq!vCDXp_RV>@&@Q+H;! zKy9oqM#R4-e`1W$_!nb%FoGI=@P!0lcpz25_@FU9n4pO-5Pcw?d+%(qE&FKG#JSDf zbI(2J+&ky&`R?7bC4@jcYwRGTnh+x5L#ZNTcaKKp^jXk^V5S5qpgkcO;u0JGOdN$R zj6fKHFalu&!U%*BSc(zAJDWDKz`f6)@S!vo&}mND(SaQ+0gx8s zG;27myqIe}nj2r3j{yQ7`P z)Ct5m4f`+xVFVUNfY$CZX~DYPA^x2D-Ahe)<0;!sp~j`uxNUiUUEOye6cv{&TP`ja zW$|QU#GOd^x}WvpdgcV>dR*5|<;QyJxMfZZDdjD$pwAYa!66Kp4n~Mx^Lyo zR^2zfA*IyAXdFtrPFKdvVHA4PuALooP*RrG?Q|BE&1Tz9SZBF*I^)`Qm+M)+bo}iMJjETJ=ifnp| z`heWyp|_%a8~Kyll$c+HJNtD z#?V7gDuWt69ame`LAvu{-Sa!gO^3eK6)t-iW&PfWo-sQoFh_%z>cCm{G2%QmYBMa~ zr9u{v4eFz!*hd#^HVo64DP6O+I?^zVFw(5CTNB@bU-g8p$}3p3?py~M!|5+hZo=_co|-Y zx8WUl7v6&l@ELp#U&2>#8D`*H_#Upq&u|ldhd{EnIO`P~2$M((gD*IHgir1bzQ`ko+B*&(S+d}}v5LX1yrQy7 z+q8B2u7>^b*}UY5oX_2VBZ9$T4tN+0SdPrgUz&(&L|(T(kIcK6oh zKs&loMEocv0lRq%vK`7Y&PHmtiHKE2V5}Ue-zgy?m7;*H-GeM}M&7$mLToC<0UK*Z z_Krdr8;P_X#D%UX|5@IDL#~nQuN zFbG4SLmF%t0|&+-1CuQ8pMt01IXI8m|028!uVMDT0dKbBT;&yUs9bP>UXOt53+I8s)QBc1(+A&xavr8cpEPIHPg*cSbV UfJOT99p3-p{lBoLUOM;xKOTIa{Qv*} literal 0 HcmV?d00001 diff --git a/app/Http/Controllers/.DS_Store b/app/Http/Controllers/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..67deef52f06d8b4eccb8bd75d38f488d39e56c25 GIT binary patch literal 6148 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 z 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

8O)DYxc_I4nS_Dx)7|vCM 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

_+ryMB_kzDO}j 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 Lp4AzcUkv{P{~Km2 literal 0 HcmV?d00001 diff --git a/app/Http/Controllers/Api/Administrator/AdministratorPromotionController.php b/app/Http/Controllers/Api/Administrator/AdministratorPromotionController.php new file mode 100644 index 00000000..fd6f230a --- /dev/null +++ b/app/Http/Controllers/Api/Administrator/AdministratorPromotionController.php @@ -0,0 +1,375 @@ +query->list($request->filters()); + return response()->json([ + 'ok' => true, + 'data' => StudentPromotionResource::collection($result['data']), + 'pagination' => [ + 'page' => $result['page'], + 'per_page' => $result['per_page'], + 'total' => $result['total'], + 'total_pages' => $result['total_pages'], + ], + 'counts_by_status' => $result['counts_by_status'], + ]); + } + + public function show(int $promotionId): JsonResponse + { + $record = $this->findOrFail($promotionId); + if ($record instanceof JsonResponse) { + return $record; + } + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($record)), + ]); + } + + public function summary(AdminListPromotionsRequest $request): JsonResponse + { + $counts = $this->query->countsByStatus($request->filters()); + return response()->json([ + 'ok' => true, + 'counts_by_status' => $counts, + 'total' => array_sum($counts), + ]); + } + + public function evaluate(EvaluateEligibilityRequest $request): JsonResponse + { + $payload = $request->validated(); + $userId = $this->getCurrentUserId(); + $scope = $payload['scope'] ?? 'school_year'; + + try { + $result = match ($scope) { + 'student' => [ + 'scope' => 'student', + 'record' => optional( + $this->eligibility->evaluateStudent( + (int) $payload['student_id'], + $payload['current_school_year'] ?? null, + $userId + ) + )?->toArray(), + ], + 'class_section' => array_merge( + ['scope' => 'class_section'], + $this->eligibility->evaluateClassSection( + (int) $payload['class_section_id'], + $payload['current_school_year'] ?? null, + $userId + ) + ), + default => array_merge( + ['scope' => 'school_year'], + $this->eligibility->evaluateSchoolYear( + $payload['current_school_year'] ?? null, + $userId + ) + ), + }; + } catch (\Throwable $e) { + Log::error('Promotion eligibility evaluation failed', ['exception' => $e]); + return response()->json([ + 'ok' => false, + 'message' => 'Failed to evaluate promotion eligibility.', + ], Response::HTTP_INTERNAL_SERVER_ERROR); + } + + return response()->json([ + 'ok' => true, + 'result' => $result, + ]); + } + + public function updateStatus(UpdatePromotionStatusRequest $request, int $promotionId): JsonResponse + { + $record = $this->findOrFail($promotionId); + if ($record instanceof JsonResponse) { + return $record; + } + + $payload = $request->validated(); + $userId = $this->getCurrentUserId(); + + try { + $updated = !empty($payload['force']) + ? $this->statusService->forceStatus($record, $payload['status'], $userId, $payload['notes'] ?? null) + : $this->statusService->transition($record, $payload['status'], $userId, $payload['notes'] ?? null); + } catch (\InvalidArgumentException $e) { + return response()->json(['ok' => false, 'message' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY); + } catch (\RuntimeException $e) { + return response()->json(['ok' => false, 'message' => $e->getMessage()], Response::HTTP_CONFLICT); + } + + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($updated->refresh())), + ]); + } + + public function setDeadline(SetEnrollmentDeadlineRequest $request, ?int $promotionId = null): JsonResponse + { + $payload = $request->validated(); + $userId = $this->getCurrentUserId(); + $newDeadline = $payload['enrollment_deadline']; + $applyTo = $payload['apply_to'] ?? ($promotionId ? 'single' : 'school_year'); + + $records = collect(); + if ($promotionId !== null || $applyTo === 'single') { + $id = $promotionId ?? null; + if ($id === null) { + return response()->json(['ok' => false, 'message' => 'promotion_id is required for single deadline updates.'], Response::HTTP_UNPROCESSABLE_ENTITY); + } + $record = $this->findOrFail($id); + if ($record instanceof JsonResponse) { + return $record; + } + $records = collect([$record]); + } elseif ($applyTo === 'filter' && !empty($payload['promotion_ids'])) { + $records = StudentPromotionRecord::query() + ->whereIn('promotion_id', $payload['promotion_ids']) + ->get(); + } else { + $year = $payload['next_school_year'] ?? null; + if ($year === null || $year === '') { + return response()->json([ + 'ok' => false, + 'message' => 'next_school_year is required when applying a bulk deadline.', + ], Response::HTTP_UNPROCESSABLE_ENTITY); + } + $records = StudentPromotionRecord::query() + ->forNextYear($year) + ->whereIn('promotion_status', StudentPromotionRecord::openStatuses()) + ->get(); + } + + $updatedIds = []; + foreach ($records as $record) { + $oldDeadline = $record->enrollment_deadline?->toDateString(); + DB::transaction(function () use ($record, $newDeadline, $oldDeadline, $userId, &$updatedIds) { + $record->enrollment_deadline = $newDeadline; + $record->updated_by = $userId; + $record->save(); + $this->audit->logDeadlineSet($record, $oldDeadline, $newDeadline, $userId); + $updatedIds[] = (int) $record->getKey(); + }); + } + + return response()->json([ + 'ok' => true, + 'updated' => count($updatedIds), + 'promotion_ids' => $updatedIds, + ]); + } + + public function sendReminder(SendReminderRequest $request, int $promotionId): JsonResponse + { + $record = $this->findOrFail($promotionId); + if ($record instanceof JsonResponse) { + return $record; + } + + $payload = $request->validated(); + $userId = $this->getCurrentUserId(); + + try { + $log = $this->reminders->send( + $record, + $payload['reminder_type'] ?? PromotionReminderLog::TYPE_MANUAL, + $userId, + $payload['subject'] ?? null, + $payload['message'] ?? null, + $payload['channels'] ?? ['in_app', 'email'] + ); + } catch (\Throwable $e) { + Log::error('Promotion reminder send failed', [ + 'promotion_id' => $promotionId, + 'exception' => $e, + ]); + return response()->json([ + 'ok' => false, + 'message' => 'Failed to send reminder.', + ], Response::HTTP_INTERNAL_SERVER_ERROR); + } + + return response()->json([ + 'ok' => true, + 'reminder' => new PromotionReminderResource($log), + ]); + } + + public function dispatchScheduledReminders(): JsonResponse + { + $userId = $this->getCurrentUserId(); + $result = $this->reminders->dispatchScheduledReminders(null, $userId); + return response()->json([ + 'ok' => true, + 'result' => $result, + ]); + } + + public function reminders(int $promotionId): JsonResponse + { + $record = $this->findOrFail($promotionId); + if ($record instanceof JsonResponse) { + return $record; + } + $rows = PromotionReminderLog::query() + ->forPromotion((int) $record->getKey()) + ->orderByDesc('id') + ->get(); + return response()->json([ + 'ok' => true, + 'reminders' => PromotionReminderResource::collection($rows), + ]); + } + + public function audit(int $promotionId): JsonResponse + { + $record = $this->findOrFail($promotionId); + if ($record instanceof JsonResponse) { + return $record; + } + $rows = PromotionAuditLog::query() + ->forPromotion((int) $record->getKey()) + ->orderByDesc('id') + ->get(); + return response()->json([ + 'ok' => true, + 'entries' => PromotionAuditLogResource::collection($rows), + ]); + } + + public function expireDeadlines(): JsonResponse + { + $result = $this->enrollmentService->markExpiredDeadlines(null, $this->getCurrentUserId()); + return response()->json([ + 'ok' => true, + 'result' => $result, + ]); + } + + public function adminCompleteEnrollment(ParentEnrollmentStepRequest $request, int $promotionId): JsonResponse + { + $record = $this->findOrFail($promotionId); + if ($record instanceof JsonResponse) { + return $record; + } + $userId = $this->getCurrentUserId(); + $parentId = (int) $record->parent_id ?: $userId ?: 0; + + if ($parentId <= 0) { + return response()->json([ + 'ok' => false, + 'message' => 'Promotion record has no associated parent.', + ], Response::HTTP_UNPROCESSABLE_ENTITY); + } + + try { + $updated = $this->enrollmentService->updateSteps( + $record, + $parentId, + $request->steps(), + $userId + ); + } catch (\RuntimeException $e) { + return response()->json(['ok' => false, 'message' => $e->getMessage()], Response::HTTP_CONFLICT); + } + + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($updated->refresh())), + ]); + } + + public function levelProgressions(): JsonResponse + { + $rows = $this->progression->list(false); + return response()->json([ + 'ok' => true, + 'levels' => LevelProgressionResource::collection($rows), + ]); + } + + public function upsertLevelProgression(UpsertLevelProgressionRequest $request): JsonResponse + { + $row = $this->progression->upsertMapping($request->validated()); + return response()->json([ + 'ok' => true, + 'level' => new LevelProgressionResource($row), + ]); + } + + public function seedLevelProgressions(): JsonResponse + { + $created = $this->progression->seedDefaults(); + return response()->json([ + 'ok' => true, + 'created' => $created, + ]); + } + + private function findOrFail(int $promotionId): StudentPromotionRecord|JsonResponse + { + $record = StudentPromotionRecord::query()->find($promotionId); + if (!$record) { + return response()->json([ + 'ok' => false, + 'message' => 'Promotion record not found.', + ], Response::HTTP_NOT_FOUND); + } + return $record; + } +} diff --git a/app/Http/Controllers/Api/Auth/AuthController.php b/app/Http/Controllers/Api/Auth/AuthController.php index 44bf7935..6766a6d2 100644 --- a/app/Http/Controllers/Api/Auth/AuthController.php +++ b/app/Http/Controllers/Api/Auth/AuthController.php @@ -20,8 +20,7 @@ class AuthController extends BaseApiController $payload = is_array($decoded) ? $decoded : []; } - // Match CodeIgniter apiLogin: raw email/password (no trim); empty check is identical to CI `!$email || !$password`. - $email = (string) ($payload['email'] ?? ''); + $email = strtolower(trim((string) ($payload['email'] ?? ''))); $password = (string) ($payload['password'] ?? ''); if ($email === '' || $password === '') { @@ -39,7 +38,7 @@ class AuthController extends BaseApiController ], 429); } - $user = User::query()->where('email', $email)->first(); + $user = User::query()->whereRaw('LOWER(email) = ?', [$email])->first(); if (!$user) { $security->logIpAttempt((string) $ip); @@ -49,13 +48,6 @@ class AuthController extends BaseApiController ], 401); } - if ($user->is_suspended) { - return response()->json([ - 'status' => false, - 'message' => 'Account suspended. Please reset your password.', - ], 403); - } - if (! ci_password_verify($password, (string) $user->password)) { $security->handleFailedLogin($user, $email, (string) $ip); @@ -65,6 +57,15 @@ class AuthController extends BaseApiController ], 401); } + // Suspension is checked AFTER credentials are verified so that the + // response shape cannot be used to enumerate which emails exist. + if ($user->is_suspended) { + return response()->json([ + 'status' => false, + 'message' => 'Account suspended. Please reset your password.', + ], 403); + } + $security->resetFailedAttempts($user); $security->logSuccessfulLogin($user->fresh(), $request); diff --git a/app/Http/Controllers/Api/Core/BaseApiController.php b/app/Http/Controllers/Api/Core/BaseApiController.php index 9f48d3de..ebd54c7e 100644 --- a/app/Http/Controllers/Api/Core/BaseApiController.php +++ b/app/Http/Controllers/Api/Core/BaseApiController.php @@ -245,28 +245,31 @@ class BaseApiController extends Controller return null; } - $user = app(User::class); - $row = $user->find($userId); + /** @var User|null $row */ + $row = User::query()->find($userId); if (!$row) { return null; } - $name = trim(($row['firstname'] ?? '') . ' ' . ($row['lastname'] ?? '')); + $firstname = (string) ($row->firstname ?? ''); + $lastname = (string) ($row->lastname ?? ''); + $email = $row->email; + + $name = trim($firstname . ' ' . $lastname); if ($name === '') { - $name = $row['email'] ?? 'User #' . $userId; + $name = $email ?? 'User #' . $userId; } try { - $roles = DB::table('user_roles ur') - ->select('LOWER(r.name) AS name') - ->join('roles r', 'r.id', '=', 'ur.role_id') + $roles = DB::table('user_roles as ur') + ->join('roles as r', 'r.id', '=', 'ur.role_id') ->where('ur.user_id', $userId) ->whereNull('ur.deleted_at') - ->pluck('name') - ->map(fn($name) => strtolower((string) $name)) + ->pluck('r.name') + ->map(fn ($name) => strtolower((string) $name)) ->unique() ->values() - ->toArray(); + ->all(); } catch (\Throwable $e) { Log::error('Unable to load user roles: ' . $e->getMessage()); $roles = []; @@ -275,7 +278,7 @@ class BaseApiController extends Controller return (object) [ 'id' => (int) $userId, 'name' => $name, - 'email' => $row['email'] ?? null, + 'email' => $email, 'roles' => $roles, ]; } diff --git a/app/Http/Controllers/Api/Finance/ChargeController.php b/app/Http/Controllers/Api/Finance/ChargeController.php new file mode 100644 index 00000000..ccb535ca --- /dev/null +++ b/app/Http/Controllers/Api/Finance/ChargeController.php @@ -0,0 +1,158 @@ +validated(); + $result = $this->charges->listForParent( + (int) $payload['parent_id'], + $payload['school_year'] ?? null + ); + + return response()->json([ + 'ok' => true, + 'charges' => new ChargeListResource($result), + ]); + } + + public function storeExtra(StoreExtraChargeRequest $request): JsonResponse + { + $guard = $this->authenticatedUserIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $payload = $request->validated(); + $payload['created_by'] = $guard; + + try { + $result = $this->charges->createExtraCharge($payload); + } catch (\Throwable $e) { + Log::error('Store extra charge failed', ['exception' => $e]); + + return response()->json(['ok' => false, 'message' => 'Unable to create extra charge.'], 500); + } + + $status = ($result['ok'] ?? false) + ? (isset($result['error']) && $result['error'] === 'duplicate_charge' ? 409 : 201) + : 422; + + return response()->json([ + 'ok' => (bool) ($result['ok'] ?? false), + 'charge' => new ChargeActionResource($result), + ], $status); + } + + public function storeEvent(StoreEventChargeRequest $request): JsonResponse + { + $guard = $this->authenticatedUserIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $payload = $request->validated(); + $payload['created_by'] = $guard; + + try { + $result = $this->charges->createEventCharge($payload); + } catch (\Throwable $e) { + Log::error('Store event charge failed', ['exception' => $e]); + + return response()->json(['ok' => false, 'message' => 'Unable to create event charge.'], 500); + } + + $status = ($result['ok'] ?? false) + ? (isset($result['error']) && $result['error'] === 'duplicate_charge' ? 409 : 201) + : 422; + + return response()->json([ + 'ok' => (bool) ($result['ok'] ?? false), + 'charge' => new ChargeActionResource($result), + ], $status); + } + + public function cancelExtra(int $id): JsonResponse + { + $result = $this->charges->cancelExtraCharge($id); + $status = ($result['ok'] ?? false) ? 200 : 422; + + return response()->json([ + 'ok' => (bool) ($result['ok'] ?? false), + 'charge' => new ChargeActionResource($result), + ], $status); + } + + public function applyExtra(ApplyExtraChargeRequest $request, int $id): JsonResponse + { + $payload = $request->validated(); + $result = $this->charges->applyExtraCharge($id, (int) $payload['invoice_id']); + $status = ($result['ok'] ?? false) ? 200 : 422; + + return response()->json([ + 'ok' => (bool) ($result['ok'] ?? false), + 'charge' => new ChargeActionResource($result), + ], $status); + } + + public function cancelEvent(Request $request, int $id): JsonResponse + { + $issueCredit = $request->boolean('issue_credit', true); + $result = $this->charges->cancelEventCharge($id, $issueCredit); + $status = ($result['ok'] ?? false) ? 200 : 422; + + return response()->json([ + 'ok' => (bool) ($result['ok'] ?? false), + 'charge' => new ChargeActionResource($result), + ], $status); + } + + public function markEventPaid(MarkEventChargePaidRequest $request, int $id): JsonResponse + { + $payload = $request->validated(); + $result = $this->charges->markEventChargePaid( + $id, + (bool) $payload['paid'], + isset($payload['payment_id']) ? (int) $payload['payment_id'] : null + ); + $status = ($result['ok'] ?? false) ? 200 : 422; + + return response()->json([ + 'ok' => (bool) ($result['ok'] ?? false), + 'charge' => new ChargeActionResource($result), + ], $status); + } + + /** + * @return int|JsonResponse + */ + private function authenticatedUserIdOrUnauthorized(): int|JsonResponse + { + $userId = (int) (auth()->id() ?? 0); + if ($userId <= 0) { + return response()->json(['ok' => false, 'message' => 'Unauthorized.'], 401); + } + + return $userId; + } +} diff --git a/app/Http/Controllers/Api/Finance/FeeCalculationController.php b/app/Http/Controllers/Api/Finance/FeeCalculationController.php index aa2d24cc..a53e9bae 100644 --- a/app/Http/Controllers/Api/Finance/FeeCalculationController.php +++ b/app/Http/Controllers/Api/Finance/FeeCalculationController.php @@ -3,12 +3,18 @@ namespace App\Http\Controllers\Api\Finance; use App\Http\Controllers\Api\Core\BaseApiController; +use App\Http\Requests\Finance\FeeFamilyBalanceRequest; use App\Http\Requests\Finance\FeeRefundRequest; +use App\Http\Requests\Finance\FeeTuitionBreakdownRequest; use App\Http\Requests\Finance\FeeTuitionTotalRequest; +use App\Http\Resources\Fees\FeeFamilyBalanceResource; use App\Http\Resources\Fees\FeeRefundResource; +use App\Http\Resources\Fees\FeeTuitionBreakdownResource; use App\Http\Resources\Fees\FeeTuitionTotalResource; +use App\Services\Billing\BalanceCalculationService; use App\Services\Fees\FeeRefundCalculatorService; use App\Services\Fees\FeeStudentFeeService; +use App\Services\Fees\TuitionCalculationService; use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Log; @@ -16,7 +22,9 @@ class FeeCalculationController extends BaseApiController { public function __construct( private FeeRefundCalculatorService $refunds, - private FeeStudentFeeService $tuition + private FeeStudentFeeService $tuition, + private TuitionCalculationService $tuitionCalculator, + private BalanceCalculationService $balance ) { parent::__construct(); } @@ -69,4 +77,55 @@ class FeeCalculationController extends BaseApiController ]), ]); } + + public function tuitionBreakdown(FeeTuitionBreakdownRequest $request): JsonResponse + { + $payload = $request->validated(); + + try { + $result = $this->tuitionCalculator->calculate($payload['students']); + } catch (\Throwable $e) { + Log::error('Tuition breakdown calculation failed', [ + 'exception' => $e, + ]); + + return response()->json([ + 'ok' => false, + 'message' => 'Unable to calculate tuition breakdown.', + ], 500); + } + + return response()->json([ + 'ok' => true, + 'tuition' => new FeeTuitionBreakdownResource($result), + ]); + } + + public function familyBalance(FeeFamilyBalanceRequest $request): JsonResponse + { + $payload = $request->validated(); + + try { + $result = $this->balance->calculateFamilyAccount( + $payload['students'], + (int) $payload['parent_id'], + $payload['school_year'] ?? null + ); + } catch (\Throwable $e) { + Log::error('Family balance calculation failed', [ + 'parent_id' => $payload['parent_id'] ?? null, + 'exception' => $e, + ]); + + return response()->json([ + 'ok' => false, + 'message' => 'Unable to calculate family balance.', + ], 500); + } + + return response()->json([ + 'ok' => true, + 'account' => new FeeFamilyBalanceResource($result), + ]); + } } diff --git a/app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php b/app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php index b8b550aa..ec0d7e3a 100644 --- a/app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php +++ b/app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php @@ -37,14 +37,19 @@ class AuthorizedUserInviteController extends Controller ); } + $redirectUrl = (string) $result['redirect_url']; + if (! $this->isTrustedRedirectUrl($redirectUrl)) { + return response()->json(['message' => 'Invalid redirect URL.'], 400); + } + if ($request->expectsJson()) { return response()->json([ 'message' => 'Confirmed.', - 'redirect_url' => $result['redirect_url'], + 'redirect_url' => $redirectUrl, ]); } - return redirect()->away($result['redirect_url']); + return redirect()->away($redirectUrl); } public function setPasswordForm(Request $request, int $authorizedUserId): JsonResponse|Response @@ -79,7 +84,8 @@ class AuthorizedUserInviteController extends Controller { $validator = Validator::make($request->all(), [ 'password' => ['required', 'string', 'min:8', 'regex:/[A-Z]/', 'regex:/[a-z]/', 'regex:/[0-9]/', 'regex:/[\W_]/'], - 'password_confirm' => ['required', 'same:password'], + 'password_confirmation' => ['required_without:password_confirm', 'same:password'], + 'password_confirm' => ['required_without:password_confirmation', 'same:password'], 'user_id' => ['required', 'integer'], 'token' => ['required', 'string'], ], [ @@ -108,4 +114,23 @@ class AuthorizedUserInviteController extends Controller return response()->json(['message' => 'Password has been successfully set.']); } + + private function isTrustedRedirectUrl(string $url): bool + { + $host = parse_url($url, PHP_URL_HOST); + if (! is_string($host) || $host === '') { + return false; + } + + $trusted = [ + parse_url((string) config('app.url'), PHP_URL_HOST), + parse_url((string) config('app.frontend_url'), PHP_URL_HOST), + parse_url((string) config('services.frontend.url'), PHP_URL_HOST), + ]; + + return in_array(strtolower($host), array_filter(array_map( + static fn ($value) => is_string($value) ? strtolower($value) : null, + $trusted + )), true); + } } diff --git a/app/Http/Controllers/Api/Parents/AuthorizedUsersController.php b/app/Http/Controllers/Api/Parents/AuthorizedUsersController.php index b0fca933..ffd6cb0e 100644 --- a/app/Http/Controllers/Api/Parents/AuthorizedUsersController.php +++ b/app/Http/Controllers/Api/Parents/AuthorizedUsersController.php @@ -58,14 +58,17 @@ class AuthorizedUsersController extends BaseApiController return $guard; } - $email = strtolower($request->validated('email')); + $email = strtolower(trim((string) $request->validated('email'))); $result = $this->svc->inviteByEmail($guard, $email); - $message = 'Authorized user added. A confirmation email has been sent.'; if (! $result['created']) { - return $this->success(['message' => $message], $message, Response::HTTP_CREATED); + $message = 'If the email belongs to a registered user, a confirmation email has been sent.'; + + return $this->success(['message' => $message], $message, Response::HTTP_OK); } + $message = 'Authorized user added. A confirmation email has been sent.'; + return $this->success( ['message' => $message, 'id' => $result['record']->id], $message, @@ -89,11 +92,18 @@ class AuthorizedUsersController extends BaseApiController $row = $resolution; $email = $request->validated('email') ?? null; - if (is_string($email) && $email !== '') { - $row->email = strtolower($email); - } + if (is_string($email) && trim($email) !== '') { + try { + $this->svc->changeEmailAndReinvite($row, $email); + } catch (\InvalidArgumentException $e) { + return $this->error($e->getMessage(), Response::HTTP_UNPROCESSABLE_ENTITY); + } - $row->save(); + return $this->success( + ['message' => 'Authorized user email updated. A new confirmation email has been sent.'], + 'Authorized user email updated. A new confirmation email has been sent.' + ); + } return $this->success(['message' => 'Authorized user information updated.'], 'Authorized user information updated.'); } @@ -127,15 +137,15 @@ class AuthorizedUsersController extends BaseApiController private function authorizedUserForParent(int $id, int $parentId): AuthorizedUser|JsonResponse { - $row = AuthorizedUser::query()->find($id); + $row = AuthorizedUser::query() + ->where('id', $id) + ->where('user_id', $parentId) + ->first(); + if (! $row) { return $this->error('Authorized user not found.', Response::HTTP_NOT_FOUND); } - if ((int) $row->user_id !== $parentId) { - return $this->error('You do not have access to this resource.', Response::HTTP_FORBIDDEN); - } - return $row; } } diff --git a/app/Http/Controllers/Api/Parents/ParentController.php b/app/Http/Controllers/Api/Parents/ParentController.php index e651b045..1dd0f3b8 100644 --- a/app/Http/Controllers/Api/Parents/ParentController.php +++ b/app/Http/Controllers/Api/Parents/ParentController.php @@ -148,10 +148,14 @@ class ParentController extends BaseApiController $payload['emergency_contacts'] ?? [] ); + $createdCount = count($result['created_student_ids']); + $skipped = $result['skipped'] ?? []; + return response()->json([ 'ok' => true, 'created_student_ids' => $result['created_student_ids'], - ], 201); + 'skipped' => $skipped, + ], $createdCount > 0 ? 201 : 200); } public function updateStudent(ParentStudentUpdateRequest $request, int $studentId): JsonResponse @@ -283,10 +287,21 @@ class ParentController extends BaseApiController } /** - * @return int|JsonResponse Authenticated parent user id, or 401 JSON for this controller's legacy `{ ok }` shape. + * @return int|JsonResponse Effective primary-parent user id, or 401 JSON for this controller's legacy `{ ok }` shape. + * + * `parent.access` middleware resolves second parents (user_type=secondary) + * and authorized users (user_type=tertiary) to their primary parent and + * stashes the result as `primary_parent_id` on the request. If we are + * called outside that middleware we fall back to the authenticated id. */ private function parentIdOrUnauthorized(): int|JsonResponse { + $request = request(); + $primary = (int) ($request?->attributes?->get('primary_parent_id') ?? 0); + if ($primary > 0) { + return $primary; + } + $parentId = (int) (auth()->id() ?? 0); if ($parentId <= 0) { return response()->json(['ok' => false, 'message' => 'Unauthorized.'], 401); diff --git a/app/Http/Controllers/Api/Parents/ParentPromotionController.php b/app/Http/Controllers/Api/Parents/ParentPromotionController.php new file mode 100644 index 00000000..6b861b4a --- /dev/null +++ b/app/Http/Controllers/Api/Parents/ParentPromotionController.php @@ -0,0 +1,173 @@ +parentIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $data = $this->service->overviewForParent( + $guard, + $request->validated()['next_school_year'] ?? null + ); + + return response()->json([ + 'ok' => true, + 'records' => $data['records'], + 'next_school_year' => $data['next_school_year'], + 'message' => $data['message'], + ]); + } + + public function show(int $promotionId): JsonResponse + { + $guard = $this->parentIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $record = $this->loadOwnedRecord($promotionId, $guard); + if ($record instanceof JsonResponse) { + return $record; + } + + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($record)), + ]); + } + + public function start(int $promotionId): JsonResponse + { + $guard = $this->parentIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $record = $this->loadOwnedRecord($promotionId, $guard); + if ($record instanceof JsonResponse) { + return $record; + } + + try { + $updated = $this->service->startEnrollment($record, $guard, $guard); + } catch (\RuntimeException $e) { + return response()->json(['ok' => false, 'message' => $e->getMessage()], Response::HTTP_CONFLICT); + } + + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($updated->refresh())), + ]); + } + + public function updateSteps(ParentEnrollmentStepRequest $request, int $promotionId): JsonResponse + { + $guard = $this->parentIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $record = $this->loadOwnedRecord($promotionId, $guard); + if ($record instanceof JsonResponse) { + return $record; + } + + try { + $updated = $this->service->updateSteps($record, $guard, $request->steps(), $guard); + } catch (\RuntimeException $e) { + return response()->json(['ok' => false, 'message' => $e->getMessage()], Response::HTTP_CONFLICT); + } + + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($updated->refresh())), + ]); + } + + public function submit(int $promotionId): JsonResponse + { + $guard = $this->parentIdOrUnauthorized(); + if ($guard instanceof JsonResponse) { + return $guard; + } + + $record = $this->loadOwnedRecord($promotionId, $guard); + if ($record instanceof JsonResponse) { + return $record; + } + + try { + $updated = $this->service->submitEnrollment($record, $guard, $guard); + } catch (\RuntimeException $e) { + return response()->json(['ok' => false, 'message' => $e->getMessage()], Response::HTTP_CONFLICT); + } + + return response()->json([ + 'ok' => true, + 'data' => new StudentPromotionResource($this->query->detail($updated->refresh())), + ]); + } + + private function loadOwnedRecord(int $promotionId, int $parentId): StudentPromotionRecord|JsonResponse + { + $record = StudentPromotionRecord::query()->find($promotionId); + if (!$record) { + return response()->json(['ok' => false, 'message' => 'Promotion record not found.'], Response::HTTP_NOT_FOUND); + } + + $owns = (int) $record->parent_id === $parentId; + if (!$owns) { + $studentParentId = (int) (Student::query() + ->where('id', $record->student_id) + ->value('parent_id') ?? 0); + $owns = $studentParentId === $parentId; + } + if (!$owns) { + return response()->json(['ok' => false, 'message' => 'You are not authorised to view this promotion record.'], Response::HTTP_FORBIDDEN); + } + return $record; + } + + private function parentIdOrUnauthorized(): int|JsonResponse + { + $request = request(); + $primary = (int) ($request?->attributes?->get('primary_parent_id') ?? 0); + if ($primary > 0) { + return $primary; + } + $parentId = (int) (auth()->id() ?? 0); + if ($parentId <= 0) { + return response()->json(['ok' => false, 'message' => 'Unauthorized.'], Response::HTTP_UNAUTHORIZED); + } + return $parentId; + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php deleted file mode 100644 index 00f76766..00000000 --- a/app/Http/Kernel.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - \App\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - - 'api' => [ - // Throttling (optional) - \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', - - // JWT Authentication - \PHPOpenSourceSaver\JWTAuth\Http\Middleware\Authenticate::class, - - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - ]; - - /** - * The application's route middleware. - * - * These may be assigned to routes individually. - */ - protected $routeMiddleware = [ - 'auth' => \App\Http\Middleware\Authenticate::class, - - // Laravel default middleware - 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - - // JWT middleware - 'jwt.auth' => \PHPOpenSourceSaver\JWTAuth\Http\Middleware\Authenticate::class, - 'jwt.refresh' => \PHPOpenSourceSaver\JWTAuth\Http\Middleware\RefreshToken::class, - ]; -} diff --git a/app/Http/Middleware/EnsureParentProgressAccess.php b/app/Http/Middleware/EnsureParentProgressAccess.php index 205a8950..6525acb1 100644 --- a/app/Http/Middleware/EnsureParentProgressAccess.php +++ b/app/Http/Middleware/EnsureParentProgressAccess.php @@ -3,12 +3,21 @@ namespace App\Http\Middleware; use App\Models\User; +use App\Services\Parents\PrimaryParentUserResolver; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Symfony\Component\HttpFoundation\Response; -/** CodeIgniter route filter `auth:parent`. */ +/** + * CodeIgniter route filter `auth:parent`. + * + * Allows access for any caller that ultimately maps to a primary parent + * record: the primary parent themselves (parent role / user_type=primary), + * a registered second parent (user_type=secondary) or an authorized user + * (user_type=tertiary). The resolved primary parent id is stashed on the + * request as `primary_parent_id` for controllers to consume. + */ class EnsureParentProgressAccess { public function handle(Request $request, Closure $next): Response @@ -25,9 +34,23 @@ class EnsureParentProgressAccess ->toArray(); if (in_array('parent', $roles, true)) { + $request->attributes->set('primary_parent_id', (int) $user->id); + return $next($request); } + $userType = strtolower(trim((string) ($user->user_type ?? ''))); + if (in_array($userType, ['secondary', 'tertiary'], true)) { + /** @var PrimaryParentUserResolver $resolver */ + $resolver = app(PrimaryParentUserResolver::class); + $primaryId = $resolver->resolveFromCredentials((int) $user->id, $userType); + if ($primaryId !== null && $primaryId > 0) { + $request->attributes->set('primary_parent_id', $primaryId); + + return $next($request); + } + } + return response()->json(['message' => 'Forbidden.'], 403); } } diff --git a/app/Http/Requests/Finance/ApplyExtraChargeRequest.php b/app/Http/Requests/Finance/ApplyExtraChargeRequest.php new file mode 100644 index 00000000..25bb1867 --- /dev/null +++ b/app/Http/Requests/Finance/ApplyExtraChargeRequest.php @@ -0,0 +1,20 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'invoice_id' => ['required', 'integer', 'min:1'], + ]; + } +} diff --git a/app/Http/Requests/Finance/ChargeListRequest.php b/app/Http/Requests/Finance/ChargeListRequest.php new file mode 100644 index 00000000..e69b3839 --- /dev/null +++ b/app/Http/Requests/Finance/ChargeListRequest.php @@ -0,0 +1,21 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'parent_id' => ['required', 'integer', 'min:1'], + 'school_year' => ['nullable', 'string', 'max:20'], + ]; + } +} diff --git a/app/Http/Requests/Finance/FeeFamilyBalanceRequest.php b/app/Http/Requests/Finance/FeeFamilyBalanceRequest.php new file mode 100644 index 00000000..2282ba61 --- /dev/null +++ b/app/Http/Requests/Finance/FeeFamilyBalanceRequest.php @@ -0,0 +1,30 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'parent_id' => ['required', 'integer', 'min:1'], + 'school_year' => ['nullable', 'string', 'max:20'], + 'students' => ['required', 'array', 'min:1'], + 'students.*.student_id' => ['nullable', 'integer', 'min:1'], + 'students.*.firstname' => ['nullable', 'string', 'max:100'], + 'students.*.lastname' => ['nullable', 'string', 'max:100'], + 'students.*.class_section_id' => ['nullable', 'integer', 'min:1'], + 'students.*.grade' => ['nullable', 'string', 'max:20'], + 'students.*.enrollment_status' => ['nullable', 'string', 'max:50'], + 'students.*.admission_status' => ['nullable', 'string', 'max:50'], + 'students.*.discount_amount' => ['nullable', 'numeric', 'min:0'], + ]; + } +} diff --git a/app/Http/Requests/Finance/FeeTuitionBreakdownRequest.php b/app/Http/Requests/Finance/FeeTuitionBreakdownRequest.php new file mode 100644 index 00000000..1a74d389 --- /dev/null +++ b/app/Http/Requests/Finance/FeeTuitionBreakdownRequest.php @@ -0,0 +1,28 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'students' => ['required', 'array', 'min:1'], + 'students.*.student_id' => ['nullable', 'integer', 'min:1'], + 'students.*.firstname' => ['nullable', 'string', 'max:100'], + 'students.*.lastname' => ['nullable', 'string', 'max:100'], + 'students.*.class_section_id' => ['nullable', 'integer', 'min:1'], + 'students.*.grade' => ['nullable', 'string', 'max:20'], + 'students.*.enrollment_status' => ['nullable', 'string', 'max:50'], + 'students.*.admission_status' => ['nullable', 'string', 'max:50'], + 'students.*.discount_amount' => ['nullable', 'numeric', 'min:0'], + ]; + } +} diff --git a/app/Http/Requests/Finance/MarkEventChargePaidRequest.php b/app/Http/Requests/Finance/MarkEventChargePaidRequest.php new file mode 100644 index 00000000..fa48e0cd --- /dev/null +++ b/app/Http/Requests/Finance/MarkEventChargePaidRequest.php @@ -0,0 +1,21 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'paid' => ['required', 'boolean'], + 'payment_id' => ['nullable', 'integer', 'min:1'], + ]; + } +} diff --git a/app/Http/Requests/Finance/StoreEventChargeRequest.php b/app/Http/Requests/Finance/StoreEventChargeRequest.php new file mode 100644 index 00000000..aab2d4fd --- /dev/null +++ b/app/Http/Requests/Finance/StoreEventChargeRequest.php @@ -0,0 +1,27 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'parent_id' => ['required', 'integer', 'min:1'], + 'student_id' => ['required', 'integer', 'min:1'], + 'event_id' => ['nullable', 'integer', 'min:1'], + 'event_name' => ['required_without:event_id', 'nullable', 'string', 'max:255'], + 'amount' => ['nullable', 'numeric', 'min:0'], + 'description' => ['nullable', 'string', 'max:2000'], + 'school_year' => ['nullable', 'string', 'max:20'], + 'semester' => ['nullable', 'string', 'max:20'], + ]; + } +} diff --git a/app/Http/Requests/Finance/StoreExtraChargeRequest.php b/app/Http/Requests/Finance/StoreExtraChargeRequest.php new file mode 100644 index 00000000..7d7a5c95 --- /dev/null +++ b/app/Http/Requests/Finance/StoreExtraChargeRequest.php @@ -0,0 +1,28 @@ +user() !== null; + } + + public function rules(): array + { + return [ + 'parent_id' => ['required', 'integer', 'min:1'], + 'title' => ['required', 'string', 'min:2', 'max:255'], + 'amount' => ['required', 'numeric', 'min:0.01'], + 'charge_type' => ['required', 'in:add,deduct'], + 'description' => ['nullable', 'string', 'max:2000'], + 'due_date' => ['nullable', 'date_format:Y-m-d'], + 'invoice_id' => ['nullable', 'integer', 'min:1'], + 'school_year' => ['nullable', 'string', 'max:20'], + 'semester' => ['nullable', 'string', 'max:20'], + ]; + } +} diff --git a/app/Http/Requests/Promotions/AdminListPromotionsRequest.php b/app/Http/Requests/Promotions/AdminListPromotionsRequest.php new file mode 100644 index 00000000..f6b54c47 --- /dev/null +++ b/app/Http/Requests/Promotions/AdminListPromotionsRequest.php @@ -0,0 +1,51 @@ + ['nullable'], + 'status.*' => ['string', Rule::in(StudentPromotionRecord::ALL_STATUSES)], + 'next_school_year' => ['nullable', 'string', 'max:9'], + 'current_school_year' => ['nullable', 'string', 'max:9'], + 'parent_id' => ['nullable', 'integer', 'min:1'], + 'student_id' => ['nullable', 'integer', 'min:1'], + 'search' => ['nullable', 'string', 'max:191'], + 'parent_action_required' => ['nullable', 'boolean'], + 'page' => ['nullable', 'integer', 'min:1'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:200'], + ]; + } + + public function filters(): array + { + $data = $this->validated(); + $status = $data['status'] ?? null; + if (is_string($status) && $status !== '') { + $status = [$status]; + } elseif (!is_array($status)) { + $status = null; + } + + return [ + 'status' => $status, + 'next_school_year' => $data['next_school_year'] ?? null, + 'current_school_year' => $data['current_school_year'] ?? null, + 'parent_id' => isset($data['parent_id']) ? (int) $data['parent_id'] : null, + 'student_id' => isset($data['student_id']) ? (int) $data['student_id'] : null, + 'search' => $data['search'] ?? null, + 'parent_action_required' => isset($data['parent_action_required']) + ? (bool) $data['parent_action_required'] + : false, + 'page' => isset($data['page']) ? (int) $data['page'] : 1, + 'per_page' => isset($data['per_page']) ? (int) $data['per_page'] : 50, + ]; + } +} diff --git a/app/Http/Requests/Promotions/EvaluateEligibilityRequest.php b/app/Http/Requests/Promotions/EvaluateEligibilityRequest.php new file mode 100644 index 00000000..a41273e0 --- /dev/null +++ b/app/Http/Requests/Promotions/EvaluateEligibilityRequest.php @@ -0,0 +1,18 @@ + ['nullable', 'string', 'in:student,class_section,school_year'], + 'student_id' => ['nullable', 'integer', 'min:1', 'required_if:scope,student'], + 'class_section_id' => ['nullable', 'integer', 'min:1', 'required_if:scope,class_section'], + 'current_school_year' => ['nullable', 'string', 'max:9'], + ]; + } +} diff --git a/app/Http/Requests/Promotions/ParentEnrollmentStepRequest.php b/app/Http/Requests/Promotions/ParentEnrollmentStepRequest.php new file mode 100644 index 00000000..8689d033 --- /dev/null +++ b/app/Http/Requests/Promotions/ParentEnrollmentStepRequest.php @@ -0,0 +1,30 @@ + ['nullable', 'boolean'], + 'documents_uploaded' => ['nullable', 'boolean'], + 'agreement_accepted' => ['nullable', 'boolean'], + 'payment_completed' => ['nullable', 'boolean'], + ]; + } + + public function steps(): array + { + $data = $this->validated(); + $steps = []; + foreach (['info_confirmed', 'documents_uploaded', 'agreement_accepted', 'payment_completed'] as $field) { + if (array_key_exists($field, $data) && $data[$field] !== null) { + $steps[$field] = (bool) $data[$field]; + } + } + return $steps; + } +} diff --git a/app/Http/Requests/Promotions/ParentPromotionOverviewRequest.php b/app/Http/Requests/Promotions/ParentPromotionOverviewRequest.php new file mode 100644 index 00000000..d657553b --- /dev/null +++ b/app/Http/Requests/Promotions/ParentPromotionOverviewRequest.php @@ -0,0 +1,15 @@ + ['nullable', 'string', 'max:9'], + ]; + } +} diff --git a/app/Http/Requests/Promotions/SendReminderRequest.php b/app/Http/Requests/Promotions/SendReminderRequest.php new file mode 100644 index 00000000..f347623c --- /dev/null +++ b/app/Http/Requests/Promotions/SendReminderRequest.php @@ -0,0 +1,21 @@ + ['nullable', 'string', Rule::in(PromotionReminderLog::ALLOWED_TYPES)], + 'subject' => ['nullable', 'string', 'max:191'], + 'message' => ['nullable', 'string', 'max:5000'], + 'channels' => ['nullable', 'array'], + 'channels.*' => ['string', Rule::in(['in_app', 'email', 'sms'])], + ]; + } +} diff --git a/app/Http/Requests/Promotions/SetEnrollmentDeadlineRequest.php b/app/Http/Requests/Promotions/SetEnrollmentDeadlineRequest.php new file mode 100644 index 00000000..21af7646 --- /dev/null +++ b/app/Http/Requests/Promotions/SetEnrollmentDeadlineRequest.php @@ -0,0 +1,19 @@ + ['required', 'date_format:Y-m-d'], + 'apply_to' => ['nullable', 'string', 'in:single,school_year,filter'], + 'next_school_year' => ['nullable', 'string', 'max:9'], + 'promotion_ids' => ['nullable', 'array'], + 'promotion_ids.*' => ['integer', 'min:1'], + ]; + } +} diff --git a/app/Http/Requests/Promotions/UpdatePromotionStatusRequest.php b/app/Http/Requests/Promotions/UpdatePromotionStatusRequest.php new file mode 100644 index 00000000..b3cb1331 --- /dev/null +++ b/app/Http/Requests/Promotions/UpdatePromotionStatusRequest.php @@ -0,0 +1,19 @@ + ['required', 'string', Rule::in(StudentPromotionRecord::ALL_STATUSES)], + 'force' => ['nullable', 'boolean'], + 'notes' => ['nullable', 'string', 'max:500'], + ]; + } +} diff --git a/app/Http/Requests/Promotions/UpsertLevelProgressionRequest.php b/app/Http/Requests/Promotions/UpsertLevelProgressionRequest.php new file mode 100644 index 00000000..d596ba97 --- /dev/null +++ b/app/Http/Requests/Promotions/UpsertLevelProgressionRequest.php @@ -0,0 +1,22 @@ + ['nullable', 'integer', 'min:1'], + 'current_level_name' => ['required', 'string', 'max:100'], + 'next_level_id' => ['nullable', 'integer', 'min:1'], + 'next_level_name' => ['nullable', 'string', 'max:100'], + 'order_index' => ['nullable', 'integer', 'min:0', 'max:65535'], + 'is_terminal' => ['nullable', 'boolean'], + 'is_active' => ['nullable', 'boolean'], + 'notes' => ['nullable', 'string', 'max:500'], + ]; + } +} diff --git a/app/Http/Resources/Fees/ChargeActionResource.php b/app/Http/Resources/Fees/ChargeActionResource.php new file mode 100644 index 00000000..abe4b09c --- /dev/null +++ b/app/Http/Resources/Fees/ChargeActionResource.php @@ -0,0 +1,33 @@ + (bool) ($this->resource['ok'] ?? false), + 'charge_type' => $this->resource['charge_type'] ?? null, + 'id' => isset($this->resource['id']) ? (int) $this->resource['id'] : null, + 'parent_id' => isset($this->resource['parent_id']) ? (int) $this->resource['parent_id'] : null, + 'student_id' => isset($this->resource['student_id']) ? (int) $this->resource['student_id'] : null, + 'invoice_id' => isset($this->resource['invoice_id']) ? (int) $this->resource['invoice_id'] : null, + 'event_id' => isset($this->resource['event_id']) ? (int) $this->resource['event_id'] : null, + 'event_name' => $this->resource['event_name'] ?? null, + 'amount' => isset($this->resource['amount']) ? (float) $this->resource['amount'] : null, + 'status' => $this->resource['status'] ?? null, + 'payment_status' => $this->resource['payment_status'] ?? null, + 'participation_status' => $this->resource['participation_status'] ?? null, + 'cancellation_status' => $this->resource['cancellation_status'] ?? null, + 'account_credit_charge_id' => isset($this->resource['account_credit_charge_id']) + ? (int) $this->resource['account_credit_charge_id'] + : null, + 'message' => $this->resource['message'] ?? null, + 'error' => $this->resource['error'] ?? null, + ], fn ($value) => $value !== null); + } +} diff --git a/app/Http/Resources/Fees/ChargeListResource.php b/app/Http/Resources/Fees/ChargeListResource.php new file mode 100644 index 00000000..1ae9ba9f --- /dev/null +++ b/app/Http/Resources/Fees/ChargeListResource.php @@ -0,0 +1,19 @@ + (int) ($this->resource['parent_id'] ?? 0), + 'school_year' => $this->resource['school_year'] ?? null, + 'extra_charges' => $this->resource['extra_charges'] ?? [], + 'event_charges' => $this->resource['event_charges'] ?? [], + ]; + } +} diff --git a/app/Http/Resources/Fees/FeeFamilyBalanceResource.php b/app/Http/Resources/Fees/FeeFamilyBalanceResource.php new file mode 100644 index 00000000..eeb7bec1 --- /dev/null +++ b/app/Http/Resources/Fees/FeeFamilyBalanceResource.php @@ -0,0 +1,53 @@ +resource['charges'] ?? []; + $credits = $this->resource['credits'] ?? []; + $students = $this->resource['students'] ?? []; + + return [ + 'parent_id' => (int) ($this->resource['parent_id'] ?? 0), + 'school_year' => $this->resource['school_year'] ?? null, + 'charges' => [ + 'tuition' => (float) ($charges['tuition'] ?? 0), + 'extra_charges' => (float) ($charges['extra_charges'] ?? 0), + 'event_charges' => (float) ($charges['event_charges'] ?? 0), + 'late_fees' => (float) ($charges['late_fees'] ?? 0), + 'total' => (float) ($charges['total'] ?? 0), + ], + 'credits' => [ + 'discounts' => (float) ($credits['discounts'] ?? 0), + 'total' => (float) ($credits['total'] ?? 0), + ], + 'payments' => (float) ($this->resource['payments'] ?? 0), + 'refunds_applied' => (float) ($this->resource['refunds_applied'] ?? 0), + 'remaining_balance' => (float) ($this->resource['remaining_balance'] ?? 0), + 'account_credit' => (float) ($this->resource['account_credit'] ?? 0), + 'students' => array_map(function (array $row): array { + return [ + 'student_id' => $row['student_id'] ?? null, + 'student_name' => $row['student_name'] ?? null, + 'grade' => $row['grade'] ?? null, + 'enrollment_status' => $row['enrollment_status'] ?? null, + 'tuition' => (float) ($row['tuition'] ?? 0), + 'extra_charges' => (float) ($row['extra_charges'] ?? 0), + 'event_charges' => (float) ($row['event_charges'] ?? 0), + 'total_charges' => (float) ($row['total_charges'] ?? 0), + 'payments_applied' => (float) ($row['payments_applied'] ?? 0), + 'credits_applied' => (float) ($row['credits_applied'] ?? 0), + 'refunds_applied' => (float) ($row['refunds_applied'] ?? 0), + 'remaining_balance' => (float) ($row['remaining_balance'] ?? 0), + 'account_credit' => (float) ($row['account_credit'] ?? 0), + ]; + }, $students), + ]; + } +} diff --git a/app/Http/Resources/Fees/FeeRefundResource.php b/app/Http/Resources/Fees/FeeRefundResource.php index a8befcb4..6d31a2fe 100644 --- a/app/Http/Resources/Fees/FeeRefundResource.php +++ b/app/Http/Resources/Fees/FeeRefundResource.php @@ -9,6 +9,8 @@ class FeeRefundResource extends JsonResource { public function toArray(Request $request): array { + $students = $this->resource['students'] ?? []; + return [ 'refund_amount' => (float) ($this->resource['refund_amount'] ?? 0), 'total_paid' => (float) ($this->resource['total_paid'] ?? 0), @@ -16,6 +18,20 @@ class FeeRefundResource extends JsonResource 'school_end_date' => $this->resource['school_end_date'] ?? null, 'weeks_of_study' => (float) ($this->resource['weeks_of_study'] ?? 0), 'withdrawn_students' => (int) ($this->resource['withdrawn_students'] ?? 0), + 'students' => array_map(function (array $row): array { + return [ + 'student_id' => $row['student_id'] ?? null, + 'grade' => $row['grade'] ?? null, + 'grade_level' => $row['grade_level'] ?? null, + 'fee_category' => $row['fee_category'] ?? null, + 'tuition_fee' => (float) ($row['tuition_fee'] ?? 0), + 'withdrawal_date' => $row['withdrawal_date'] ?? null, + 'weeks_remaining' => (int) ($row['weeks_remaining'] ?? 0), + 'refund_amount' => (float) ($row['refund_amount'] ?? 0), + 'eligible' => (bool) ($row['eligible'] ?? false), + 'reason' => $row['reason'] ?? null, + ]; + }, $students), ]; } } diff --git a/app/Http/Resources/Fees/FeeTuitionBreakdownResource.php b/app/Http/Resources/Fees/FeeTuitionBreakdownResource.php new file mode 100644 index 00000000..11bc1985 --- /dev/null +++ b/app/Http/Resources/Fees/FeeTuitionBreakdownResource.php @@ -0,0 +1,41 @@ +resource['students'] ?? []; + $fees = $this->resource['fees'] ?? []; + + return [ + 'school_year' => $this->resource['school_year'] ?? null, + 'family_total' => (float) ($this->resource['family_total'] ?? 0), + 'billable_count' => (int) ($this->resource['billable_count'] ?? 0), + 'non_billable_count' => (int) ($this->resource['non_billable_count'] ?? 0), + 'fees' => [ + 'first_student_fee' => (float) ($fees['first_student_fee'] ?? 0), + 'second_student_fee' => (float) ($fees['second_student_fee'] ?? 0), + 'youth_fee' => (float) ($fees['youth_fee'] ?? 0), + ], + 'students' => array_map(function (array $row): array { + return [ + 'student_id' => $row['student_id'] ?? null, + 'student_name' => $row['student_name'] ?? null, + 'grade' => $row['grade'] ?? null, + 'grade_level' => $row['grade_level'] ?? null, + 'enrollment_status' => $row['enrollment_status'] ?? null, + 'admission_status' => $row['admission_status'] ?? null, + 'fee_category' => $row['fee_category'] ?? null, + 'tuition_fee' => (float) ($row['tuition_fee'] ?? 0), + 'discount_amount' => (float) ($row['discount_amount'] ?? 0), + 'final_tuition_amount' => (float) ($row['final_tuition_amount'] ?? 0), + ]; + }, $students), + ]; + } +} diff --git a/app/Http/Resources/Promotions/LevelProgressionResource.php b/app/Http/Resources/Promotions/LevelProgressionResource.php new file mode 100644 index 00000000..82d576d8 --- /dev/null +++ b/app/Http/Resources/Promotions/LevelProgressionResource.php @@ -0,0 +1,23 @@ + (int) ($this->id ?? 0), + 'current_level_id' => $this->current_level_id !== null ? (int) $this->current_level_id : null, + 'current_level_name' => (string) ($this->current_level_name ?? ''), + 'next_level_id' => $this->next_level_id !== null ? (int) $this->next_level_id : null, + 'next_level_name' => $this->next_level_name, + 'order_index' => (int) ($this->order_index ?? 0), + 'is_terminal' => (bool) $this->is_terminal, + 'is_active' => (bool) $this->is_active, + 'notes' => $this->notes, + ]; + } +} diff --git a/app/Http/Resources/Promotions/PromotionAuditLogResource.php b/app/Http/Resources/Promotions/PromotionAuditLogResource.php new file mode 100644 index 00000000..3a9a86b6 --- /dev/null +++ b/app/Http/Resources/Promotions/PromotionAuditLogResource.php @@ -0,0 +1,25 @@ + (int) ($this->id ?? 0), + 'promotion_id' => $this->promotion_id ? (int) $this->promotion_id : null, + 'student_id' => $this->student_id ? (int) $this->student_id : null, + 'user_id' => $this->user_id ? (int) $this->user_id : null, + 'action_type' => $this->action_type, + 'field' => $this->field, + 'old_value' => $this->old_value, + 'new_value' => $this->new_value, + 'notes' => $this->notes, + 'performed_at' => optional($this->performed_at)->toDateTimeString(), + 'created_at' => optional($this->created_at)->toDateTimeString(), + ]; + } +} diff --git a/app/Http/Resources/Promotions/PromotionReminderResource.php b/app/Http/Resources/Promotions/PromotionReminderResource.php new file mode 100644 index 00000000..0bfb5824 --- /dev/null +++ b/app/Http/Resources/Promotions/PromotionReminderResource.php @@ -0,0 +1,24 @@ + (int) ($this->id ?? 0), + 'promotion_id' => (int) ($this->promotion_id ?? 0), + 'student_id' => $this->student_id ? (int) $this->student_id : null, + 'parent_id' => $this->parent_id ? (int) $this->parent_id : null, + 'reminder_type' => $this->reminder_type, + 'channel' => $this->channel, + 'subject' => $this->subject, + 'message' => $this->message, + 'sent_at' => optional($this->sent_at)->toDateTimeString(), + 'sent_by' => $this->sent_by ? (int) $this->sent_by : null, + ]; + } +} diff --git a/app/Http/Resources/Promotions/StudentPromotionResource.php b/app/Http/Resources/Promotions/StudentPromotionResource.php new file mode 100644 index 00000000..ec6455c0 --- /dev/null +++ b/app/Http/Resources/Promotions/StudentPromotionResource.php @@ -0,0 +1,53 @@ +resource; + $get = static function (string $key, $default = null) use ($r) { + if (is_array($r)) { + return $r[$key] ?? $default; + } + return $r->{$key} ?? $default; + }; + + return [ + 'promotion_id' => (int) ($get('promotion_id') ?? 0), + 'student_id' => (int) ($get('student_id') ?? 0), + 'student_name' => $get('student_name'), + 'school_id' => $get('school_id'), + 'parent_id' => $get('parent_id') ? (int) $get('parent_id') : null, + 'parent_name' => $get('parent_name'), + 'parent_email' => $get('parent_email'), + 'current_school_year' => $get('current_school_year'), + 'next_school_year' => $get('next_school_year'), + 'current_level' => $get('current_level') ?? $get('current_level_name'), + 'promoted_level' => $get('promoted_level') ?? $get('promoted_level_name'), + 'promotion_status' => $get('promotion_status'), + 'enrollment_status' => $get('enrollment_status'), + 'enrollment_deadline' => $get('enrollment_deadline'), + 'parent_notified_at' => $get('parent_notified_at'), + 'enrollment_started_at' => $get('enrollment_started_at'), + 'enrollment_completed_at' => $get('enrollment_completed_at'), + 'promotion_finalized_at' => $get('promotion_finalized_at'), + 'final_average' => $get('final_average') !== null ? (float) $get('final_average') : null, + 'passed_current_level' => $get('passed_current_level'), + 'checklist' => $get('checklist'), + 'eligibility_notes' => $get('eligibility_notes'), + 'enrollment_id' => $get('enrollment_id') ? (int) $get('enrollment_id') : null, + 'updated_by' => $get('updated_by') ? (int) $get('updated_by') : null, + 'updated_at' => $get('updated_at'), + ]; + } +} diff --git a/app/Models/AuthorizedUser.php b/app/Models/AuthorizedUser.php index 86781447..d51ddb81 100644 --- a/app/Models/AuthorizedUser.php +++ b/app/Models/AuthorizedUser.php @@ -17,6 +17,7 @@ class AuthorizedUser extends BaseModel 'firstname', 'lastname', 'phone_number', + 'gender', 'email', 'relation_to_user', 'token', diff --git a/app/Models/EventCharges.php b/app/Models/EventCharges.php index 654b6d6e..43355863 100644 --- a/app/Models/EventCharges.php +++ b/app/Models/EventCharges.php @@ -14,6 +14,9 @@ class EventCharges extends BaseModel protected $fillable = [ 'event_id', + 'event_name', + 'description', + 'amount', 'parent_id', 'student_id', 'participation', diff --git a/app/Models/LevelProgression.php b/app/Models/LevelProgression.php new file mode 100644 index 00000000..c1e1e8c4 --- /dev/null +++ b/app/Models/LevelProgression.php @@ -0,0 +1,62 @@ + 'integer', + 'next_level_id' => 'integer', + 'order_index' => 'integer', + 'is_terminal' => 'boolean', + 'is_active' => 'boolean', + ]; + + public function scopeActive(Builder $q): Builder + { + return $q->where('is_active', 1); + } + + public function scopeOrdered(Builder $q): Builder + { + return $q->orderBy('order_index')->orderBy('current_level_name'); + } + + public static function findByCurrentLevelId(int $levelId): ?self + { + return static::query() + ->where('current_level_id', $levelId) + ->where('is_active', 1) + ->first(); + } + + public static function findByCurrentLevelName(string $name): ?self + { + return static::query() + ->whereRaw('LOWER(current_level_name) = ?', [strtolower(trim($name))]) + ->where('is_active', 1) + ->first(); + } +} diff --git a/app/Models/PromotionAuditLog.php b/app/Models/PromotionAuditLog.php new file mode 100644 index 00000000..7d6b1423 --- /dev/null +++ b/app/Models/PromotionAuditLog.php @@ -0,0 +1,64 @@ + 'integer', + 'student_id' => 'integer', + 'user_id' => 'integer', + 'performed_at' => 'datetime', + ]; + + public function promotion(): BelongsTo + { + return $this->belongsTo(StudentPromotionRecord::class, 'promotion_id', 'promotion_id'); + } + + public function actor(): BelongsTo + { + return $this->belongsTo(User::class, 'user_id'); + } + + public function scopeForPromotion(Builder $q, int $promotionId): Builder + { + return $q->where('promotion_id', $promotionId); + } +} diff --git a/app/Models/PromotionReminderLog.php b/app/Models/PromotionReminderLog.php new file mode 100644 index 00000000..88973cf1 --- /dev/null +++ b/app/Models/PromotionReminderLog.php @@ -0,0 +1,61 @@ + 'integer', + 'student_id' => 'integer', + 'parent_id' => 'integer', + 'sent_by' => 'integer', + 'sent_at' => 'datetime', + ]; + + public function promotion(): BelongsTo + { + return $this->belongsTo(StudentPromotionRecord::class, 'promotion_id', 'promotion_id'); + } + + public function scopeForPromotion(Builder $q, int $promotionId): Builder + { + return $q->where('promotion_id', $promotionId); + } +} diff --git a/app/Models/StudentPromotionRecord.php b/app/Models/StudentPromotionRecord.php new file mode 100644 index 00000000..1611f7ae --- /dev/null +++ b/app/Models/StudentPromotionRecord.php @@ -0,0 +1,194 @@ + 'integer', + 'parent_id' => 'integer', + 'current_level_id' => 'integer', + 'promoted_level_id' => 'integer', + 'passed_current_level' => 'boolean', + 'final_average' => 'float', + 'attendance_ok' => 'boolean', + 'enrollment_required' => 'boolean', + 'enrollment_id' => 'integer', + 'parent_notified_at' => 'datetime', + 'enrollment_deadline' => 'date', + 'enrollment_started_at' => 'datetime', + 'enrollment_completed_at' => 'datetime', + 'promotion_finalized_at' => 'datetime', + 'info_confirmed' => 'boolean', + 'documents_uploaded' => 'boolean', + 'agreement_accepted' => 'boolean', + 'payment_completed' => 'boolean', + 'updated_by' => 'integer', + ]; + + public function student(): BelongsTo + { + return $this->belongsTo(Student::class, 'student_id'); + } + + public function parent(): BelongsTo + { + return $this->belongsTo(User::class, 'parent_id'); + } + + public function enrollment(): BelongsTo + { + return $this->belongsTo(Enrollment::class, 'enrollment_id'); + } + + public function scopeForNextYear(Builder $q, string $year): Builder + { + return $q->where('next_school_year', $year); + } + + public function scopeStatus(Builder $q, string $status): Builder + { + return $q->where('promotion_status', $status); + } + + public function scopeForStudent(Builder $q, int $studentId): Builder + { + return $q->where('student_id', $studentId); + } + + public function scopeForParent(Builder $q, int $parentId): Builder + { + return $q->where('parent_id', $parentId); + } + + /** + * Statuses the parent portal should treat as "actionable" (parent + * can still complete enrollment). + */ + public static function parentActionableStatuses(): array + { + return [ + self::STATUS_ELIGIBLE, + self::STATUS_AWAITING_PARENT, + self::STATUS_ENROLLMENT_STARTED, + ]; + } + + /** + * Statuses considered "open" for the next school year (admin views + * may want to filter on these). + */ + public static function openStatuses(): array + { + return [ + self::STATUS_NOT_REVIEWED, + self::STATUS_ELIGIBLE, + self::STATUS_AWAITING_PARENT, + self::STATUS_ENROLLMENT_STARTED, + self::STATUS_CONDITIONAL, + self::STATUS_ON_HOLD, + ]; + } + + public function isFinalized(): bool + { + return in_array( + $this->promotion_status, + [ + self::STATUS_PROMOTED_AND_ENROLLED, + self::STATUS_REPEATED, + self::STATUS_WITHDRAWN, + self::STATUS_GRADUATED, + self::STATUS_NOT_ENROLLED, + ], + true + ); + } + + public function enrollmentChecklistComplete(): bool + { + // Mirrors plan section 8 – parent-side completion criteria. + // Payment is only required when payment_completed has been + // explicitly set; treat null/false as still required by default. + return (bool) $this->info_confirmed + && (bool) $this->documents_uploaded + && (bool) $this->agreement_accepted + && (bool) $this->payment_completed; + } +} diff --git a/app/Services/Auth/ApiLoginSecurityService.php b/app/Services/Auth/ApiLoginSecurityService.php index 23067cd7..9504fde7 100644 --- a/app/Services/Auth/ApiLoginSecurityService.php +++ b/app/Services/Auth/ApiLoginSecurityService.php @@ -6,6 +6,7 @@ use App\Models\IpAttempt; use App\Models\LoginActivity; use App\Models\Configuration; use App\Models\User; +use Carbon\CarbonImmutable; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; @@ -15,6 +16,10 @@ use Illuminate\Support\Facades\Log; */ class ApiLoginSecurityService { + private const MAX_ATTEMPTS = 10; + + private const BLOCK_HOURS = 24; + public function isIpBlocked(string $ip): bool { $row = IpAttempt::query()->where('ip_address', $ip)->first(); @@ -27,19 +32,28 @@ class ApiLoginSecurityService public function logIpAttempt(string $ip): void { - $now = utc_now(); + $now = CarbonImmutable::now('UTC'); + $nowStr = $now->toDateTimeString(); $attempt = IpAttempt::query()->where('ip_address', $ip)->first(); if ($attempt) { - $attempts = ((int) $attempt->attempts) + 1; - $blockedUntil = null; - if ($attempts >= 10) { - $blockedUntil = date('Y-m-d H:i:s', strtotime('+24 hours')); - } + $previouslyBlocked = $attempt->blocked_until + ? CarbonImmutable::parse($attempt->blocked_until, 'UTC')->isFuture() + : false; + + // If the previous block has already expired, start a fresh window + // so we don't perma-ban an IP after its first 10 lifetime failures. + $attempts = $previouslyBlocked + ? ((int) $attempt->attempts) + 1 + : 1; + + $blockedUntil = $attempts >= self::MAX_ATTEMPTS + ? $now->addHours(self::BLOCK_HOURS)->toDateTimeString() + : null; $attempt->update([ 'attempts' => $attempts, - 'last_attempt_at' => $now, + 'last_attempt_at' => $nowStr, 'blocked_until' => $blockedUntil, ]); @@ -49,7 +63,7 @@ class ApiLoginSecurityService IpAttempt::query()->create([ 'ip_address' => $ip, 'attempts' => 1, - 'last_attempt_at' => $now, + 'last_attempt_at' => $nowStr, ]); } diff --git a/app/Services/Billing/BalanceCalculationService.php b/app/Services/Billing/BalanceCalculationService.php new file mode 100644 index 00000000..46ca0a0b --- /dev/null +++ b/app/Services/Billing/BalanceCalculationService.php @@ -0,0 +1,172 @@ +> $students + * + * @return array + */ + public function calculateFamilyAccount(array $students, int $parentId, ?string $schoolYear = null): array + { + $schoolYear = $schoolYear ?? $this->config->getSchoolYear(); + + $tuitionBreakdown = $this->tuition->calculate($students); + $tuitionTotal = (float) ($tuitionBreakdown['family_total'] ?? 0); + $extraCharges = $this->billingTotals->additionalSubtotalByParent($parentId, $schoolYear); + $eventByStudent = $this->billingTotals->eventSubtotalsByStudent($parentId, $schoolYear); + $eventCharges = round(array_sum($eventByStudent), 2); + $lateFees = 0.0; + + $totalCharges = round($tuitionTotal + $extraCharges + $eventCharges + $lateFees, 2); + + $totalPayments = round(Payment::getTotalPaidByParentId($parentId, $schoolYear), 2); + $totalCredits = round( + DiscountUsage::getTotalDiscountByParentIdAndSchoolYear($parentId, $schoolYear), + 2 + ); + $refundsApplied = round( + Refund::totalApprovedPaidOutForParentAndYear($parentId, $schoolYear), + 2 + ); + + $netting = round($totalPayments + $totalCredits + $refundsApplied, 2); + $rawRemaining = round($totalCharges - $netting, 2); + $remainingBalance = max(0.0, $rawRemaining); + $accountCredit = $rawRemaining < 0 ? round(abs($rawRemaining), 2) : 0.0; + + $studentRows = $this->buildStudentBalances( + $tuitionBreakdown['students'] ?? [], + $eventByStudent, + $totalCharges, + $totalPayments, + $totalCredits, + $refundsApplied + ); + + Log::info('Family account balance calculated', [ + 'parent_id' => $parentId, + 'school_year' => $schoolYear, + 'total_charges' => $totalCharges, + 'remaining_balance' => $remainingBalance, + 'account_credit' => $accountCredit, + ]); + + return [ + 'parent_id' => $parentId, + 'school_year' => $schoolYear, + 'charges' => [ + 'tuition' => $tuitionTotal, + 'extra_charges' => $extraCharges, + 'event_charges' => $eventCharges, + 'late_fees' => $lateFees, + 'total' => $totalCharges, + ], + 'credits' => [ + 'discounts' => $totalCredits, + 'total' => $totalCredits, + ], + 'payments' => $totalPayments, + 'refunds_applied' => $refundsApplied, + 'remaining_balance' => $remainingBalance, + 'account_credit' => $accountCredit, + 'tuition' => $tuitionBreakdown, + 'students' => $studentRows, + ]; + } + + /** + * @param array> $tuitionStudents + * @param array $eventByStudent + * + * @return array> + */ + private function buildStudentBalances( + array $tuitionStudents, + array $eventByStudent, + float $familyTotalCharges, + float $totalPayments, + float $totalCredits, + float $refundsApplied + ): array { + $familyNetting = $totalPayments + $totalCredits + $refundsApplied; + $rows = []; + + foreach ($tuitionStudents as $student) { + $studentId = (int) ($student['student_id'] ?? 0); + $tuitionAmount = (float) ($student['final_tuition_amount'] ?? $student['tuition_fee'] ?? 0); + $eventAmount = (float) ($eventByStudent[$studentId] ?? 0); + $extraAmount = 0.0; + $studentTotalCharges = round($tuitionAmount + $eventAmount + $extraAmount, 2); + + $share = $familyTotalCharges > 0 + ? ($studentTotalCharges / $familyTotalCharges) + : 0.0; + + $paymentsApplied = round($totalPayments * $share, 2); + $creditsApplied = round($totalCredits * $share, 2); + $refundsAppliedShare = round($refundsApplied * $share, 2); + $allocatedNetting = round($familyNetting * $share, 2); + $rawRemaining = round($studentTotalCharges - $allocatedNetting, 2); + + $rows[] = [ + 'student_id' => $studentId > 0 ? $studentId : ($student['student_id'] ?? null), + 'student_name' => $student['student_name'] ?? null, + 'grade' => $student['grade'] ?? null, + 'enrollment_status' => $student['enrollment_status'] ?? null, + 'tuition' => round($tuitionAmount, 2), + 'extra_charges' => $extraAmount, + 'event_charges' => $eventAmount, + 'total_charges' => $studentTotalCharges, + 'payments_applied' => $paymentsApplied, + 'credits_applied' => $creditsApplied, + 'refunds_applied' => $refundsAppliedShare, + 'remaining_balance' => max(0.0, $rawRemaining), + 'account_credit' => $rawRemaining < 0 ? round(abs($rawRemaining), 2) : 0.0, + ]; + } + + $unassignedEvent = (float) ($eventByStudent[0] ?? 0); + if ($unassignedEvent > 0) { + $rows[] = [ + 'student_id' => null, + 'student_name' => null, + 'grade' => null, + 'enrollment_status' => null, + 'tuition' => 0.0, + 'extra_charges' => 0.0, + 'event_charges' => $unassignedEvent, + 'total_charges' => $unassignedEvent, + 'payments_applied' => 0.0, + 'credits_applied' => 0.0, + 'refunds_applied' => 0.0, + 'remaining_balance' => $unassignedEvent, + 'account_credit' => 0.0, + ]; + } + + return $rows; + } +} diff --git a/app/Services/Billing/BillingTotalsService.php b/app/Services/Billing/BillingTotalsService.php index a80e82e4..92ce9a6c 100644 --- a/app/Services/Billing/BillingTotalsService.php +++ b/app/Services/Billing/BillingTotalsService.php @@ -10,41 +10,109 @@ class BillingTotalsService { public function eventSubtotal(int $parentId, string $schoolYear): float { - $eventSubtotal = 0.0; + return round(array_sum($this->eventSubtotalsByStudent($parentId, $schoolYear)), 2); + } + + /** + * @return array student_id => amount + */ + public function eventSubtotalsByStudent(int $parentId, string $schoolYear): array + { + $byStudent = []; + try { $events = EventCharges::getChargesWithEventInfo($parentId, $schoolYear) ?? []; foreach ($events as $event) { - $eventSubtotal += (float) ($event['charged'] ?? 0.0); + $amount = (float) ($event['charged'] ?? 0); + if ($amount <= 0) { + continue; + } + + $studentId = (int) ($event['student_id'] ?? 0); + if ($studentId > 0) { + $byStudent[$studentId] = ($byStudent[$studentId] ?? 0.0) + $amount; + } else { + $byStudent[0] = ($byStudent[0] ?? 0.0) + $amount; + } } } catch (\Throwable $e) { Log::warning('Failed to sum event charges.', ['error' => $e->getMessage()]); } - return round($eventSubtotal, 2); + foreach ($byStudent as $studentId => $amount) { + $byStudent[$studentId] = round($amount, 2); + } + + return $byStudent; } public function additionalSubtotal(int $invoiceId, ?string $schoolYear = null): float { - $additionalSubtotal = 0.0; + return $this->sumAdditionalChargeRows( + $this->fetchAdditionalChargeRows(invoiceId: $invoiceId, schoolYear: $schoolYear) + ); + } + + public function additionalSubtotalByParent(int $parentId, string $schoolYear): float + { + return $this->sumAdditionalChargeRows( + $this->fetchAdditionalChargeRows(parentId: $parentId, schoolYear: $schoolYear) + ); + } + + /** + * @return array + */ + private function fetchAdditionalChargeRows( + ?int $parentId = null, + ?int $invoiceId = null, + ?string $schoolYear = null + ): array { + $rows = []; + try { $builder = AdditionalCharge::query() ->select('charge_type', 'amount') - ->where('invoice_id', $invoiceId) ->where('status', 'applied'); + if ($parentId !== null) { + $builder->where('parent_id', $parentId); + } + + if ($invoiceId !== null) { + $builder->where('invoice_id', $invoiceId); + } + if ($schoolYear !== null && $schoolYear !== '') { $builder->where('school_year', $schoolYear); } $rows = $builder->get()->map(fn ($row) => (array) $row)->all(); - foreach ($rows as $row) { - $amount = (float) ($row['amount'] ?? 0); - $type = strtolower((string) ($row['charge_type'] ?? 'add')); - $amount = $type === 'deduct' ? -abs($amount) : abs($amount); - $additionalSubtotal += $amount; - } } catch (\Throwable $e) { - Log::warning('Failed to sum additional charges.', ['error' => $e->getMessage()]); + Log::warning('Failed to load additional charges.', ['error' => $e->getMessage()]); + } + + return $rows; + } + + /** + * @param array $rows + */ + private function sumAdditionalChargeRows(array $rows): float + { + $additionalSubtotal = 0.0; + + foreach ($rows as $row) { + $amount = (float) ($row['amount'] ?? 0); + $type = strtolower((string) ($row['charge_type'] ?? 'add')); + + if (in_array($type, ['deduct', 'previous'], true)) { + $amount = -abs($amount); + } else { + $amount = abs($amount); + } + + $additionalSubtotal += $amount; } return round($additionalSubtotal, 2); diff --git a/app/Services/Billing/ChargeService.php b/app/Services/Billing/ChargeService.php new file mode 100644 index 00000000..6c2125ef --- /dev/null +++ b/app/Services/Billing/ChargeService.php @@ -0,0 +1,456 @@ +context->getSchoolYear()); + $title = trim((string) ($payload['title'] ?? '')); + $chargeType = (string) ($payload['charge_type'] ?? 'add'); + $amountAbs = round(abs((float) ($payload['amount'] ?? 0)), 2); + + if ($parentId <= 0 || $title === '' || $amountAbs <= 0) { + return ['ok' => false, 'message' => 'Invalid extra charge payload.']; + } + + if ($this->findDuplicateExtraCharge($parentId, $schoolYear, $title, $amountAbs, $chargeType)) { + Log::warning('Duplicate extra charge blocked', [ + 'parent_id' => $parentId, + 'title' => $title, + 'school_year' => $schoolYear, + ]); + + return [ + 'ok' => false, + 'message' => 'A matching extra charge already exists for this parent.', + 'error' => 'duplicate_charge', + ]; + } + + $result = $this->extraCharges->createCharge(array_merge($payload, [ + 'school_year' => $schoolYear, + 'semester' => $payload['semester'] ?? $this->context->getSemester(), + ])); + + if (!($result['ok'] ?? false)) { + return $result; + } + + return [ + 'ok' => true, + 'charge_type' => 'extra', + 'id' => (int) ($result['id'] ?? 0), + 'parent_id' => $parentId, + 'invoice_id' => $result['invoice_id'] ?? null, + 'status' => !empty($payload['invoice_id']) ? 'applied' : 'pending', + ]; + } + + public function cancelExtraCharge(int $chargeId): array + { + $charge = AdditionalCharge::query()->find($chargeId); + if (!$charge) { + return ['ok' => false, 'message' => 'Extra charge not found.']; + } + + if ((string) $charge->status === 'void') { + return ['ok' => false, 'message' => 'Charge is already void.', 'error' => 'already_canceled']; + } + + $ok = $this->extraCharges->voidCharge($charge); + + return [ + 'ok' => $ok, + 'charge_type' => 'extra', + 'id' => $chargeId, + 'status' => $ok ? 'void' : (string) $charge->status, + 'message' => $ok ? null : 'Unable to void extra charge.', + ]; + } + + public function applyExtraCharge(int $chargeId, int $invoiceId): array + { + $charge = AdditionalCharge::query()->find($chargeId); + if (!$charge) { + return ['ok' => false, 'message' => 'Extra charge not found.']; + } + + if ((string) $charge->status === 'void') { + return ['ok' => false, 'message' => 'Cannot apply a void charge.']; + } + + if ((string) $charge->status === 'applied' && (int) $charge->invoice_id === $invoiceId) { + return [ + 'ok' => true, + 'charge_type' => 'extra', + 'id' => $chargeId, + 'status' => 'applied', + 'invoice_id' => $invoiceId, + ]; + } + + if ((string) $charge->status === 'applied') { + return ['ok' => false, 'message' => 'Charge is already applied to another invoice.']; + } + + $chargeType = (string) ($charge->charge_type ?? 'add'); + $amountAbs = round(abs((float) $charge->amount), 2); + + DB::beginTransaction(); + + try { + $this->invoices->applyToInvoice($invoiceId, $chargeType, $amountAbs); + $charge->invoice_id = $invoiceId; + $charge->status = 'applied'; + $charge->save(); + DB::commit(); + } catch (\Throwable $e) { + DB::rollBack(); + Log::error('Apply extra charge failed', ['charge_id' => $chargeId, 'error' => $e->getMessage()]); + + return ['ok' => false, 'message' => 'Unable to apply charge to invoice.']; + } + + return [ + 'ok' => true, + 'charge_type' => 'extra', + 'id' => $chargeId, + 'status' => 'applied', + 'invoice_id' => $invoiceId, + ]; + } + + public function createEventCharge(array $payload): array + { + $parentId = (int) ($payload['parent_id'] ?? 0); + $studentId = (int) ($payload['student_id'] ?? 0); + $schoolYear = (string) ($payload['school_year'] ?? $this->context->getSchoolYear()); + $semester = (string) ($payload['semester'] ?? $this->context->getSemester()); + $eventId = isset($payload['event_id']) ? (int) $payload['event_id'] : null; + $eventName = trim((string) ($payload['event_name'] ?? '')); + $actorId = (int) ($payload['created_by'] ?? $payload['updated_by'] ?? 0); + + if ($parentId <= 0 || $studentId <= 0) { + return ['ok' => false, 'message' => 'Parent and student are required.']; + } + + $amount = isset($payload['amount']) ? (float) $payload['amount'] : null; + if ($eventId > 0) { + $event = Event::getEvent($eventId, $schoolYear); + if (!$event) { + return ['ok' => false, 'message' => 'Event not found.']; + } + $eventName = (string) ($event->event_name ?? $eventName); + $amount = $amount ?? (float) ($event->amount ?? 0); + } + + if ($eventName === '' || $amount === null || $amount < 0) { + return ['ok' => false, 'message' => 'Event name and amount are required.']; + } + + if ($this->findDuplicateEventCharge($parentId, $studentId, $schoolYear, $semester, $eventId, $eventName)) { + Log::warning('Duplicate event charge blocked', [ + 'parent_id' => $parentId, + 'student_id' => $studentId, + 'event_id' => $eventId, + 'event_name' => $eventName, + ]); + + return [ + 'ok' => false, + 'message' => 'This student already has an active charge for this event.', + 'error' => 'duplicate_charge', + ]; + } + + $charge = EventCharges::query()->create([ + 'event_id' => $eventId > 0 ? $eventId : null, + 'event_name' => $eventId > 0 ? null : $eventName, + 'parent_id' => $parentId, + 'student_id' => $studentId, + 'participation' => 'yes', + 'charged' => round($amount, 2), + 'amount' => round($amount, 2), + 'school_year' => $schoolYear, + 'semester' => $semester, + 'created_by' => $actorId ?: null, + 'updated_by' => $actorId ?: null, + ]); + + $this->invoiceGeneration->generateInvoice($parentId, $schoolYear); + + return [ + 'ok' => true, + 'charge_type' => 'event', + 'id' => (int) $charge->id, + 'parent_id' => $parentId, + 'student_id' => $studentId, + 'event_id' => $eventId > 0 ? $eventId : null, + 'event_name' => $eventName, + 'amount' => round($amount, 2), + 'participation_status' => 'yes', + 'payment_status' => 'unpaid', + 'cancellation_status' => 'active', + ]; + } + + public function cancelEventCharge(int $chargeId, bool $issueCredit = true): array + { + $charge = EventCharges::query()->find($chargeId); + if (!$charge) { + return ['ok' => false, 'message' => 'Event charge not found.']; + } + + if ($this->isEventChargeCanceled($charge)) { + return ['ok' => false, 'message' => 'Event charge is already canceled.', 'error' => 'already_canceled']; + } + + $amount = round(abs((float) ($charge->charged ?? $charge->amount ?? 0)), 2); + $eventName = $this->resolveEventName($charge); + $parentId = (int) $charge->parent_id; + $schoolYear = (string) $charge->school_year; + + DB::beginTransaction(); + + try { + $charge->participation = 'no'; + $charge->charged = 0; + if (Schema::hasColumn('event_charges', 'amount')) { + $charge->amount = 0; + } + $charge->save(); + + $creditId = null; + if ($issueCredit && $amount > 0 && $parentId > 0) { + $credit = $this->createExtraCharge([ + 'parent_id' => $parentId, + 'title' => 'Event credit: ' . $eventName, + 'description' => 'Account credit for canceled event charge #' . $chargeId, + 'amount' => $amount, + 'charge_type' => 'deduct', + 'school_year' => $schoolYear, + 'semester' => (string) ($charge->semester ?? $this->context->getSemester()), + 'created_by' => (int) ($charge->updated_by ?? 0), + ]); + if ($credit['ok'] ?? false) { + $creditId = (int) ($credit['id'] ?? 0); + } + } + + $this->invoiceGeneration->generateInvoice($parentId, $schoolYear); + DB::commit(); + } catch (\Throwable $e) { + DB::rollBack(); + Log::error('Cancel event charge failed', ['charge_id' => $chargeId, 'error' => $e->getMessage()]); + + return ['ok' => false, 'message' => 'Unable to cancel event charge.']; + } + + return [ + 'ok' => true, + 'charge_type' => 'event', + 'id' => $chargeId, + 'cancellation_status' => 'canceled', + 'participation_status' => 'no', + 'account_credit_charge_id' => $creditId, + ]; + } + + public function markEventChargePaid(int $chargeId, bool $paid, ?int $paymentId = null): array + { + $charge = EventCharges::query()->find($chargeId); + if (!$charge) { + return ['ok' => false, 'message' => 'Event charge not found.']; + } + + if ($this->isEventChargeCanceled($charge)) { + return ['ok' => false, 'message' => 'Cannot update payment on a canceled charge.']; + } + + if (Schema::hasColumn('event_charges', 'event_paid')) { + $charge->event_paid = $paid ? 1 : 0; + } + if (Schema::hasColumn('event_charges', 'event_payment_id') && $paymentId !== null) { + $charge->event_payment_id = $paymentId; + } + $charge->save(); + + return [ + 'ok' => true, + 'charge_type' => 'event', + 'id' => $chargeId, + 'payment_status' => $paid ? 'paid' : 'unpaid', + ]; + } + + /** + * @return array{extra_charges: array>, event_charges: array>} + */ + public function listForParent(int $parentId, ?string $schoolYear = null): array + { + $schoolYear = $schoolYear ?? $this->context->getSchoolYear(); + + $extraRows = AdditionalCharge::query() + ->where('parent_id', $parentId) + ->where('school_year', $schoolYear) + ->orderByDesc('id') + ->get(); + + $eventRows = EventCharges::getChargesWithEventInfo($parentId, $schoolYear); + + return [ + 'parent_id' => $parentId, + 'school_year' => $schoolYear, + 'extra_charges' => $extraRows->map(fn (AdditionalCharge $row) => $this->formatExtraCharge($row))->all(), + 'event_charges' => array_map(fn (array $row) => $this->formatEventCharge($row), $eventRows), + ]; + } + + private function findDuplicateExtraCharge( + int $parentId, + string $schoolYear, + string $title, + float $amountAbs, + string $chargeType + ): bool { + $normalizedTitle = strtolower($title); + $signedAmount = $chargeType === 'deduct' ? -$amountAbs : $amountAbs; + + return AdditionalCharge::query() + ->where('parent_id', $parentId) + ->where('school_year', $schoolYear) + ->whereIn('status', ['pending', 'applied']) + ->whereRaw('LOWER(title) = ?', [$normalizedTitle]) + ->where('amount', $signedAmount) + ->exists(); + } + + private function findDuplicateEventCharge( + int $parentId, + int $studentId, + string $schoolYear, + string $semester, + ?int $eventId, + string $eventName + ): bool { + $query = EventCharges::query() + ->where('parent_id', $parentId) + ->where('student_id', $studentId) + ->where('school_year', $schoolYear) + ->where('semester', $semester) + ->where('participation', 'yes') + ->where('charged', '>', 0); + + if ($eventId > 0) { + $query->where('event_id', $eventId); + } else { + $query->where('event_name', $eventName); + } + + return $query->exists(); + } + + private function isEventChargeCanceled(EventCharges $charge): bool + { + if (strtolower((string) $charge->participation) === 'no') { + return true; + } + + return (float) ($charge->charged ?? 0) <= 0; + } + + private function resolveEventName(EventCharges $charge): string + { + if (!empty($charge->event_name)) { + return (string) $charge->event_name; + } + + if ($charge->event_id) { + $event = Event::query()->find($charge->event_id); + if ($event) { + return (string) $event->event_name; + } + } + + return 'Event'; + } + + private function formatExtraCharge(AdditionalCharge $row): array + { + return [ + 'id' => (int) $row->id, + 'charge_type' => 'extra', + 'parent_id' => (int) $row->parent_id, + 'invoice_id' => $row->invoice_id ? (int) $row->invoice_id : null, + 'school_year' => $row->school_year, + 'semester' => $row->semester, + 'charge_name' => $row->title, + 'charge_description' => $row->description, + 'amount' => round(abs((float) $row->amount), 2), + 'signed_amount' => round((float) $row->amount, 2), + 'fee_type' => $row->charge_type, + 'due_date' => $row->due_date, + 'status' => $row->status, + 'approval_status' => $row->status, + 'created_by' => $row->created_by, + 'created_at' => $row->created_at, + ]; + } + + /** + * @param array $row + */ + private function formatEventCharge(array $row): array + { + $charged = (float) ($row['charged'] ?? 0); + $canceled = strtolower((string) ($row['participation'] ?? '')) === 'no' || $charged <= 0; + $paid = false; + if (isset($row['event_paid'])) { + $paid = (bool) $row['event_paid']; + } + + return [ + 'id' => (int) ($row['id'] ?? 0), + 'charge_type' => 'event', + 'event_id' => isset($row['event_id']) ? (int) $row['event_id'] : null, + 'event_name' => $row['event_name'] ?? null, + 'parent_id' => isset($row['parent_id']) ? (int) $row['parent_id'] : null, + 'student_id' => isset($row['student_id']) ? (int) $row['student_id'] : null, + 'school_year' => $row['school_year'] ?? null, + 'semester' => $row['semester'] ?? null, + 'participation_status' => $row['participation'] ?? null, + 'charge_amount' => $charged, + 'payment_status' => $paid ? 'paid' : ($canceled ? 'canceled' : 'unpaid'), + 'cancellation_status' => $canceled ? 'canceled' : 'active', + 'event_date' => $row['updated_at'] ?? $row['created_at'] ?? null, + ]; + } +} diff --git a/app/Services/Fees/FeeRefundCalculatorService.php b/app/Services/Fees/FeeRefundCalculatorService.php index f314bd1d..65cc299e 100644 --- a/app/Services/Fees/FeeRefundCalculatorService.php +++ b/app/Services/Fees/FeeRefundCalculatorService.php @@ -22,82 +22,198 @@ class FeeRefundCalculatorService $totalPaid = Payment::getTotalPaidByParentId($parentId, $schoolYear); if ($totalPaid <= 0) { - return $this->resultPayload(0.0, $totalPaid, $refundDeadline, $schoolEndDate, $weeksOfStudy, 0); + Log::info('Refund skipped: parent has no payments', [ + 'parent_id' => $parentId, + 'school_year' => $schoolYear, + ]); + return $this->resultPayload(0.0, $totalPaid, $refundDeadline, $schoolEndDate, $weeksOfStudy, 0, []); } - $registered = []; - $withdrawn = []; - - foreach ($students as $student) { - $status = strtolower((string) ($student['enrollment_status'] ?? '')); - $admission = strtolower((string) ($student['admission_status'] ?? '')); - - if (in_array($status, ['withdrawn', 'refund pending', 'withdraw under review'], true)) { - $withdrawn[] = $student; - continue; - } - - if (in_array($status, ['enrolled', 'payment pending'], true) && $admission === 'accepted') { - $registered[] = $student; - } - } + [$registered, $withdrawn] = $this->partitionStudents($students); if (empty($withdrawn)) { - return $this->resultPayload(0.0, $totalPaid, $refundDeadline, $schoolEndDate, $weeksOfStudy, 0); + Log::info('Refund skipped: no withdrawn students found', [ + 'parent_id' => $parentId, + 'registered_count' => count($registered), + ]); + return $this->resultPayload(0.0, $totalPaid, $refundDeadline, $schoolEndDate, $weeksOfStudy, 0, []); } - $allStudents = array_merge($registered, $withdrawn); - $allStudents = $this->studentFees->assignFees($allStudents); - - $feeByStudentId = []; - foreach ($allStudents as $student) { - $key = $student['student_id'] ?? null; - if ($key === null) { - continue; - } - $feeByStudentId[(string) $key] = (float) ($student['tuition_fee'] ?? 0); + // Per the school billing plan (section 8), each student must carry the + // tuition fee that was assigned to them during fee calculation BEFORE + // the refund loop runs. We mark withdrawn vs registered before merging + // so the fee tier (first/second regular) is computed against the full + // family and we can still iterate only the withdrawn list afterwards. + foreach ($registered as &$student) { + $student['_is_withdrawn'] = false; } + unset($student); + foreach ($withdrawn as &$student) { + $student['_is_withdrawn'] = true; + } + unset($student); + + $allStudents = $this->studentFees->assignFees(array_merge($registered, $withdrawn)); + + $withdrawnWithFees = array_values(array_filter( + $allStudents, + fn (array $student): bool => !empty($student['_is_withdrawn']) + )); $refundAmount = 0.0; $withdrawCount = 0; + $studentBreakdown = []; - foreach ($withdrawn as $student) { + foreach ($withdrawnWithFees as $student) { + $studentId = $student['student_id'] ?? null; + $studentFee = (float) ($student['tuition_fee'] ?? 0); $withdrawalDate = $student['withdrawal_date'] ?? null; + + $entry = [ + 'student_id' => $studentId, + 'grade' => $student['grade'] ?? null, + 'grade_level' => $student['grade_level'] ?? null, + 'fee_category' => $student['fee_category'] ?? null, + 'tuition_fee' => round($studentFee, 2), + 'withdrawal_date' => $withdrawalDate, + 'weeks_remaining' => 0, + 'refund_amount' => 0.0, + 'eligible' => false, + 'reason' => null, + ]; + if (!$withdrawalDate) { - Log::warning('Missing withdraw date for student', ['student_id' => $student['student_id'] ?? null]); + $entry['reason'] = 'missing_withdrawal_date'; + Log::warning('Refund skipped for student: missing withdrawal date', [ + 'parent_id' => $parentId, + 'student_id' => $studentId, + ]); + $studentBreakdown[] = $entry; continue; } if (!$refundDeadline || strtotime($withdrawalDate) > strtotime($refundDeadline)) { + $entry['reason'] = 'after_refund_deadline'; + $studentBreakdown[] = $entry; continue; } if (!$schoolEndDate) { + $entry['reason'] = 'missing_school_end_date'; + Log::warning('Refund skipped for student: missing school end date', [ + 'parent_id' => $parentId, + 'student_id' => $studentId, + ]); + $studentBreakdown[] = $entry; continue; } - $withdrawDateObj = new \DateTime(date('Y-m-d', strtotime($withdrawalDate))); - $schoolEndDateObj = new \DateTime($schoolEndDate); - $daysRemaining = $withdrawDateObj->diff($schoolEndDateObj)->days; - $weeksRemaining = min($weeksOfStudy, max(0, (int) ceil($daysRemaining / 7))); - - $studentId = (string) ($student['student_id'] ?? ''); - $studentFee = $feeByStudentId[$studentId] ?? 0.0; - if ($studentFee <= 0 || $weeksOfStudy <= 0) { + $entry['reason'] = 'zero_fee_or_weeks'; + Log::warning('Refund skipped for student: zero fee or weeks_of_study', [ + 'parent_id' => $parentId, + 'student_id' => $studentId, + 'student_fee' => $studentFee, + 'weeks_of_study' => $weeksOfStudy, + ]); + $studentBreakdown[] = $entry; continue; } + $weeksRemaining = $this->weeksRemaining($withdrawalDate, $schoolEndDate, $weeksOfStudy); + + // Plan section 7: Refund Amount = Student Tuition Fee / Weeks of Study * Weeks Remaining $proportionalRefund = ($studentFee / $weeksOfStudy) * $weeksRemaining; - $refundAmount += $proportionalRefund; - $withdrawCount++; + $proportionalRefund = round(max(0.0, $proportionalRefund), 2); + + $entry['weeks_remaining'] = $weeksRemaining; + $entry['refund_amount'] = $proportionalRefund; + $entry['eligible'] = $proportionalRefund > 0; + if ($entry['eligible']) { + $withdrawCount++; + $refundAmount += $proportionalRefund; + } else { + $entry['reason'] = 'no_weeks_remaining'; + } + + $studentBreakdown[] = $entry; } + $uncappedRefund = $refundAmount; if ($refundAmount > $totalPaid) { + Log::info('Refund capped at total paid', [ + 'parent_id' => $parentId, + 'uncapped' => round($uncappedRefund, 2), + 'capped' => round($totalPaid, 2), + ]); $refundAmount = $totalPaid; + + // Scale per-student refunds proportionally so the breakdown + // adds up to the capped family total. + if ($uncappedRefund > 0) { + $ratio = $totalPaid / $uncappedRefund; + foreach ($studentBreakdown as &$row) { + if (!empty($row['eligible'])) { + $row['refund_amount'] = round($row['refund_amount'] * $ratio, 2); + } + } + unset($row); + } } - return $this->resultPayload($refundAmount, $totalPaid, $refundDeadline, $schoolEndDate, $weeksOfStudy, $withdrawCount); + Log::info('Refund calculation complete', [ + 'parent_id' => $parentId, + 'school_year' => $schoolYear, + 'withdrawn_total' => count($withdrawnWithFees), + 'withdrawn_eligible' => $withdrawCount, + 'refund_amount' => round($refundAmount, 2), + 'total_paid' => round($totalPaid, 2), + ]); + + return $this->resultPayload( + $refundAmount, + $totalPaid, + $refundDeadline, + $schoolEndDate, + $weeksOfStudy, + $withdrawCount, + $studentBreakdown + ); + } + + /** + * @return array{0: array>, 1: array>} + */ + private function partitionStudents(array $students): array + { + $registered = []; + $withdrawn = []; + + foreach ($students as $student) { + if ($this->studentFees->isWithdrawn($student)) { + $withdrawn[] = $student; + continue; + } + + if ($this->studentFees->isBillable($student)) { + $registered[] = $student; + } + } + + return [$registered, $withdrawn]; + } + + private function weeksRemaining(string $withdrawalDate, string $schoolEndDate, float $weeksOfStudy): int + { + $withdrawDateObj = new \DateTime(date('Y-m-d', strtotime($withdrawalDate))); + $schoolEndDateObj = new \DateTime($schoolEndDate); + + if ($withdrawDateObj > $schoolEndDateObj) { + return 0; + } + + $daysRemaining = $withdrawDateObj->diff($schoolEndDateObj)->days; + return (int) min($weeksOfStudy, max(0, (int) ceil($daysRemaining / 7))); } private function resultPayload( @@ -106,7 +222,8 @@ class FeeRefundCalculatorService ?string $refundDeadline, ?string $schoolEndDate, float $weeksOfStudy, - int $withdrawCount + int $withdrawCount, + array $students ): array { return [ 'refund_amount' => round($refund, 2), @@ -115,6 +232,7 @@ class FeeRefundCalculatorService 'school_end_date' => $schoolEndDate, 'weeks_of_study' => $weeksOfStudy, 'withdrawn_students' => $withdrawCount, + 'students' => $students, ]; } } diff --git a/app/Services/Fees/FeeStudentFeeService.php b/app/Services/Fees/FeeStudentFeeService.php index 81560e29..546d92e1 100644 --- a/app/Services/Fees/FeeStudentFeeService.php +++ b/app/Services/Fees/FeeStudentFeeService.php @@ -3,29 +3,46 @@ namespace App\Services\Fees; use App\Models\ClassSection; +use Illuminate\Support\Facades\Log; class FeeStudentFeeService { + public const CATEGORY_FIRST_REGULAR = 'first_regular'; + public const CATEGORY_ADDITIONAL_REGULAR = 'additional_regular'; + public const CATEGORY_YOUTH = 'youth'; + public const CATEGORY_NOT_BILLABLE = 'not_billable'; + + private const BILLABLE_ENROLLMENT_STATUSES = ['enrolled', 'payment pending']; + private const WITHDRAWN_ENROLLMENT_STATUSES = ['withdrawn', 'refund pending', 'withdraw under review']; + private const ACCEPTED_ADMISSION_STATUS = 'accepted'; + public function __construct( private FeeGradeService $grades, private FeeConfigService $config ) { } + /** + * Normalize grades, sort by grade level, and assign a tuition fee to each + * student so that downstream callers (refund, balance, invoice) can read + * the stored fee directly from the student record. + * + * Each student gets the following keys mutated/added: + * - grade (normalized) + * - grade_level + * - fee_category (first_regular | additional_regular | youth) + * - tuition_fee + */ public function assignFees(array $students): array { $fees = $this->config->getFees(); - $firstFee = $fees['first_student_fee']; - $secondFee = $fees['second_student_fee']; - $youthFee = $fees['youth_fee']; + $firstFee = (float) $fees['first_student_fee']; + $secondFee = (float) $fees['second_student_fee']; + $youthFee = (float) $fees['youth_fee']; foreach ($students as &$student) { - $grade = $student['grade'] ?? null; - if ($grade === null || trim((string) $grade) === '') { - $sectionId = $student['class_section_id'] ?? null; - $grade = $sectionId ? ClassSection::getClassSectionNameBySectionId($sectionId) : null; - } - $student['grade'] = $this->grades->normalizeGrade($grade); + $student['grade'] = $this->resolveGrade($student); + $student['grade_level'] = $this->grades->getGradeLevel($student['grade']); } unset($student); @@ -35,11 +52,18 @@ class FeeStudentFeeService $regularCount = 0; foreach ($students as &$student) { - $gradeLevel = $this->grades->getGradeLevel($student['grade'] ?? ''); + $gradeLevel = (int) ($student['grade_level'] ?? 999); if ($gradeLevel > 9) { + $student['fee_category'] = self::CATEGORY_YOUTH; $student['tuition_fee'] = $youthFee; } else { - $student['tuition_fee'] = ($regularCount === 0) ? $firstFee : $secondFee; + if ($regularCount === 0) { + $student['fee_category'] = self::CATEGORY_FIRST_REGULAR; + $student['tuition_fee'] = $firstFee; + } else { + $student['fee_category'] = self::CATEGORY_ADDITIONAL_REGULAR; + $student['tuition_fee'] = $secondFee; + } $regularCount++; } } @@ -59,4 +83,126 @@ class FeeStudentFeeService return $total; } + + /** + * Return a detailed student-level + family-level tuition breakdown. + * + * Only students that are accepted and either enrolled or payment-pending + * are billed. Withdrawn students appear in the breakdown with a zero + * tuition fee and the not_billable category so callers (refund service, + * invoice generation) can still see them in one consistent payload. + * + * @return array{ + * family_total: float, + * billable_count: int, + * non_billable_count: int, + * students: array>, + * fees: array + * } + */ + public function calculateBreakdown(array $students): array + { + $fees = $this->config->getFees(); + + $billable = []; + $nonBillable = []; + + foreach ($students as $index => $student) { + $student['_original_index'] = $index; + $student['grade'] = $this->resolveGrade($student); + $student['grade_level'] = $this->grades->getGradeLevel($student['grade']); + $student['enrollment_status'] = isset($student['enrollment_status']) + ? strtolower((string) $student['enrollment_status']) + : null; + $student['admission_status'] = isset($student['admission_status']) + ? strtolower((string) $student['admission_status']) + : null; + + if ($this->isBillable($student)) { + $billable[] = $student; + } else { + $nonBillable[] = $student; + } + } + + $billable = $this->assignFees($billable); + + $nonBillable = array_map(function (array $student): array { + $student['fee_category'] = self::CATEGORY_NOT_BILLABLE; + $student['tuition_fee'] = 0.0; + return $student; + }, $nonBillable); + + $combined = array_merge($billable, $nonBillable); + usort($combined, fn ($a, $b) => ($a['_original_index'] ?? 0) <=> ($b['_original_index'] ?? 0)); + + $familyTotal = 0.0; + $studentRows = []; + foreach ($combined as $student) { + unset($student['_original_index']); + + $tuitionFee = (float) ($student['tuition_fee'] ?? 0); + $discount = (float) ($student['discount_amount'] ?? 0); + $finalTuition = max(0.0, $tuitionFee - $discount); + $familyTotal += $finalTuition; + + $studentRows[] = [ + 'student_id' => $student['student_id'] ?? null, + 'student_name' => trim(($student['firstname'] ?? '') . ' ' . ($student['lastname'] ?? '')), + 'grade' => $student['grade'] ?? null, + 'grade_level' => $student['grade_level'] ?? null, + 'enrollment_status' => $student['enrollment_status'] ?? null, + 'admission_status' => $student['admission_status'] ?? null, + 'fee_category' => $student['fee_category'] ?? null, + 'tuition_fee' => round($tuitionFee, 2), + 'discount_amount' => round($discount, 2), + 'final_tuition_amount' => round($finalTuition, 2), + ]; + } + + Log::info('Tuition breakdown calculated', [ + 'total_students' => count($studentRows), + 'billable' => count($billable), + 'non_billable' => count($nonBillable), + 'family_total' => round($familyTotal, 2), + ]); + + return [ + 'family_total' => round($familyTotal, 2), + 'billable_count' => count($billable), + 'non_billable_count' => count($nonBillable), + 'students' => $studentRows, + 'fees' => [ + 'first_student_fee' => (float) $fees['first_student_fee'], + 'second_student_fee' => (float) $fees['second_student_fee'], + 'youth_fee' => (float) $fees['youth_fee'], + ], + ]; + } + + public function isBillable(array $student): bool + { + $status = strtolower((string) ($student['enrollment_status'] ?? '')); + $admission = strtolower((string) ($student['admission_status'] ?? '')); + + return in_array($status, self::BILLABLE_ENROLLMENT_STATUSES, true) + && $admission === self::ACCEPTED_ADMISSION_STATUS; + } + + public function isWithdrawn(array $student): bool + { + $status = strtolower((string) ($student['enrollment_status'] ?? '')); + return in_array($status, self::WITHDRAWN_ENROLLMENT_STATUSES, true); + } + + private function resolveGrade(array $student): string + { + $grade = $student['grade'] ?? null; + if ($grade === null || trim((string) $grade) === '') { + $sectionId = $student['class_section_id'] ?? null; + $grade = $sectionId ? ClassSection::getClassSectionNameBySectionId($sectionId) : null; + } + + return $this->grades->normalizeGrade($grade); + } } diff --git a/app/Services/Fees/TuitionCalculationService.php b/app/Services/Fees/TuitionCalculationService.php new file mode 100644 index 00000000..cfeceb33 --- /dev/null +++ b/app/Services/Fees/TuitionCalculationService.php @@ -0,0 +1,73 @@ +, + * family_total: float, + * billable_count: int, + * non_billable_count: int, + * students: array> + * } + */ + public function calculate(array $students): array + { + $schoolYear = $this->config->getSchoolYear(); + $breakdown = $this->studentFees->calculateBreakdown($students); + + Log::info('Tuition calculation requested', [ + 'school_year' => $schoolYear, + 'student_count' => count($students), + 'family_total' => $breakdown['family_total'], + ]); + + return [ + 'school_year' => $schoolYear, + 'fees' => $breakdown['fees'], + 'family_total' => $breakdown['family_total'], + 'billable_count' => $breakdown['billable_count'], + 'non_billable_count' => $breakdown['non_billable_count'], + 'students' => $breakdown['students'], + ]; + } + + /** + * Convenience helper: the family-level tuition total only. + */ + public function familyTotal(array $students): float + { + return $this->calculate($students)['family_total']; + } +} diff --git a/app/Services/Parents/AuthorizedUsersManagementService.php b/app/Services/Parents/AuthorizedUsersManagementService.php index d764635a..f2f4f484 100644 --- a/app/Services/Parents/AuthorizedUsersManagementService.php +++ b/app/Services/Parents/AuthorizedUsersManagementService.php @@ -27,6 +27,9 @@ class AuthorizedUsersManagementService /** * CI create() first step — lookup by token after invite email (pending row, created within TTL). + * + * Tokens are stored as SHA-256 hashes; we only ever look up by hash so that + * a leaked database row cannot be replayed as a plaintext token. */ public function findPendingByIncomingToken(string $plainToken): ?AuthorizedUser { @@ -34,12 +37,8 @@ class AuthorizedUsersManagementService return null; } - $hash = $this->hashToken($plainToken); - return AuthorizedUser::query() - ->where(function ($q) use ($hash, $plainToken) { - $q->where('token', $hash)->orWhere('token', $plainToken); - }) + ->where('token', $this->hashToken($plainToken)) ->where('created_at', '>=', now()->subHours(self::TOKEN_TTL_HOURS)) ->first(); } @@ -49,16 +48,12 @@ class AuthorizedUsersManagementService */ public function findActiveSetupRow(int $authorizedUserId, string $plainToken): ?AuthorizedUser { - if ($plainToken === '') { + if ($plainToken === '' || $authorizedUserId <= 0) { return null; } - $hash = $this->hashToken($plainToken); - return AuthorizedUser::query() - ->where(function ($q) use ($hash, $plainToken) { - $q->where('token', $hash)->orWhere('token', $plainToken); - }) + ->where('token', $this->hashToken($plainToken)) ->where('authorized_user_id', $authorizedUserId) ->where('status', 'Active') ->where('updated_at', '>=', now()->subHours(self::TOKEN_TTL_HOURS)) @@ -90,6 +85,9 @@ class AuthorizedUsersManagementService /** * CI `create` — when email is not a registered user, respond success without leaking (privacy). * + * Refuses self-invites and silently re-uses an existing invite row to avoid + * letting a parent spam another user with confirmation emails. + * * @return array{created: bool, record: AuthorizedUser|null} */ public function inviteByEmail(int $primaryUserId, string $email): array @@ -104,22 +102,49 @@ class AuthorizedUsersManagementService return ['created' => false, 'record' => null]; } + // A parent cannot invite themselves as their own authorized user. + if ((int) $user->id === $primaryUserId) { + return ['created' => false, 'record' => null]; + } + + // If the same parent already invited this user, rotate the token instead + // of creating a duplicate row (prevents spam + race-driven duplicates). + $existing = AuthorizedUser::query() + ->where('user_id', $primaryUserId) + ->where('authorized_user_id', (int) $user->id) + ->first(); + $plain = bin2hex(random_bytes(48)); $tokenHash = $this->hashToken($plain); $phone = trim((string) ($user->cellphone ?? '')); - $record = AuthorizedUser::query()->create([ - 'user_id' => $primaryUserId, - 'authorized_user_id' => (int) $user->id, - 'firstname' => (string) ($user->firstname ?? ''), - 'lastname' => (string) ($user->lastname ?? ''), - 'phone_number' => $phone !== '' ? $phone : '-', - 'gender' => trim((string) ($user->gender ?? '')) !== '' ? (string) $user->gender : '-', - 'email' => $email, - 'relation_to_user' => null, - 'token' => $tokenHash, - 'status' => 'Pending', - ]); + $gender = trim((string) ($user->gender ?? '')); + + if ($existing) { + $existing->update([ + 'firstname' => (string) ($user->firstname ?? ''), + 'lastname' => (string) ($user->lastname ?? ''), + 'phone_number' => $phone !== '' ? $phone : '-', + 'gender' => $gender !== '' ? $gender : '-', + 'email' => $email, + 'token' => $tokenHash, + 'status' => 'Pending', + ]); + $record = $existing; + } else { + $record = AuthorizedUser::query()->create([ + 'user_id' => $primaryUserId, + 'authorized_user_id' => (int) $user->id, + 'firstname' => (string) ($user->firstname ?? ''), + 'lastname' => (string) ($user->lastname ?? ''), + 'phone_number' => $phone !== '' ? $phone : '-', + 'gender' => $gender !== '' ? $gender : '-', + 'email' => $email, + 'relation_to_user' => null, + 'token' => $tokenHash, + 'status' => 'Pending', + ]); + } $this->sendConfirmationEmail($email, $plain); diff --git a/app/Services/Parents/ParentEnrollmentService.php b/app/Services/Parents/ParentEnrollmentService.php index 13dcf6e2..7b5021ac 100644 --- a/app/Services/Parents/ParentEnrollmentService.php +++ b/app/Services/Parents/ParentEnrollmentService.php @@ -107,10 +107,34 @@ class ParentEnrollmentService $schoolYear = $context['school_year']; $semester = $context['semester']; + // Authorize every submitted student id against this parent up-front to + // prevent IDOR — a parent must not be able to enroll or withdraw + // another family's students by passing arbitrary ids. + $requestedIds = array_values(array_unique(array_map( + 'intval', + array_merge($enrollIds, $withdrawIds) + ))); + $requestedIds = array_values(array_filter($requestedIds, static fn ($id) => $id > 0)); + + $ownedIds = $requestedIds === [] + ? [] + : Student::query() + ->where('parent_id', $parentId) + ->whereIn('id', $requestedIds) + ->pluck('id') + ->map(fn ($id) => (int) $id) + ->all(); + $ownedSet = array_flip($ownedIds); + $enrolled = []; $withdrawn = []; foreach ($enrollIds as $studentId) { + $studentId = (int) $studentId; + if (! isset($ownedSet[$studentId])) { + continue; + } + $existing = Enrollment::query() ->where('student_id', $studentId) ->where('school_year', $schoolYear) @@ -140,12 +164,18 @@ class ParentEnrollmentService ]); } - $enrolled[] = (int) $studentId; + $enrolled[] = $studentId; } foreach ($withdrawIds as $studentId) { + $studentId = (int) $studentId; + if (! isset($ownedSet[$studentId])) { + continue; + } + $enrollment = Enrollment::query() ->where('student_id', $studentId) + ->where('parent_id', $parentId) ->where('school_year', $schoolYear) ->where('semester', $semester) ->where('is_withdrawn', 0) @@ -195,7 +225,7 @@ class ParentEnrollmentService } } - $withdrawn[] = (int) $studentId; + $withdrawn[] = $studentId; } return [ diff --git a/app/Services/Parents/ParentEventParticipationService.php b/app/Services/Parents/ParentEventParticipationService.php index 4e90a896..e1bb7b57 100644 --- a/app/Services/Parents/ParentEventParticipationService.php +++ b/app/Services/Parents/ParentEventParticipationService.php @@ -5,6 +5,7 @@ namespace App\Services\Parents; use App\Models\Event; use App\Models\EventCharges; use App\Models\Enrollment; +use App\Models\Student; use App\Services\Invoices\InvoiceGenerationService; class ParentEventParticipationService @@ -48,15 +49,61 @@ class ParentEventParticipationService $schoolYear = $context['school_year']; $semester = $context['semester']; + // First pass: parse + validate every `student_id:event_id` key and + // collect the student ids that this parent actually owns. This stops + // a parent from creating or deleting charges on another family's + // students by manipulating the participation keys. + $parsed = []; + $candidateStudentIds = []; foreach ($participations as $key => $value) { - [$studentId, $eventId] = array_map('intval', explode(':', (string) $key)); + $parts = explode(':', (string) $key, 2); + if (count($parts) !== 2 || ! ctype_digit($parts[0]) || ! ctype_digit($parts[1])) { + continue; + } + + $studentId = (int) $parts[0]; + $eventId = (int) $parts[1]; + if ($studentId <= 0 || $eventId <= 0) { + continue; + } + + $normalized = strtolower(trim((string) $value)); + if (! in_array($normalized, ['yes', 'no'], true)) { + continue; + } + + $parsed[] = [ + 'student_id' => $studentId, + 'event_id' => $eventId, + 'value' => $normalized, + ]; + $candidateStudentIds[$studentId] = true; + } + + if ($parsed === []) { + return; + } + + $ownedIds = Student::query() + ->where('parent_id', $parentId) + ->whereIn('id', array_keys($candidateStudentIds)) + ->pluck('id') + ->map(fn ($id) => (int) $id) + ->all(); + $ownedSet = array_flip($ownedIds); + + foreach ($parsed as $row) { + if (! isset($ownedSet[$row['student_id']])) { + continue; + } + $existing = EventCharges::query() ->where('parent_id', $parentId) - ->where('student_id', $studentId) - ->where('event_id', $eventId) + ->where('student_id', $row['student_id']) + ->where('event_id', $row['event_id']) ->first(); - if ($value === 'no') { + if ($row['value'] === 'no') { if ($existing) { $existing->delete(); } @@ -64,14 +111,14 @@ class ParentEventParticipationService } if ($existing) { - $existing->update(['participation' => $value]); + $existing->update(['participation' => $row['value']]); } else { - $event = Event::getEvent($eventId, $schoolYear); + $event = Event::getEvent($row['event_id'], $schoolYear); EventCharges::query()->create([ 'parent_id' => $parentId, - 'student_id' => $studentId, - 'event_id' => $eventId, - 'participation' => $value, + 'student_id' => $row['student_id'], + 'event_id' => $row['event_id'], + 'participation' => $row['value'], 'charged' => $event['amount'] ?? 0, 'school_year' => $schoolYear, 'semester' => $semester, diff --git a/app/Services/Parents/ParentRegistrationService.php b/app/Services/Parents/ParentRegistrationService.php index 9b63a564..fc4c4e31 100644 --- a/app/Services/Parents/ParentRegistrationService.php +++ b/app/Services/Parents/ParentRegistrationService.php @@ -74,6 +74,7 @@ class ParentRegistrationService } $createdStudentIds = []; + $skippedStudents = []; DB::transaction(function () use ( $parentId, @@ -81,17 +82,28 @@ class ParentRegistrationService $emergencyContacts, $schoolYear, $semester, - &$createdStudentIds + &$createdStudentIds, + &$skippedStudents ) { foreach ($students as $student) { + // Duplicate check is scoped to THIS parent: one family's + // legitimately registered child must not block another family + // from registering a child with the same name and DOB. $exists = Student::query() + ->where('parent_id', $parentId) ->where('school_year', $schoolYear) ->where('dob', $student['dob']) - ->where('firstname', $student['firstname']) - ->where('lastname', $student['lastname']) + ->whereRaw('LOWER(TRIM(firstname)) = ?', [strtolower(trim((string) $student['firstname']))]) + ->whereRaw('LOWER(TRIM(lastname)) = ?', [strtolower(trim((string) $student['lastname']))]) ->first(); if ($exists) { + $skippedStudents[] = [ + 'firstname' => $student['firstname'], + 'lastname' => $student['lastname'], + 'dob' => $student['dob'], + 'reason' => 'already_registered', + ]; continue; } @@ -153,6 +165,7 @@ class ParentRegistrationService return [ 'created_student_ids' => $createdStudentIds, + 'skipped' => $skippedStudents, ]; } diff --git a/app/Services/Payments/PaymentEventChargesService.php b/app/Services/Payments/PaymentEventChargesService.php index 5c0ccecf..838da34a 100644 --- a/app/Services/Payments/PaymentEventChargesService.php +++ b/app/Services/Payments/PaymentEventChargesService.php @@ -6,10 +6,15 @@ use App\Models\Configuration; use App\Models\Enrollment; use App\Models\StudentClass; use App\Models\User; +use App\Services\Billing\ChargeService; use Illuminate\Support\Facades\DB; class PaymentEventChargesService { + public function __construct(private ChargeService $chargeService) + { + } + public function listCharges(?string $schoolYear, ?string $semester): array { $schoolYear = $schoolYear ?: Configuration::getConfig('school_year'); @@ -44,34 +49,45 @@ class PaymentEventChargesService { $studentIds = $payload['student_ids'] ?? []; $parentId = (int) $payload['parent_id']; - - $commonData = [ - 'parent_id' => $parentId, - 'event_name' => $payload['event_name'], - 'description' => $payload['description'] ?? null, - 'amount' => (float) $payload['amount'], - 'semester' => $payload['semester'], - 'school_year' => $payload['school_year'], - 'charged' => 0, - 'updated_by' => $userId, - 'created_at' => now(), - 'updated_at' => now(), - ]; + $schoolYear = (string) $payload['school_year']; + $semester = (string) $payload['semester']; + $eventName = (string) $payload['event_name']; + $amount = (float) $payload['amount']; $count = 0; if (!empty($studentIds)) { foreach ($studentIds as $studentId) { - DB::table('event_charges')->insert(array_merge($commonData, [ + $result = $this->chargeService->createEventCharge([ + 'parent_id' => $parentId, 'student_id' => (int) $studentId, - ])); - $count++; + 'event_name' => $eventName, + 'amount' => $amount, + 'description' => $payload['description'] ?? null, + 'school_year' => $schoolYear, + 'semester' => $semester, + 'created_by' => $userId, + ]); + + if ($result['ok'] ?? false) { + $count++; + } } } elseif (!empty($payload['student_id'])) { - DB::table('event_charges')->insert(array_merge($commonData, [ + $result = $this->chargeService->createEventCharge([ + 'parent_id' => $parentId, 'student_id' => (int) $payload['student_id'], - ])); - $count++; + 'event_name' => $eventName, + 'amount' => $amount, + 'description' => $payload['description'] ?? null, + 'school_year' => $schoolYear, + 'semester' => $semester, + 'created_by' => $userId, + ]); + + if ($result['ok'] ?? false) { + $count++; + } } return $count; diff --git a/app/Services/Promotions/LevelProgressionService.php b/app/Services/Promotions/LevelProgressionService.php new file mode 100644 index 00000000..60b42182 --- /dev/null +++ b/app/Services/Promotions/LevelProgressionService.php @@ -0,0 +1,202 @@ + 'KG1', 'next' => 'KG2', 'order' => 10, 'terminal' => false], + ['current' => 'KG2', 'next' => 'Grade 1', 'order' => 20, 'terminal' => false], + ['current' => 'Grade 1','next' => 'Grade 2', 'order' => 30, 'terminal' => false], + ['current' => 'Grade 2','next' => 'Grade 3', 'order' => 40, 'terminal' => false], + ['current' => 'Grade 3','next' => 'Grade 4', 'order' => 50, 'terminal' => false], + ['current' => 'Grade 4','next' => 'Grade 5', 'order' => 60, 'terminal' => false], + ['current' => 'Grade 5','next' => 'Grade 6', 'order' => 70, 'terminal' => false], + ['current' => 'Grade 6','next' => 'Grade 7', 'order' => 80, 'terminal' => false], + ['current' => 'Grade 7','next' => 'Grade 8', 'order' => 90, 'terminal' => false], + ['current' => 'Grade 8','next' => 'Grade 9', 'order' => 100, 'terminal' => false], + ['current' => 'Grade 9','next' => 'Youth', 'order' => 110, 'terminal' => false], + ['current' => 'Youth', 'next' => null, 'order' => 120, 'terminal' => true], + ]; + + /** + * Returns all configured level progressions, seeding defaults if the + * table is empty. + * + * @return Collection + */ + public function list(bool $activeOnly = true): Collection + { + $query = LevelProgression::query()->ordered(); + if ($activeOnly) { + $query->active(); + } + $rows = $query->get(); + + if ($rows->isEmpty() && $activeOnly) { + $this->seedDefaults(); + $rows = LevelProgression::query()->ordered()->active()->get(); + } + + return $rows; + } + + /** + * Resolve next-level information for a student based on their current + * `class_id` (i.e. classes.id). Returns null if no progression rule + * matches and no fallback can be derived. + * + * @return array{ + * current_level_id:?int, + * current_level_name:?string, + * next_level_id:?int, + * next_level_name:?string, + * is_terminal:bool + * }|null + */ + public function resolveByCurrentClassId(?int $currentClassId): ?array + { + if ($currentClassId === null || $currentClassId <= 0) { + return null; + } + + $current = SchoolClass::query()->find($currentClassId); + if (!$current) { + return null; + } + $currentName = (string) ($current->class_name ?? ''); + + $progression = LevelProgression::findByCurrentLevelId($currentClassId) + ?: ($currentName !== '' ? LevelProgression::findByCurrentLevelName($currentName) : null); + + if ($progression) { + return [ + 'current_level_id' => $currentClassId, + 'current_level_name' => $currentName !== '' ? $currentName : $progression->current_level_name, + 'next_level_id' => $progression->next_level_id !== null ? (int) $progression->next_level_id : null, + 'next_level_name' => $progression->next_level_name, + 'is_terminal' => (bool) $progression->is_terminal, + ]; + } + + // Legacy fallback: numeric next class id (matches AccountEventService::preparePromotionQueue). + $nextId = $currentClassId + 1; + $next = SchoolClass::query()->find($nextId); + + return [ + 'current_level_id' => $currentClassId, + 'current_level_name' => $currentName !== '' ? $currentName : null, + 'next_level_id' => $next ? (int) $next->id : null, + 'next_level_name' => $next ? (string) $next->class_name : null, + 'is_terminal' => false, + ]; + } + + /** + * Resolve next-level info from a `classSection` row id (the + * "from_class_section_id" used elsewhere). + */ + public function resolveByCurrentClassSectionId(?int $classSectionId): ?array + { + if ($classSectionId === null || $classSectionId <= 0) { + return null; + } + $classId = ClassSection::getClassId($classSectionId); + if (!$classId) { + return null; + } + return $this->resolveByCurrentClassId((int) $classId); + } + + /** + * Seed the table with the default mapping from {@see DEFAULT_MAP}. + * Idempotent – relies on the unique key on `current_level_name`. + */ + public function seedDefaults(): int + { + $created = 0; + foreach (self::DEFAULT_MAP as $row) { + $existing = LevelProgression::query() + ->whereRaw('LOWER(current_level_name) = ?', [strtolower($row['current'])]) + ->first(); + if ($existing) { + continue; + } + + $currentClassId = $this->resolveClassIdByName($row['current']); + $nextClassId = isset($row['next']) && $row['next'] !== null + ? $this->resolveClassIdByName($row['next']) + : null; + + LevelProgression::query()->create([ + 'current_level_id' => $currentClassId, + 'current_level_name' => $row['current'], + 'next_level_id' => $nextClassId, + 'next_level_name' => $row['next'] ?? null, + 'order_index' => (int) ($row['order'] ?? 0), + 'is_terminal' => (bool) ($row['terminal'] ?? false), + 'is_active' => true, + ]); + $created++; + } + + return $created; + } + + public function upsertMapping(array $payload): LevelProgression + { + $currentName = (string) ($payload['current_level_name'] ?? ''); + if ($currentName === '') { + throw new \InvalidArgumentException('current_level_name is required'); + } + + $existing = LevelProgression::findByCurrentLevelName($currentName); + $data = [ + 'current_level_id' => isset($payload['current_level_id']) ? (int) $payload['current_level_id'] : ($existing->current_level_id ?? null), + 'current_level_name' => $currentName, + 'next_level_id' => isset($payload['next_level_id']) ? (int) $payload['next_level_id'] : null, + 'next_level_name' => $payload['next_level_name'] ?? null, + 'order_index' => isset($payload['order_index']) ? (int) $payload['order_index'] : ($existing->order_index ?? 0), + 'is_terminal' => (bool) ($payload['is_terminal'] ?? ($existing->is_terminal ?? false)), + 'is_active' => array_key_exists('is_active', $payload) ? (bool) $payload['is_active'] : ($existing->is_active ?? true), + 'notes' => $payload['notes'] ?? ($existing->notes ?? null), + ]; + + if ($existing) { + $existing->fill($data); + $existing->save(); + return $existing; + } + + return LevelProgression::query()->create($data); + } + + private function resolveClassIdByName(?string $name): ?int + { + if ($name === null || $name === '') { + return null; + } + $row = SchoolClass::query() + ->whereRaw('LOWER(class_name) = ?', [strtolower(trim($name))]) + ->orderByDesc('id') + ->first(); + + return $row ? (int) $row->id : null; + } +} diff --git a/app/Services/Promotions/PromotionAuditService.php b/app/Services/Promotions/PromotionAuditService.php new file mode 100644 index 00000000..a7082183 --- /dev/null +++ b/app/Services/Promotions/PromotionAuditService.php @@ -0,0 +1,153 @@ +log($record, PromotionAuditLog::ACTION_RECORD_CREATED, [ + 'user_id' => $userId, + 'new_value' => $record->promotion_status, + 'notes' => $notes, + ]); + } + + public function logStatusChange( + StudentPromotionRecord $record, + ?string $oldStatus, + string $newStatus, + ?int $userId, + ?string $notes = null + ): PromotionAuditLog { + return $this->log($record, PromotionAuditLog::ACTION_STATUS_CHANGED, [ + 'user_id' => $userId, + 'field' => 'promotion_status', + 'old_value' => $oldStatus, + 'new_value' => $newStatus, + 'notes' => $notes, + ]); + } + + public function logEligibilityEvaluation( + StudentPromotionRecord $record, + bool $passed, + ?int $userId, + ?string $notes = null + ): PromotionAuditLog { + return $this->log($record, PromotionAuditLog::ACTION_ELIGIBILITY_EVALUATED, [ + 'user_id' => $userId, + 'field' => 'passed_current_level', + 'new_value' => $passed ? '1' : '0', + 'notes' => $notes, + ]); + } + + public function logParentNotified(StudentPromotionRecord $record, ?int $userId, ?string $notes = null): PromotionAuditLog + { + return $this->log($record, PromotionAuditLog::ACTION_PARENT_NOTIFIED, [ + 'user_id' => $userId, + 'notes' => $notes, + ]); + } + + public function logEnrollmentStepCompleted( + StudentPromotionRecord $record, + string $field, + ?int $userId, + ?string $notes = null + ): PromotionAuditLog { + return $this->log($record, PromotionAuditLog::ACTION_ENROLLMENT_STEP_COMPLETED, [ + 'user_id' => $userId, + 'field' => $field, + 'new_value' => '1', + 'notes' => $notes, + ]); + } + + public function logEnrollmentStarted(StudentPromotionRecord $record, ?int $userId): PromotionAuditLog + { + return $this->log($record, PromotionAuditLog::ACTION_ENROLLMENT_STARTED, [ + 'user_id' => $userId, + ]); + } + + public function logEnrollmentCompleted(StudentPromotionRecord $record, ?int $userId): PromotionAuditLog + { + return $this->log($record, PromotionAuditLog::ACTION_ENROLLMENT_COMPLETED, [ + 'user_id' => $userId, + ]); + } + + public function logPromotionFinalized(StudentPromotionRecord $record, ?int $userId): PromotionAuditLog + { + return $this->log($record, PromotionAuditLog::ACTION_PROMOTION_FINALIZED, [ + 'user_id' => $userId, + 'new_value' => $record->promotion_status, + ]); + } + + public function logDeadlineSet( + StudentPromotionRecord $record, + ?string $oldDeadline, + ?string $newDeadline, + ?int $userId + ): PromotionAuditLog { + return $this->log($record, PromotionAuditLog::ACTION_DEADLINE_SET, [ + 'user_id' => $userId, + 'field' => 'enrollment_deadline', + 'old_value' => $oldDeadline, + 'new_value' => $newDeadline, + ]); + } + + public function logReminderSent( + StudentPromotionRecord $record, + string $reminderType, + ?int $userId + ): PromotionAuditLog { + return $this->log($record, PromotionAuditLog::ACTION_REMINDER_SENT, [ + 'user_id' => $userId, + 'field' => 'reminder_type', + 'new_value' => $reminderType, + ]); + } + + public function logDeadlineExpired(StudentPromotionRecord $record): PromotionAuditLog + { + return $this->log($record, PromotionAuditLog::ACTION_DEADLINE_EXPIRED, []); + } + + public function logManualOverride( + StudentPromotionRecord $record, + string $field, + ?string $oldValue, + ?string $newValue, + ?int $userId, + ?string $notes = null + ): PromotionAuditLog { + return $this->log($record, PromotionAuditLog::ACTION_MANUAL_OVERRIDE, [ + 'user_id' => $userId, + 'field' => $field, + 'old_value' => $oldValue, + 'new_value' => $newValue, + 'notes' => $notes, + ]); + } + + private function log(StudentPromotionRecord $record, string $action, array $extra): PromotionAuditLog + { + return PromotionAuditLog::query()->create(array_merge([ + 'promotion_id' => (int) $record->getKey(), + 'student_id' => (int) $record->student_id, + 'action_type' => $action, + 'performed_at' => now(), + ], $extra)); + } +} diff --git a/app/Services/Promotions/PromotionEligibilityService.php b/app/Services/Promotions/PromotionEligibilityService.php new file mode 100644 index 00000000..1c777cda --- /dev/null +++ b/app/Services/Promotions/PromotionEligibilityService.php @@ -0,0 +1,393 @@ +find($studentId); + if (!$student) { + return null; + } + + $current = $currentSchoolYear ?: $this->resolveCurrentSchoolYear(); + if ($current === null) { + return null; + } + $next = $this->nextSchoolYear($current); + if ($next === null) { + return null; + } + + return $this->evaluateOne($student, $current, $next, $userId); + } + + /** + * Evaluate eligibility for a class section worth of students at once. + * + * @return array{ evaluated:int, eligible:int, repeated:int, on_hold:int, conditional:int, graduated:int, errors:array } + */ + public function evaluateClassSection( + int $classSectionId, + ?string $currentSchoolYear = null, + ?int $userId = null + ): array { + $current = $currentSchoolYear ?: $this->resolveCurrentSchoolYear(); + if ($current === null) { + return $this->emptySummary(); + } + $next = $this->nextSchoolYear($current); + if ($next === null) { + return $this->emptySummary(); + } + + $studentIds = DB::table('student_class') + ->where('class_section_id', $classSectionId) + ->where('school_year', $current) + ->pluck('student_id') + ->map(fn ($id) => (int) $id) + ->all(); + + $summary = $this->emptySummary(); + foreach ($studentIds as $studentId) { + $student = Student::query()->find($studentId); + if (!$student) { + continue; + } + try { + $record = $this->evaluateOne($student, $current, $next, $userId); + if ($record) { + $summary['evaluated']++; + $key = $this->statusBucket($record->promotion_status); + if ($key !== null) { + $summary[$key]++; + } + } + } catch (\Throwable $e) { + Log::error('Promotion eligibility evaluation failed', [ + 'student_id' => $studentId, + 'exception' => $e, + ]); + $summary['errors'][] = sprintf('Student %d: %s', $studentId, $e->getMessage()); + } + } + + return $summary; + } + + /** + * Evaluate eligibility for an entire school year (all students with + * class assignments). Convenience wrapper around `evaluateOne`. + */ + public function evaluateSchoolYear(?string $currentSchoolYear = null, ?int $userId = null): array + { + $current = $currentSchoolYear ?: $this->resolveCurrentSchoolYear(); + if ($current === null) { + return $this->emptySummary(); + } + $next = $this->nextSchoolYear($current); + if ($next === null) { + return $this->emptySummary(); + } + + $studentIds = DB::table('student_class') + ->where('school_year', $current) + ->distinct() + ->pluck('student_id') + ->map(fn ($id) => (int) $id) + ->all(); + + $summary = $this->emptySummary(); + foreach ($studentIds as $studentId) { + $student = Student::query()->find($studentId); + if (!$student) { + continue; + } + try { + $record = $this->evaluateOne($student, $current, $next, $userId); + if ($record) { + $summary['evaluated']++; + $key = $this->statusBucket($record->promotion_status); + if ($key !== null) { + $summary[$key]++; + } + } + } catch (\Throwable $e) { + Log::error('Promotion eligibility evaluation failed', [ + 'student_id' => $studentId, + 'exception' => $e, + ]); + $summary['errors'][] = sprintf('Student %d: %s', $studentId, $e->getMessage()); + } + } + + return $summary; + } + + /** + * Core per-student logic implementing section 7's decision tree. + */ + public function evaluateOne( + Student $student, + string $currentSchoolYear, + string $nextSchoolYear, + ?int $userId = null + ): StudentPromotionRecord { + $studentId = (int) $student->getKey(); + + $sectionId = (int) DB::table('student_class') + ->where('student_id', $studentId) + ->where('school_year', $currentSchoolYear) + ->orderByDesc('updated_at') + ->orderByDesc('id') + ->value('class_section_id'); + + $progressionInfo = $this->progression->resolveByCurrentClassSectionId($sectionId); + if ($progressionInfo === null && $sectionId > 0) { + // Even without a mapping we still want to record the eligibility decision. + $progressionInfo = [ + 'current_level_id' => null, + 'current_level_name' => ClassSection::getClassSectionNameBySectionId($sectionId), + 'next_level_id' => null, + 'next_level_name' => null, + 'is_terminal' => false, + ]; + } + $progressionInfo ??= [ + 'current_level_id' => null, + 'current_level_name' => $student->registration_grade, + 'next_level_id' => null, + 'next_level_name' => null, + 'is_terminal' => false, + ]; + + $scoreInfo = $this->loadAcademicResult($studentId, $currentSchoolYear); + $passed = $scoreInfo['passed']; + $finalAvg = $scoreInfo['final_average']; + + return DB::transaction(function () use ( + $student, + $studentId, + $currentSchoolYear, + $nextSchoolYear, + $progressionInfo, + $passed, + $finalAvg, + $userId, + $scoreInfo + ) { + $existing = StudentPromotionRecord::query() + ->where('student_id', $studentId) + ->where('next_school_year', $nextSchoolYear) + ->first(); + $isNew = $existing === null; + + $record = $existing ?: new StudentPromotionRecord(); + $record->fill([ + 'student_id' => $studentId, + 'parent_id' => (int) ($student->parent_id ?? 0) ?: null, + 'current_school_year' => $currentSchoolYear, + 'next_school_year' => $nextSchoolYear, + 'current_level_id' => $progressionInfo['current_level_id'], + 'current_level_name' => $progressionInfo['current_level_name'], + 'promoted_level_id' => $progressionInfo['next_level_id'], + 'promoted_level_name' => $progressionInfo['next_level_name'], + 'final_average' => $finalAvg, + 'eligibility_notes' => $scoreInfo['notes'], + 'updated_by' => $userId, + ]); + if ($isNew) { + $record->promotion_status = StudentPromotionRecord::STATUS_NOT_REVIEWED; + $record->enrollment_required = true; + $record->enrollment_status = StudentPromotionRecord::ENROLLMENT_NOT_STARTED; + } + + $previousStatus = (string) ($record->promotion_status ?? StudentPromotionRecord::STATUS_NOT_REVIEWED); + $record->passed_current_level = $passed; + $newStatus = $this->resolveStatusFromEvaluation( + $passed, + $progressionInfo['is_terminal'] ?? false, + $scoreInfo['has_data'] + ); + + // Preserve admin overrides for terminal/holds. + if (in_array($previousStatus, [ + StudentPromotionRecord::STATUS_WITHDRAWN, + StudentPromotionRecord::STATUS_GRADUATED, + StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, + StudentPromotionRecord::STATUS_NOT_ENROLLED, + ], true)) { + $newStatus = $previousStatus; + } + + $record->promotion_status = $newStatus; + $record->save(); + + if ($isNew) { + $this->audit->logRecordCreated($record, $userId); + } + $this->audit->logEligibilityEvaluation( + $record, + (bool) $passed, + $userId, + $scoreInfo['notes'] + ); + if ($previousStatus !== $newStatus) { + $this->audit->logStatusChange($record, $previousStatus, $newStatus, $userId, 'Auto eligibility evaluation'); + } + + return $record; + }); + } + + /** + * Best effort lookup of the student's final academic result for the + * given school year. Treats missing fall + spring scores as "no + * data" → on hold (plan section 4: On Hold for missing result). + * + * @return array{ passed:?bool, final_average:?float, notes:?string, has_data:bool } + */ + private function loadAcademicResult(int $studentId, string $schoolYear): array + { + $rows = DB::table('semester_scores') + ->select('semester', 'semester_score') + ->where('student_id', $studentId) + ->where('school_year', $schoolYear) + ->get(); + + $fall = null; + $spring = null; + foreach ($rows as $row) { + $semester = strtolower((string) ($row->semester ?? '')); + $score = isset($row->semester_score) ? (float) $row->semester_score : null; + if ($semester === 'fall') { + $fall = $score; + } elseif ($semester === 'spring') { + $spring = $score; + } + } + + $threshold = $this->passThreshold(); + + if ($fall === null && $spring === null) { + return [ + 'passed' => null, + 'final_average' => null, + 'notes' => 'Missing fall and spring scores', + 'has_data' => false, + ]; + } + if ($fall === null || $spring === null) { + $existing = $fall ?? $spring; + return [ + 'passed' => null, + 'final_average' => $existing, + 'notes' => 'Awaiting both fall and spring scores', + 'has_data' => false, + ]; + } + + $avg = round(($fall + $spring) / 2.0, 2); + return [ + 'passed' => $avg >= $threshold, + 'final_average' => $avg, + 'notes' => sprintf('Final average %.2f (threshold %.2f)', $avg, $threshold), + 'has_data' => true, + ]; + } + + private function resolveStatusFromEvaluation(?bool $passed, bool $terminal, bool $hasData): string + { + if (!$hasData) { + return StudentPromotionRecord::STATUS_ON_HOLD; + } + if ($passed === false) { + return StudentPromotionRecord::STATUS_REPEATED; + } + if ($terminal) { + return StudentPromotionRecord::STATUS_GRADUATED; + } + return StudentPromotionRecord::STATUS_AWAITING_PARENT; + } + + private function statusBucket(string $status): ?string + { + return match ($status) { + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_ELIGIBLE => 'eligible', + StudentPromotionRecord::STATUS_REPEATED => 'repeated', + StudentPromotionRecord::STATUS_ON_HOLD => 'on_hold', + StudentPromotionRecord::STATUS_CONDITIONAL => 'conditional', + StudentPromotionRecord::STATUS_GRADUATED => 'graduated', + default => null, + }; + } + + private function emptySummary(): array + { + return [ + 'evaluated' => 0, + 'eligible' => 0, + 'repeated' => 0, + 'on_hold' => 0, + 'conditional' => 0, + 'graduated' => 0, + 'errors' => [], + ]; + } + + private function resolveCurrentSchoolYear(): ?string + { + $year = (string) (Configuration::getConfigValueByKey('school_year') ?? ''); + return $year !== '' ? $year : null; + } + + private function nextSchoolYear(string $current): ?string + { + if (!preg_match('/^(\d{4})-(\d{4})$/', $current, $m)) { + return null; + } + return ((int) $m[1] + 1) . '-' . ((int) $m[2] + 1); + } + + private function passThreshold(): float + { + $configured = Configuration::getConfigValueByKey('promotion_pass_threshold'); + if ($configured !== null && is_numeric($configured)) { + return (float) $configured; + } + return self::DEFAULT_PASS_THRESHOLD; + } +} diff --git a/app/Services/Promotions/PromotionEnrollmentService.php b/app/Services/Promotions/PromotionEnrollmentService.php new file mode 100644 index 00000000..b6a3c54c --- /dev/null +++ b/app/Services/Promotions/PromotionEnrollmentService.php @@ -0,0 +1,391 @@ +guessNextSchoolYear(); + + $query = StudentPromotionRecord::query()->forParent($parentId); + if ($year !== null) { + $query->forNextYear($year); + } + $records = $query + ->orderByRaw('CASE WHEN promotion_status IN (?, ?, ?) THEN 0 ELSE 1 END', [ + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_ELIGIBLE, + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + ]) + ->orderBy('promotion_id', 'desc') + ->get(); + + $studentIds = $records->pluck('student_id')->unique()->all(); + /** @var EloquentCollection $studentsCollection */ + $studentsCollection = !empty($studentIds) + ? Student::query()->whereIn('id', $studentIds)->get() + : new EloquentCollection(); + $studentsById = $studentsCollection->keyBy('id'); + + $payload = $records->map(function (StudentPromotionRecord $record) use ($studentsById) { + return $this->presentRecord($record, $studentsById->get($record->student_id)); + })->all(); + + return [ + 'records' => $payload, + 'next_school_year' => $year, + 'message' => $this->parentBannerMessage($records), + ]; + } + + /** + * Mark the start of the enrollment process for a single promotion + * record. + */ + public function startEnrollment(StudentPromotionRecord $record, int $parentId, ?int $userId = null): StudentPromotionRecord + { + $this->assertParentOwns($record, $parentId); + $this->assertActionable($record); + + return DB::transaction(function () use ($record, $parentId, $userId) { + if (!$record->enrollment_started_at) { + $record->enrollment_started_at = now(); + } + $record->enrollment_status = StudentPromotionRecord::ENROLLMENT_IN_PROGRESS; + $record->parent_id = $record->parent_id ?: $parentId; + $record->updated_by = $userId; + $record->save(); + + if ($record->promotion_status !== StudentPromotionRecord::STATUS_ENROLLMENT_STARTED) { + $this->statusService->transition( + $record, + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + $userId, + 'Parent started enrollment' + ); + } + $this->audit->logEnrollmentStarted($record, $userId); + + return $record->refresh(); + }); + } + + /** + * Update one or more checklist steps. Returns the (possibly + * finalised) record. + */ + public function updateSteps( + StudentPromotionRecord $record, + int $parentId, + array $steps, + ?int $userId = null + ): StudentPromotionRecord { + $this->assertParentOwns($record, $parentId); + $this->assertActionable($record); + + $sanitized = []; + foreach ($steps as $field => $value) { + if (!in_array($field, self::ALLOWED_STEPS, true)) { + continue; + } + $sanitized[$field] = (bool) $value; + } + if (empty($sanitized)) { + return $record; + } + + return DB::transaction(function () use ($record, $parentId, $sanitized, $userId) { + $changed = []; + foreach ($sanitized as $field => $value) { + if ((bool) $record->{$field} !== $value) { + $record->{$field} = $value; + $changed[] = $field; + } + } + + if (empty($changed)) { + return $record; + } + + if (!$record->enrollment_started_at) { + $record->enrollment_started_at = now(); + } + $record->enrollment_status = StudentPromotionRecord::ENROLLMENT_IN_PROGRESS; + $record->parent_id = $record->parent_id ?: $parentId; + $record->updated_by = $userId; + $record->save(); + + foreach ($changed as $field) { + $this->audit->logEnrollmentStepCompleted($record, $field, $userId); + } + + if ($record->promotion_status !== StudentPromotionRecord::STATUS_ENROLLMENT_STARTED) { + if (in_array($record->promotion_status, [ + StudentPromotionRecord::STATUS_ELIGIBLE, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + ], true)) { + $this->statusService->transition( + $record, + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + $userId, + 'Enrollment progress recorded' + ); + } + } + + // Auto-finalise once all checklist items are complete. + if ($record->enrollmentChecklistComplete()) { + $record = $this->finalize($record, $userId); + } + + return $record; + }); + } + + /** + * Submit the enrollment, asserting the checklist is complete. + */ + public function submitEnrollment( + StudentPromotionRecord $record, + int $parentId, + ?int $userId = null + ): StudentPromotionRecord { + $this->assertParentOwns($record, $parentId); + $this->assertActionable($record); + + if (!$record->enrollmentChecklistComplete()) { + throw new RuntimeException('Enrollment checklist is incomplete.'); + } + + return $this->finalize($record, $userId); + } + + /** + * Mark expired records (past deadline, still incomplete) as + * "not_enrolled_for_next_year" (plan section 15). + * + * @return array{ expired:int, ids:array } + */ + public function markExpiredDeadlines(?\DateTimeInterface $now = null, ?int $userId = null): array + { + $now = $now ?: now(); + $records = StudentPromotionRecord::query() + ->whereIn('promotion_status', [ + StudentPromotionRecord::STATUS_ELIGIBLE, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + ]) + ->whereNotNull('enrollment_deadline') + ->whereDate('enrollment_deadline', '<', $now) + ->get(); + + $ids = []; + foreach ($records as $record) { + DB::transaction(function () use ($record, $userId, &$ids) { + $record->enrollment_status = StudentPromotionRecord::ENROLLMENT_EXPIRED; + $record->save(); + $this->audit->logDeadlineExpired($record); + $this->statusService->forceStatus( + $record, + StudentPromotionRecord::STATUS_NOT_ENROLLED, + $userId, + 'Deadline expired without enrollment' + ); + $ids[] = (int) $record->getKey(); + }); + } + + return [ + 'expired' => count($ids), + 'ids' => $ids, + ]; + } + + /** + * Finalise promotion + create the next-year enrollment record + * (plan sections 5, 6 step 6 and section 9). + */ + private function finalize(StudentPromotionRecord $record, ?int $userId): StudentPromotionRecord + { + if ($record->promotion_status === StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED) { + return $record; + } + + return DB::transaction(function () use ($record, $userId) { + $record->enrollment_status = StudentPromotionRecord::ENROLLMENT_COMPLETED; + $record->enrollment_completed_at = $record->enrollment_completed_at ?: now(); + $record->promotion_finalized_at = now(); + $record->updated_by = $userId; + + $enrollmentId = $this->ensureNextYearEnrollment($record); + if ($enrollmentId !== null) { + $record->enrollment_id = $enrollmentId; + } + $record->save(); + + $this->audit->logEnrollmentCompleted($record, $userId); + + $this->statusService->transition( + $record, + StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, + $userId, + 'Enrollment checklist complete' + ); + $this->audit->logPromotionFinalized($record->refresh(), $userId); + + return $record->refresh(); + }); + } + + /** + * Create or update an `enrollments` row for the next school year so + * the student is officially placed in the new year (plan section 9 + * record-update rule). + */ + private function ensureNextYearEnrollment(StudentPromotionRecord $record): ?int + { + $existing = Enrollment::query() + ->where('student_id', $record->student_id) + ->where('school_year', $record->next_school_year) + ->first(); + + $payload = [ + 'student_id' => $record->student_id, + 'parent_id' => $record->parent_id, + 'school_year' => $record->next_school_year, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + 'is_withdrawn' => false, + 'enrollment_date' => now()->toDateString(), + ]; + + if ($existing) { + $existing->fill($payload); + $existing->save(); + return (int) $existing->getKey(); + } + + $created = Enrollment::query()->create($payload); + return $created ? (int) $created->getKey() : null; + } + + private function presentRecord(StudentPromotionRecord $record, ?Student $student): array + { + return [ + 'promotion_id' => (int) $record->getKey(), + 'student_id' => (int) $record->student_id, + 'student_name' => $student + ? trim((string) $student->firstname . ' ' . (string) $student->lastname) + : null, + 'current_level' => $record->current_level_name, + 'promoted_level' => $record->promoted_level_name, + 'current_school_year' => $record->current_school_year, + 'next_school_year' => $record->next_school_year, + 'promotion_status' => $record->promotion_status, + 'enrollment_status' => $record->enrollment_status, + 'enrollment_deadline' => $record->enrollment_deadline?->toDateString(), + 'enrollment_started_at' => $record->enrollment_started_at?->toDateTimeString(), + 'enrollment_completed_at' => $record->enrollment_completed_at?->toDateTimeString(), + 'parent_action_required' => in_array( + $record->promotion_status, + StudentPromotionRecord::parentActionableStatuses(), + true + ), + 'checklist' => [ + 'info_confirmed' => (bool) $record->info_confirmed, + 'documents_uploaded' => (bool) $record->documents_uploaded, + 'agreement_accepted' => (bool) $record->agreement_accepted, + 'payment_completed' => (bool) $record->payment_completed, + ], + 'final_average' => $record->final_average !== null ? (float) $record->final_average : null, + 'passed_current_level' => $record->passed_current_level, + ]; + } + + private function parentBannerMessage(EloquentCollection $records): ?string + { + $actionable = $records->first(function (StudentPromotionRecord $r) { + return in_array( + $r->promotion_status, + StudentPromotionRecord::parentActionableStatuses(), + true + ); + }); + if (!$actionable) { + return null; + } + $level = $actionable->promoted_level_name ?: 'the next level'; + $deadline = $actionable->enrollment_deadline?->toDateString(); + $deadlineText = $deadline ? 'by ' . $deadline : 'as soon as possible'; + return sprintf( + 'Your child is eligible for promotion to %s. Please complete enrollment for the new school year %s.', + $level, + $deadlineText + ); + } + + private function assertParentOwns(StudentPromotionRecord $record, int $parentId): void + { + if ($parentId <= 0) { + throw new RuntimeException('Authenticated parent is required.'); + } + if ((int) $record->parent_id !== $parentId) { + $studentParent = (int) (Student::query()->where('id', $record->student_id)->value('parent_id') ?? 0); + if ($studentParent !== $parentId) { + throw new RuntimeException('You are not authorised to act on this promotion record.'); + } + } + } + + private function assertActionable(StudentPromotionRecord $record): void + { + $actionable = StudentPromotionRecord::parentActionableStatuses(); + if (!in_array($record->promotion_status, $actionable, true)) { + throw new RuntimeException(sprintf( + 'Promotion record is not actionable in status "%s".', + $record->promotion_status + )); + } + } + + private function guessNextSchoolYear(): ?string + { + $current = (string) (Configuration::getConfigValueByKey('school_year') ?? ''); + if (!preg_match('/^(\d{4})-(\d{4})$/', $current, $m)) { + return null; + } + return ((int) $m[1] + 1) . '-' . ((int) $m[2] + 1); + } +} diff --git a/app/Services/Promotions/PromotionQueryService.php b/app/Services/Promotions/PromotionQueryService.php new file mode 100644 index 00000000..8cd3eb31 --- /dev/null +++ b/app/Services/Promotions/PromotionQueryService.php @@ -0,0 +1,223 @@ +> when paginate=false, + * otherwise a Laravel paginator instance. + * + * @param array{ + * status?: string|array, + * next_school_year?: string|null, + * current_school_year?: string|null, + * parent_id?: int|null, + * student_id?: int|null, + * search?: string|null, + * parent_action_required?: bool, + * per_page?: int|null, + * } $filters + * + * @return array{ + * data: array>, + * total: int, + * page: int, + * per_page: int, + * total_pages: int, + * counts_by_status: array + * } + */ + public function list(array $filters): array + { + $query = StudentPromotionRecord::query(); + $this->applyFilters($query, $filters); + + $perPage = isset($filters['per_page']) ? max(1, min(200, (int) $filters['per_page'])) : 50; + $page = isset($filters['page']) ? max(1, (int) $filters['page']) : 1; + + /** @var LengthAwarePaginator $paginator */ + $paginator = $query->orderByDesc('promotion_id')->paginate($perPage, ['*'], 'page', $page); + + /** @var EloquentCollection $records */ + $records = $paginator->getCollection(); + $studentIds = $records->pluck('student_id')->unique()->values()->all(); + $parentIds = $records->pluck('parent_id')->filter()->unique()->values()->all(); + + $studentsById = !empty($studentIds) + ? Student::query()->whereIn('id', $studentIds)->get()->keyBy('id') + : new EloquentCollection(); + $parentsById = !empty($parentIds) + ? User::query()->whereIn('id', $parentIds)->get()->keyBy('id') + : new EloquentCollection(); + + $rows = $records->map(function (StudentPromotionRecord $record) use ($studentsById, $parentsById) { + return $this->presentAdminRow( + $record, + $studentsById->get($record->student_id), + $record->parent_id ? $parentsById->get($record->parent_id) : null + ); + })->all(); + + return [ + 'data' => array_values($rows), + 'total' => (int) $paginator->total(), + 'page' => (int) $paginator->currentPage(), + 'per_page' => (int) $paginator->perPage(), + 'total_pages' => (int) $paginator->lastPage(), + 'counts_by_status' => $this->countsByStatus($filters), + ]; + } + + /** + * Returns the per-status count of promotion records that match the + * given filter set (ignoring `status` and pagination filters). Plan + * section 16's reports rely on these counts. + * + * @return array + */ + public function countsByStatus(array $filters): array + { + $query = StudentPromotionRecord::query(); + // Apply non-status filters only. + $filtersSansStatus = $filters; + unset($filtersSansStatus['status'], $filtersSansStatus['parent_action_required']); + $this->applyFilters($query, $filtersSansStatus); + + $rows = $query + ->select('promotion_status', DB::raw('count(*) as total')) + ->groupBy('promotion_status') + ->get(); + + $counts = array_fill_keys(StudentPromotionRecord::ALL_STATUSES, 0); + foreach ($rows as $row) { + $counts[(string) $row->promotion_status] = (int) $row->total; + } + return $counts; + } + + /** + * Hydrates a single record with student + parent context for the + * admin detail view. + */ + public function detail(StudentPromotionRecord $record): array + { + $student = Student::query()->find($record->student_id); + $parent = $record->parent_id ? User::query()->find($record->parent_id) : null; + + return $this->presentAdminRow($record, $student, $parent, true); + } + + /** + * @param Builder $query + */ + private function applyFilters(Builder $query, array $filters): void + { + if (!empty($filters['status'])) { + $statuses = is_array($filters['status']) ? $filters['status'] : [$filters['status']]; + $statuses = array_values(array_filter($statuses, static fn ($s) => is_string($s) && $s !== '')); + if (!empty($statuses)) { + $query->whereIn('promotion_status', $statuses); + } + } + if (!empty($filters['parent_action_required'])) { + $query->whereIn('promotion_status', StudentPromotionRecord::parentActionableStatuses()); + } + if (!empty($filters['next_school_year'])) { + $query->where('next_school_year', $filters['next_school_year']); + } + if (!empty($filters['current_school_year'])) { + $query->where('current_school_year', $filters['current_school_year']); + } + if (!empty($filters['parent_id'])) { + $query->where('parent_id', (int) $filters['parent_id']); + } + if (!empty($filters['student_id'])) { + $query->where('student_id', (int) $filters['student_id']); + } + if (!empty($filters['search'])) { + $search = '%' . strtolower((string) $filters['search']) . '%'; + $query->whereIn('student_id', function ($sub) use ($search) { + $sub->select('id') + ->from('students') + ->where(function ($w) use ($search) { + $w->whereRaw('LOWER(firstname) LIKE ?', [$search]) + ->orWhereRaw('LOWER(lastname) LIKE ?', [$search]); + }); + }); + } + } + + private function presentAdminRow( + StudentPromotionRecord $record, + ?Student $student, + ?User $parent, + bool $detail = false + ): array { + $row = [ + 'promotion_id' => (int) $record->getKey(), + 'student_id' => (int) $record->student_id, + 'student_name' => $student + ? trim((string) $student->firstname . ' ' . (string) $student->lastname) + : null, + 'school_id' => $student->school_id ?? null, + 'parent_id' => $record->parent_id ? (int) $record->parent_id : null, + 'parent_name' => $parent + ? trim((string) $parent->firstname . ' ' . (string) $parent->lastname) + : null, + 'parent_email' => $parent->email ?? null, + 'current_school_year' => $record->current_school_year, + 'next_school_year' => $record->next_school_year, + 'current_level' => $record->current_level_name, + 'promoted_level' => $record->promoted_level_name, + 'promotion_status' => $record->promotion_status, + 'enrollment_status' => $record->enrollment_status, + 'enrollment_deadline' => $record->enrollment_deadline?->toDateString(), + 'parent_notified_at' => $record->parent_notified_at?->toDateTimeString(), + 'enrollment_started_at' => $record->enrollment_started_at?->toDateTimeString(), + 'enrollment_completed_at' => $record->enrollment_completed_at?->toDateTimeString(), + 'promotion_finalized_at' => $record->promotion_finalized_at?->toDateTimeString(), + 'final_average' => $record->final_average !== null ? (float) $record->final_average : null, + 'passed_current_level' => $record->passed_current_level, + 'updated_by' => $record->updated_by ? (int) $record->updated_by : null, + 'updated_at' => $record->updated_at?->toDateTimeString(), + ]; + + if ($detail) { + $row['checklist'] = [ + 'info_confirmed' => (bool) $record->info_confirmed, + 'documents_uploaded' => (bool) $record->documents_uploaded, + 'agreement_accepted' => (bool) $record->agreement_accepted, + 'payment_completed' => (bool) $record->payment_completed, + ]; + $row['eligibility_notes'] = $record->eligibility_notes; + $row['enrollment_id'] = $record->enrollment_id ? (int) $record->enrollment_id : null; + } + + return $row; + } +} diff --git a/app/Services/Promotions/PromotionReminderService.php b/app/Services/Promotions/PromotionReminderService.php new file mode 100644 index 00000000..5227946b --- /dev/null +++ b/app/Services/Promotions/PromotionReminderService.php @@ -0,0 +1,207 @@ +dispatcher = $dispatcher; + } + + /** + * Records a single reminder dispatch. + */ + public function send( + StudentPromotionRecord $record, + string $reminderType, + ?int $userId = null, + ?string $subject = null, + ?string $message = null, + array $channels = ['in_app', 'email'] + ): PromotionReminderLog { + if (!in_array($reminderType, PromotionReminderLog::ALLOWED_TYPES, true)) { + $reminderType = PromotionReminderLog::TYPE_MANUAL; + } + + $studentName = $this->studentName($record); + $deadline = $record->enrollment_deadline?->toDateString(); + $level = $record->promoted_level_name ?: 'the next level'; + + $defaultSubject = 'Reminder: complete enrollment for the next school year'; + $defaultMessage = sprintf( + '%s is eligible for promotion to %s.%s Please complete enrollment as soon as possible.', + $studentName ?: 'Your child', + $level, + $deadline ? ' Deadline: ' . $deadline . '.' : '' + ); + + $finalSubject = $subject ?: $defaultSubject; + $finalMessage = $message ?: $defaultMessage; + + return DB::transaction(function () use ( + $record, + $reminderType, + $finalSubject, + $finalMessage, + $channels, + $userId + ) { + $log = PromotionReminderLog::query()->create([ + 'promotion_id' => (int) $record->getKey(), + 'student_id' => (int) $record->student_id, + 'parent_id' => (int) $record->parent_id ?: null, + 'reminder_type' => $reminderType, + 'channel' => implode(',', array_values(array_unique(array_filter($channels)))), + 'subject' => $finalSubject, + 'message' => $finalMessage, + 'sent_at' => now(), + 'sent_by' => $userId, + ]); + + if ($record->parent_id) { + $this->dispatch((int) $record->parent_id, $finalSubject, $finalMessage, $channels); + } + + if (!$record->parent_notified_at) { + $record->parent_notified_at = now(); + $record->save(); + $this->audit->logParentNotified($record, $userId, $reminderType); + } + $this->audit->logReminderSent($record, $reminderType, $userId); + + return $log; + }); + } + + /** + * Plan section 14 – schedule-driven reminders. Sends the next due + * reminder type for every actionable record whose deadline is set. + * + * @return array{ processed:int, sent:int, skipped:int } + */ + public function dispatchScheduledReminders(?\DateTimeInterface $now = null, ?int $userId = null): array + { + $now = CarbonImmutable::instance($now ?: now()); + + $records = StudentPromotionRecord::query() + ->whereIn('promotion_status', StudentPromotionRecord::parentActionableStatuses()) + ->whereNotNull('enrollment_deadline') + ->get(); + + $processed = 0; + $sent = 0; + $skipped = 0; + + foreach ($records as $record) { + $processed++; + $type = $this->resolveReminderType($record, $now); + if ($type === null) { + $skipped++; + continue; + } + $alreadySent = PromotionReminderLog::query() + ->where('promotion_id', $record->getKey()) + ->where('reminder_type', $type) + ->exists(); + if ($alreadySent) { + $skipped++; + continue; + } + try { + $this->send($record, $type, $userId); + $sent++; + } catch (\Throwable $e) { + Log::error('Promotion reminder dispatch failed', [ + 'promotion_id' => $record->getKey(), + 'exception' => $e, + ]); + $skipped++; + } + } + + return [ + 'processed' => $processed, + 'sent' => $sent, + 'skipped' => $skipped, + ]; + } + + /** + * Returns the reminder type that should be sent next based on the + * deadline / current time. + */ + private function resolveReminderType(StudentPromotionRecord $record, CarbonImmutable $now): ?string + { + $deadline = $record->enrollment_deadline ? CarbonImmutable::instance($record->enrollment_deadline) : null; + if ($deadline === null) { + return null; + } + $createdAt = $record->created_at ? CarbonImmutable::instance($record->created_at) : $now; + + if ($now->greaterThan($deadline)) { + return PromotionReminderLog::TYPE_EXPIRATION; + } + + $totalSeconds = max(1, $deadline->getTimestamp() - $createdAt->getTimestamp()); + $elapsedSeconds = max(0, $now->getTimestamp() - $createdAt->getTimestamp()); + $remainingSeconds = max(0, $deadline->getTimestamp() - $now->getTimestamp()); + $remainingDays = (int) floor($remainingSeconds / 86400); + + if ($elapsedSeconds === 0) { + return PromotionReminderLog::TYPE_FIRST; + } + if ($remainingDays <= 3) { + return PromotionReminderLog::TYPE_FINAL; + } + if ($elapsedSeconds * 2 >= $totalSeconds) { + return PromotionReminderLog::TYPE_HALFWAY; + } + return PromotionReminderLog::TYPE_FIRST; + } + + private function studentName(StudentPromotionRecord $record): ?string + { + $student = Student::query()->find($record->student_id); + if (!$student) { + return null; + } + $name = trim((string) ($student->firstname ?? '') . ' ' . (string) ($student->lastname ?? '')); + return $name !== '' ? $name : null; + } + + private function dispatch(int $userId, string $subject, string $message, array $channels): void + { + if (!$this->dispatcher) { + return; + } + try { + ($this->dispatcher)($userId, $subject, $message, $channels); + } catch (\Throwable $e) { + Log::error('Promotion reminder dispatcher threw', [ + 'user_id' => $userId, + 'exception' => $e, + ]); + } + } +} diff --git a/app/Services/Promotions/PromotionStatusService.php b/app/Services/Promotions/PromotionStatusService.php new file mode 100644 index 00000000..6399a451 --- /dev/null +++ b/app/Services/Promotions/PromotionStatusService.php @@ -0,0 +1,164 @@ + [ + StudentPromotionRecord::STATUS_ELIGIBLE, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_CONDITIONAL, + StudentPromotionRecord::STATUS_REPEATED, + StudentPromotionRecord::STATUS_ON_HOLD, + StudentPromotionRecord::STATUS_GRADUATED, + StudentPromotionRecord::STATUS_WITHDRAWN, + ], + StudentPromotionRecord::STATUS_ELIGIBLE => [ + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + StudentPromotionRecord::STATUS_CONDITIONAL, + StudentPromotionRecord::STATUS_ON_HOLD, + StudentPromotionRecord::STATUS_NOT_ENROLLED, + StudentPromotionRecord::STATUS_WITHDRAWN, + ], + StudentPromotionRecord::STATUS_AWAITING_PARENT => [ + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, + StudentPromotionRecord::STATUS_NOT_ENROLLED, + StudentPromotionRecord::STATUS_ON_HOLD, + StudentPromotionRecord::STATUS_WITHDRAWN, + ], + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED => [ + StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_NOT_ENROLLED, + StudentPromotionRecord::STATUS_ON_HOLD, + StudentPromotionRecord::STATUS_WITHDRAWN, + ], + StudentPromotionRecord::STATUS_CONDITIONAL => [ + StudentPromotionRecord::STATUS_ELIGIBLE, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_REPEATED, + StudentPromotionRecord::STATUS_ON_HOLD, + StudentPromotionRecord::STATUS_NOT_REVIEWED, + ], + StudentPromotionRecord::STATUS_ON_HOLD => [ + StudentPromotionRecord::STATUS_NOT_REVIEWED, + StudentPromotionRecord::STATUS_ELIGIBLE, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + StudentPromotionRecord::STATUS_REPEATED, + StudentPromotionRecord::STATUS_CONDITIONAL, + StudentPromotionRecord::STATUS_WITHDRAWN, + StudentPromotionRecord::STATUS_NOT_ENROLLED, + ], + // Terminal statuses are intentionally not in the map (no auto + // transitions); admins can still override via `forceStatus`. + ]; + + public function canTransition(string $from, string $to): bool + { + if ($from === $to) { + return true; + } + if (!in_array($to, StudentPromotionRecord::ALL_STATUSES, true)) { + return false; + } + $allowed = self::ALLOWED_TRANSITIONS[$from] ?? []; + return in_array($to, $allowed, true); + } + + /** + * Apply a status transition with audit logging. Returns the saved + * record. Throws if the new status is invalid or the transition is + * not allowed. + */ + public function transition( + StudentPromotionRecord $record, + string $newStatus, + ?int $userId = null, + ?string $notes = null + ): StudentPromotionRecord { + if (!in_array($newStatus, StudentPromotionRecord::ALL_STATUSES, true)) { + throw new InvalidArgumentException(sprintf('Unknown promotion status "%s".', $newStatus)); + } + + $oldStatus = (string) $record->promotion_status; + if ($oldStatus === $newStatus) { + return $record; + } + if (!$this->canTransition($oldStatus, $newStatus)) { + throw new RuntimeException(sprintf( + 'Transition from "%s" to "%s" is not allowed.', + $oldStatus, + $newStatus + )); + } + + return DB::transaction(function () use ($record, $oldStatus, $newStatus, $userId, $notes) { + $record->promotion_status = $newStatus; + $record->updated_by = $userId; + $record->save(); + + $this->audit->logStatusChange($record, $oldStatus, $newStatus, $userId, $notes); + + return $record; + }); + } + + /** + * Force a status change ignoring the transition map (e.g. admin + * override). The audit trail records this as a manual override. + */ + public function forceStatus( + StudentPromotionRecord $record, + string $newStatus, + ?int $userId = null, + ?string $notes = null + ): StudentPromotionRecord { + if (!in_array($newStatus, StudentPromotionRecord::ALL_STATUSES, true)) { + throw new InvalidArgumentException(sprintf('Unknown promotion status "%s".', $newStatus)); + } + + $oldStatus = (string) $record->promotion_status; + if ($oldStatus === $newStatus) { + return $record; + } + + return DB::transaction(function () use ($record, $oldStatus, $newStatus, $userId, $notes) { + $record->promotion_status = $newStatus; + $record->updated_by = $userId; + $record->save(); + + $this->audit->logManualOverride( + $record, + 'promotion_status', + $oldStatus, + $newStatus, + $userId, + $notes ?? 'Manual status override' + ); + + return $record; + }); + } +} diff --git a/artisan b/artisan old mode 100755 new mode 100644 diff --git a/bootstrap/app.php b/bootstrap/app.php index dd11725f..3ac15e08 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -16,20 +16,35 @@ return Application::configure(basePath: dirname(__DIR__)) ) ->withMiddleware(function (Middleware $middleware): void { $middleware->alias([ - 'auth.multi' => \App\Http\Middleware\MultiAuth::class, + // JWT auth 'jwt.auth' => \PHPOpenSourceSaver\JWTAuth\Http\Middleware\Authenticate::class, 'jwt.refresh' => \PHPOpenSourceSaver\JWTAuth\Http\Middleware\RefreshToken::class, 'api.jwt' => \App\Http\Middleware\ApiJwtAuth::class, + + // Multi-guard auth (both the new and legacy alias point at the same class) + 'auth.multi' => \App\Http\Middleware\MultiAuth::class, + 'multi.auth' => \App\Http\Middleware\MultiAuth::class, + + // Permission / role gates 'perm' => \App\Http\Middleware\RequirePermission::class, - 'timezone' => \App\Http\Middleware\PrimeTimezone::class, - 'cleanup.scheduler' => \App\Http\Middleware\CleanupScheduler::class, - 'auth.docs' => \App\Http\Middleware\ApiDocsAuth::class, - 'teacher.portal.auth' => \App\Http\Middleware\TeacherPortalAuthenticate::class, - 'teacher.progress' => \App\Http\Middleware\EnsureClassProgressTeacherPortalAccess::class, + 'require.permission' => \App\Http\Middleware\RequirePermission::class, + 'admin.access' => \App\Http\Middleware\EnsurePrintRequestsAdminAccess::class, + 'parent.access' => \App\Http\Middleware\EnsureParentProgressAccess::class, 'parent.progress' => \App\Http\Middleware\EnsureParentProgressAccess::class, + 'teacher.progress' => \App\Http\Middleware\EnsureClassProgressTeacherPortalAccess::class, + 'class_progress.teacher' => \App\Http\Middleware\EnsureClassProgressTeacherPortalAccess::class, 'print_requests.teacher' => \App\Http\Middleware\EnsurePrintRequestsTeacherAccess::class, 'print_requests.admin' => \App\Http\Middleware\EnsurePrintRequestsAdminAccess::class, 'badge_scan.logs' => \App\Http\Middleware\EnsureBadgeScanLogsAccess::class, + + // Docs + teacher portal + 'auth.docs' => \App\Http\Middleware\ApiDocsAuth::class, + 'teacher.portal.auth' => \App\Http\Middleware\TeacherPortalAuthenticate::class, + + // Utility + 'timezone' => \App\Http\Middleware\PrimeTimezone::class, + 'prime.timezone' => \App\Http\Middleware\PrimeTimezone::class, + 'cleanup.scheduler' => \App\Http\Middleware\CleanupScheduler::class, ]); $middleware->redirectGuestsTo(function (Request $request) { diff --git a/database/migrations/2026_05_29_120000_create_level_progressions_table.php b/database/migrations/2026_05_29_120000_create_level_progressions_table.php new file mode 100644 index 00000000..45e13ce6 --- /dev/null +++ b/database/migrations/2026_05_29_120000_create_level_progressions_table.php @@ -0,0 +1,35 @@ +id(); + $table->unsignedInteger('current_level_id')->nullable()->index(); + $table->string('current_level_name', 100); + $table->unsignedInteger('next_level_id')->nullable()->index(); + $table->string('next_level_name', 100)->nullable(); + $table->unsignedSmallInteger('order_index')->default(0); + $table->boolean('is_terminal')->default(false); + $table->boolean('is_active')->default(true); + $table->text('notes')->nullable(); + $table->timestamps(); + + $table->unique('current_level_name', 'uq_level_progressions_current_level_name'); + }); + } + + public function down(): void + { + Schema::dropIfExists('level_progressions'); + } +}; diff --git a/database/migrations/2026_05_29_120010_create_student_promotion_records_table.php b/database/migrations/2026_05_29_120010_create_student_promotion_records_table.php new file mode 100644 index 00000000..83281b44 --- /dev/null +++ b/database/migrations/2026_05_29_120010_create_student_promotion_records_table.php @@ -0,0 +1,64 @@ +id('promotion_id'); + $table->unsignedInteger('student_id')->index(); + $table->unsignedInteger('parent_id')->nullable()->index(); + + $table->string('current_school_year', 9); + $table->string('next_school_year', 9); + + $table->unsignedInteger('current_level_id')->nullable(); + $table->unsignedInteger('promoted_level_id')->nullable(); + $table->string('current_level_name', 100)->nullable(); + $table->string('promoted_level_name', 100)->nullable(); + + // Promotion lifecycle status (matches plan section 3) + $table->string('promotion_status', 40)->default('not_reviewed'); + + $table->boolean('passed_current_level')->nullable(); + $table->decimal('final_average', 6, 2)->nullable(); + $table->boolean('attendance_ok')->nullable(); + $table->text('eligibility_notes')->nullable(); + + $table->boolean('enrollment_required')->default(true); + $table->string('enrollment_status', 40)->default('not_started'); + $table->unsignedBigInteger('enrollment_id')->nullable()->index(); + + $table->dateTime('parent_notified_at')->nullable(); + $table->date('enrollment_deadline')->nullable(); + $table->dateTime('enrollment_started_at')->nullable(); + $table->dateTime('enrollment_completed_at')->nullable(); + $table->dateTime('promotion_finalized_at')->nullable(); + + $table->boolean('info_confirmed')->default(false); + $table->boolean('documents_uploaded')->default(false); + $table->boolean('agreement_accepted')->default(false); + $table->boolean('payment_completed')->default(false); + + $table->unsignedInteger('updated_by')->nullable(); + $table->timestamps(); + + $table->unique(['student_id', 'next_school_year'], 'uq_promotion_student_year'); + $table->index('promotion_status', 'idx_promotion_status'); + $table->index(['next_school_year', 'promotion_status'], 'idx_promotion_year_status'); + }); + } + + public function down(): void + { + Schema::dropIfExists('student_promotion_records'); + } +}; diff --git a/database/migrations/2026_05_29_120020_create_promotion_audit_log_table.php b/database/migrations/2026_05_29_120020_create_promotion_audit_log_table.php new file mode 100644 index 00000000..94ed3ea7 --- /dev/null +++ b/database/migrations/2026_05_29_120020_create_promotion_audit_log_table.php @@ -0,0 +1,34 @@ +id(); + $table->unsignedBigInteger('promotion_id')->nullable()->index(); + $table->unsignedInteger('student_id')->nullable()->index(); + $table->unsignedInteger('user_id')->nullable()->comment('Actor that performed the action'); + $table->string('action_type', 60); + $table->string('field', 60)->nullable(); + $table->string('old_value', 191)->nullable(); + $table->string('new_value', 191)->nullable(); + $table->text('notes')->nullable(); + $table->timestamp('performed_at')->useCurrent(); + $table->timestamps(); + }); + } + + public function down(): void + { + Schema::dropIfExists('promotion_audit_log'); + } +}; diff --git a/database/migrations/2026_05_29_120030_create_promotion_reminders_log_table.php b/database/migrations/2026_05_29_120030_create_promotion_reminders_log_table.php new file mode 100644 index 00000000..fdf44484 --- /dev/null +++ b/database/migrations/2026_05_29_120030_create_promotion_reminders_log_table.php @@ -0,0 +1,35 @@ +id(); + $table->unsignedBigInteger('promotion_id')->index(); + $table->unsignedInteger('student_id')->nullable()->index(); + $table->unsignedInteger('parent_id')->nullable(); + $table->string('reminder_type', 40)->default('manual') + ->comment('first|halfway|final|expiration|manual'); + $table->string('channel', 20)->default('in_app'); + $table->string('subject', 191)->nullable(); + $table->text('message')->nullable(); + $table->dateTime('sent_at')->nullable(); + $table->unsignedInteger('sent_by')->nullable(); + $table->timestamps(); + }); + } + + public function down(): void + { + Schema::dropIfExists('promotion_reminders_log'); + } +}; diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f33d2d62959106b670a477d795652b43399725a4 GIT binary patch literal 8196 zcmeHMU2GIp6uxI#V20u6wo=+M1x6MUzyeFDP~~sCZBZyt>~86{(5|yPBb{`1rtZvc zfl{qcCW1y^{EacuXf*NXK|wK^_@coVO-LnRVq$#Y$)Bi+nwS{RojY4xpgf5*ac(mA z+9kju0Z^!z7ilx=vww_FPkhV5AZypg$oN(MX=8$q2T> z5@sOGK$w9r17QZj49vs~;F-;eIL*1wwP77*Ak4u3G6QUXQ1M|h7RU)M{jCEl{|bPT zT><=pZM+BgK58Iift=vdcf~pR?EwN;2(B2w-BGVHbCj__PH@TH32=7;!O9TaP{3au z{Z!waK#a?<4l@vD;Mxo@`phRe;t-t_%I@zPv5A`*bw@ImlR>MqnGwr$y=e3T2o;sH zX3r7lh_X147;;7vp5_(YxRyV}dP&EzGNrbbIcOTAX}YM*u|3VSjlAz*>IRw|?lo=Q z8I3yyTX%im1XqZXD5Yur*x1HsbaSKH+}u3gsE*y$w6Rg$9Nj!VE{Qdf4O_d@!&c6A zPV%TA*cmXK@^T8hHwe*ki)}o_ic~4YuS+3Hb7gtHlIrU}ba)_5X~8wR4NLRPqS3B- zhMT4fU5t2l*0B%djUq*T#Qf3lQ`^K+|ewno5cxhWatdwr4(I8hJ^o5@^!aa>is`{gP^>L0MMv z;MltWC@mN&50MbRH# zque1UT?|*G8aG@oN9E)&qClc9AK4_|sq|P{#;_!+bGH`xZl$*vL`ysQ;C6YZlFB-{ z9ERdbRnW+X<4U_S$X4E~xn9?ZVY5$lj_dA0UB5e|<&CaU1Y+=^I&swh9&wyGb?Bz& zFr}Z670P|0*vBSp)pbLktgc^Dmq;q;K~1}8BJlAm;P|KKMNy2DuosD~<;}<^w(7V1 zG)H1lKD>yFshS;tOG%W($sRI@FVK#WljLdg5_ylDCTGZ}w&%oA#a#X_xcyRcT+F6HXNHW}gF>oc(7-rajT_wJjq47{{}aqhN7 zHH&N2Rckjiw``A3VUvTogx`O%!lyzRfqW|XIJpYL42(*Hyli=iomY6tdD?>+kOmFmZ$S=h7=b*3{{+JSVR!@{gOhLyDew$D3(vs|@FEi6b$A2bgty=f zypL4)FrdPhNQ7_T@>Ss8Uk+~g{l?%fCi1rB*hkQ+M33?bZe6c}FI~s({~go6|G#w~ zFkCszK$wA>o&l(APqfEzndvqtcGp(%xgQ@^nB4@Iz6)0VbsVLC9Y;C!hat9AG-W=q hKu&OpBUt|P7Xf8Iv;U=E;Nkfnp8wO_pl9m&|2K8blWhP1 literal 0 HcmV?d00001 diff --git a/docs/api_administrator_promotion_controller_plan.md b/docs/api_administrator_promotion_controller_plan.md new file mode 100644 index 00000000..92fc8419 --- /dev/null +++ b/docs/api_administrator_promotion_controller_plan.md @@ -0,0 +1,126 @@ +# `AdministratorPromotionController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Administrator/AdministratorPromotionController.php` +- **Purpose**: admin/registrar API to manage promotion records and parent enrollment lifecycle. +- **Primary dependencies**: + - Query/detail: `PromotionQueryService` + - Eligibility evaluation: `PromotionEligibilityService` + - Status transitions: `PromotionStatusService` + - Parent enrollment workflow: `PromotionEnrollmentService` + - Reminders: `PromotionReminderService` + - Auditing: `PromotionAuditService` + - Level mapping: `LevelProgressionService` +- **Models**: + - `StudentPromotionRecord` + - `PromotionAuditLog` + - `PromotionReminderLog` + +## Routes +All routes are under: +- Base prefix: `/api/v1/administrator/promotions` +- Middleware: `auth:api`, `admin.access` + +Endpoints: +- Listing & detail + - `GET /api/v1/administrator/promotions/` → `index` + - `GET /api/v1/administrator/promotions/summary` → `summary` + - `GET /api/v1/administrator/promotions/{promotionId}` → `show` +- Eligibility & status + - `POST /api/v1/administrator/promotions/evaluate` → `evaluate` + - `PATCH /api/v1/administrator/promotions/{promotionId}/status` → `updateStatus` +- Deadlines + - `POST /api/v1/administrator/promotions/deadlines` → `setDeadline` (bulk/single via body) + - `POST /api/v1/administrator/promotions/{promotionId}/deadline` → `setDeadline` (single) + - `POST /api/v1/administrator/promotions/deadlines/expire` → `expireDeadlines` +- Enrollment steps (admin override) + - `PATCH /api/v1/administrator/promotions/{promotionId}/enrollment-steps` → `adminCompleteEnrollment` +- Reminders & audit + - `POST /api/v1/administrator/promotions/{promotionId}/reminders` → `sendReminder` + - `GET /api/v1/administrator/promotions/{promotionId}/reminders` → `reminders` + - `POST /api/v1/administrator/promotions/reminders/dispatch` → `dispatchScheduledReminders` + - `GET /api/v1/administrator/promotions/{promotionId}/audit` → `audit` +- Level progressions (mapping current level → promoted level) + - `GET /api/v1/administrator/promotions/levels/` → `levelProgressions` + - `POST /api/v1/administrator/promotions/levels/` → `upsertLevelProgression` + - `POST /api/v1/administrator/promotions/levels/seed` → `seedLevelProgressions` + +## Authentication & authorization +- Admin access enforced by route middleware. +- `getCurrentUserId()` used for attribution in audit logs and updates. + +## Requests/validation +Validated via `FormRequest` classes: +- `index` / `summary`: `AdminListPromotionsRequest` (`filters()`) +- `evaluate`: `EvaluateEligibilityRequest` (supports scope: `student`, `class_section`, `school_year`) +- `updateStatus`: `UpdatePromotionStatusRequest` (supports `force` + `notes`) +- `setDeadline`: `SetEnrollmentDeadlineRequest` (supports `apply_to` modes and optional `promotion_ids`) +- `sendReminder`: `SendReminderRequest` (type, subject/message, channels) +- `adminCompleteEnrollment`: `ParentEnrollmentStepRequest` (`steps()`) +- `upsertLevelProgression`: `UpsertLevelProgressionRequest` + +## Response shapes +This controller uses legacy `{ ok: ... }` shapes (not Base API envelope). + +- `index`: + - `{ ok:true, data:[StudentPromotionResource...], pagination:{page, per_page, total, total_pages}, counts_by_status }` +- `show`: + - `{ ok:true, data: StudentPromotionResource }` +- `summary`: + - `{ ok:true, counts_by_status, total }` +- `evaluate`: + - `{ ok:true, result:{ scope, ... } }` +- `updateStatus`: + - `{ ok:true, data: StudentPromotionResource }` + - Errors: + - 422 for invalid args + - 409 for transition conflicts +- `setDeadline`: + - `{ ok:true, updated, promotion_ids:[...] }` +- `sendReminder`: + - `{ ok:true, reminder: PromotionReminderResource }` +- `dispatchScheduledReminders` / `expireDeadlines`: + - `{ ok:true, result }` +- `reminders`: + - `{ ok:true, reminders:[PromotionReminderResource...] }` +- `audit`: + - `{ ok:true, entries:[PromotionAuditLogResource...] }` +- `adminCompleteEnrollment`: + - `{ ok:true, data: StudentPromotionResource }` (409 on conflict) +- `levelProgressions`: + - `{ ok:true, levels:[LevelProgressionResource...] }` +- `upsertLevelProgression`: + - `{ ok:true, level: LevelProgressionResource }` +- `seedLevelProgressions`: + - `{ ok:true, created }` + +## Side effects +- Deadline updates are wrapped in `DB::transaction` and log audit entries via `PromotionAuditService`. +- Reminder sending records `PromotionReminderLog` and may send via multiple channels. +- Status transitions update `StudentPromotionRecord` and write audit entries via services. + +## Error handling expectations +- `findOrFail()` returns 404 `{ ok:false, message:"Promotion record not found." }`. +- `evaluate()` catches unexpected errors and returns 500 with generic message. +- `sendReminder()` catches unexpected errors and returns 500 with generic message. + +## Test plan (feature) +- AuthZ: + - Non-admin users denied by middleware. +- List & filters: + - Pagination and `counts_by_status` match expected totals. +- Evaluate: + - Each scope returns expected payload keys; unexpected errors return 500. +- Status transitions: + - Valid transitions succeed; invalid args return 422; invalid transitions return 409. +- Deadlines: + - Single record update; bulk update by year; bulk update by list. + - Audit log created for each updated record. +- Reminders: + - Manual reminder creates log and returns resource. + - Dispatch scheduled reminders returns summary result. +- Enrollment steps: + - Admin patch updates steps and returns updated record; conflicts return 409. +- Levels: + - List returns mappings; upsert creates/updates; seed inserts defaults. + diff --git a/docs/api_auth_controller_plan.md b/docs/api_auth_controller_plan.md new file mode 100644 index 00000000..4dcef1ad --- /dev/null +++ b/docs/api_auth_controller_plan.md @@ -0,0 +1,74 @@ +# `AuthController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Auth/AuthController.php` +- **Purpose**: JWT login, token refresh, current-user lookup, logout. +- **Primary dependencies**: + - `App\Services\Auth\ApiLoginSecurityService` (rate limiting / IP blocking, attempt tracking, response builder) + - `PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth` (token issuance/refresh/invalidation) + - `Illuminate\Support\Facades\Auth` (current user) + +## Routes +- **Public (no `/v1`)** + - `POST /api/login` → `login` +- **Versioned (`/v1`)** + - `POST /api/v1/login` → `login` +- **Auth prefix (`/v1/auth`)** + - `POST /api/v1/auth/login` → `login` + - `POST /api/v1/auth/refresh` → `refresh` (middleware: `jwt.auth`) + - `POST /api/v1/auth/logout` → `logout` (middleware: `auth:api`) + - `GET /api/v1/auth/me` → `me` (middleware: `auth:api`) + +## Authentication & authorization +- **`login`**: public; checks credentials, then issues JWT. +- **`refresh`**: requires a valid JWT via `jwt.auth`. +- **`me`/`logout`**: require `auth:api` (JWT/guarded user). + +## Request/validation expectations +- **`login`**: + - Accepts JSON or form payload. Extracts `email`, `password`. + - Returns `400` if missing. + - Normalizes email to lowercase; looks up `User` by case-insensitive email. +- **`refresh`**: + - Expects bearer token in request (handled by `JWTAuth::parseToken()`). +- **`logout`**: + - Attempts JWT invalidation when bearer token looks like a JWT (3 dot-separated segments). + - Also deletes `currentAccessToken()` when supported (supports Sanctum-style tokens if present). + +## Response shapes +- **`login` success**: `ApiLoginSecurityService::buildLoginResponse($user, $jwtToken)` (treat as canonical shape). +- **`login` failures**: + - `400`: `{ status:false, message:"Email and password are required." }` + - `401`: `{ status:false, message:"Invalid email or password." }` + - `403`: `{ status:false, message:"Account suspended. Please reset your password." }` + - `429`: `{ status:false, message:"Too many failed attempts..." }` +- **`refresh` success** (Base API shape): + - `{ status:true, message:"Token refreshed.", data:{ access_token, token_type:"bearer", expires_in } }` +- **`me` success** (Base API shape): + - `{ status:true, message:"OK", data:{ id, firstname, lastname, email, class_section_id, class_section_name } }` +- **`logout` success** (Base API shape): + - `{ status:true, message:"Logged out.", data:null }` + +## Side effects & security notes +- Logs IP attempt / failed attempt / successful login via `ApiLoginSecurityService`. +- Suspended users are rejected **after** verifying credentials (avoids email enumeration by response shape). + +## Error handling expectations +- `refresh`: any exception becomes `401` via `respondError('Token refresh failed.', 401)`. +- `logout`: JWT invalidation errors are intentionally ignored. + +## Test plan (feature) +- **Login** + - Missing email/password → `400`. + - Unknown email → `401` and IP attempt logged. + - Wrong password → `401` and failed attempt handling invoked. + - Suspended user with correct password → `403`. + - Successful login returns expected response shape and includes token. + - IP blocked → `429`. +- **Refresh** + - Valid token refresh returns new token + expires_in. + - Invalid/missing token returns `401`. +- **Me/Logout** + - Requires auth; returns `401` unauthenticated. + - Logout returns success even if token invalidation fails. + diff --git a/docs/api_authorized_user_invite_controller_plan.md b/docs/api_authorized_user_invite_controller_plan.md new file mode 100644 index 00000000..c38dc45f --- /dev/null +++ b/docs/api_authorized_user_invite_controller_plan.md @@ -0,0 +1,70 @@ +# `AuthorizedUserInviteController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php` +- **Purpose**: public invite confirmation + password setup for “authorized users” invited by a parent. +- **Primary dependency**: `App\Services\Parents\AuthorizedUsersManagementService` + +## Routes +- `GET /api/confirm_authorized_user?token=...` → `confirm` +- `GET /api/set_authorized_user_password/{authorizedUserId}?token=...` → `setPasswordForm` +- `POST /api/set_authorized_user_password/{authorizedUserId}` → `savePassword` + - Path constraint: `{authorizedUserId}` is numeric + +## Authentication & authorization +- These endpoints are **public** and rely on **invite tokens** for authorization. +- Redirects are protected via an allowlist check (`isTrustedRedirectUrl()`). + +## Endpoint behavior +### `confirm` +- Input: + - Query param `token` (string) +- Calls `AuthorizedUsersManagementService::confirmEmailClick($token)` and expects `redirect_url`. +- Output: + - If request expects JSON: `{ message:"Confirmed.", redirect_url }` + - Otherwise redirects the browser to `redirect_url` via `redirect()->away(...)` +- Errors: + - Invalid token → `400` (JSON or minimal HTML page) + - Untrusted redirect URL → `400` JSON `{ message:"Invalid redirect URL." }` + +### `setPasswordForm` +- Input: + - Route param `authorizedUserId` + - Query param `token` +- Calls `AuthorizedUsersManagementService::findActiveSetupRow($authorizedUserId, $token)`. +- Output: + - JSON mode: `{ message:"OK", user_id, token }` + - HTML mode: instructional HTML (no actual password form UI) +- Errors: + - Invalid/expired link → `400` (JSON or plain text) + +### `savePassword` +- Input (JSON or form): + - `password` (required; min 8; must include upper/lower/number/special) + - `password_confirmation` or `password_confirm` (one required; must match `password`) + - `user_id` (required int) — expected to match the authorized user’s owning parent id + - `token` (required string) +- Calls `AuthorizedUsersManagementService::setAuthorizedUserPassword(...)`. +- Output: + - Success: `{ message:"Password has been successfully set." }` +- Errors: + - Validation → `422` with `{ message, errors }` + - Invalid token / mismatch / expired setup row → `400` `{ message }` + +## Security notes +- **Redirect allowlist**: only hosts matching `app.url`, `app.frontend_url`, or `services.frontend.url`. +- **Password policy** is enforced at the API level via regex rules. + +## Test plan (feature) +- `confirm` + - Invalid token → 400 JSON/HTML depending on `Accept`. + - Valid token but redirect host not allowlisted → 400. + - Valid token → JSON includes redirect_url; non-JSON issues redirect. +- `setPasswordForm` + - Invalid token/id → 400. + - Valid token/id → returns JSON payload or HTML string. +- `savePassword` + - Weak password / missing confirm → 422. + - Token mismatch/expired → 400. + - Success → 200 and password is set (can authenticate as that authorized user). + diff --git a/docs/api_authorized_users_controller_plan.md b/docs/api_authorized_users_controller_plan.md new file mode 100644 index 00000000..39ff2ce1 --- /dev/null +++ b/docs/api_authorized_users_controller_plan.md @@ -0,0 +1,76 @@ +# `AuthorizedUsersController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Parents/AuthorizedUsersController.php` +- **Purpose**: parent CRUD for secondary “authorized users” attached to the parent account. +- **Primary dependency**: `App\Services\Parents\AuthorizedUsersManagementService` +- **Model**: `App\Models\AuthorizedUser` + +## Routes +All routes are under `v1` + `parents` group: +- Base prefix: `GET/POST/PATCH/DELETE /api/v1/parents/...` +- Group middleware: `parent.access` + +Endpoints: +- `GET /api/v1/parents/authorized-users` → `index` +- `GET /api/v1/parents/authorized-users/{id}` → `show` +- `POST /api/v1/parents/authorized-users` → `store` +- `PATCH /api/v1/parents/authorized-users/{id}` → `update` +- `DELETE /api/v1/parents/authorized-users/{id}` → `destroy` + +## Authentication & authorization +- Requires authenticated parent context (effectively enforced by `parent.access` + `auth()` usage). +- Ownership check: + - All record reads/writes are constrained to `AuthorizedUser.user_id = parentId`. + +## Requests/validation +- `store`: `StoreAuthorizedUserRequest` + - Reads validated `email` and lowercases/trims before invite. +- `update`: `UpdateAuthorizedUserRequest` + - Supports email change; re-invites when email changed. + +## Endpoint behavior +### `index` +- Returns all authorized users for the parent ordered by id. +- Response shape uses Base API envelope: + - `{ status:true, message:"Success", data:[...] }` + +### `show` +- Loads an authorized user row for this parent or returns 404. +- Response shape: Base API envelope with the model row. + +### `store` +- Invites by email via `AuthorizedUsersManagementService::inviteByEmail($parentId, $email)`. +- If invite already existed / not newly created: + - Returns `200` success with message explaining email sent conditionally. +- If created: + - Returns `201` with created id. + +### `update` +- If email provided: + - Calls `changeEmailAndReinvite($row, $email)` + - On invalid argument: returns `422` with error message +- If email not provided: + - Returns success message (no-op update) + +### `destroy` +- Deletes the owned record and returns success message. + +## Error handling +- Unauthenticated → `401` Base API error `"Authentication required."` +- Not found → `404` Base API error `"Authorized user not found."` +- Invalid email change → `422` Base API error with exception message + +## Test plan (feature) +- Auth required: + - Unauthenticated requests → 401 for all endpoints. +- Ownership: + - Parent cannot read/update/delete someone else’s authorized user (404). +- Store: + - New email creates record → 201 + id. + - Existing/duplicate invite path → 200 with “If the email belongs…” message. +- Update: + - Email change triggers reinvite; invalid email triggers 422. +- Delete: + - Owned record deleted; subsequent fetch returns 404. + diff --git a/docs/api_base_api_controller_plan.md b/docs/api_base_api_controller_plan.md new file mode 100644 index 00000000..dc45a1c5 --- /dev/null +++ b/docs/api_base_api_controller_plan.md @@ -0,0 +1,66 @@ +# `BaseApiController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Core/BaseApiController.php` +- **Purpose**: shared API conveniences: + - Standard success/error JSON envelope helpers + - Request payload normalization (JSON body vs query/form) + - Validation helper compatible with legacy CodeIgniter-like rules + - Lightweight pagination helper for arrays/query builders + - Current-user resolution helpers (id + role list) + +## Key responsibilities +### Response helpers +- `success($data, $message, $code)` → `{ status:true, message, data }` +- `error($message, $code, $errors?)` → `{ status:false, message, errors? }` +- Convenience wrappers: + - `respondSuccess`, `respondCreated`, `respondDeleted`, `respondError`, `respondValidationError` + +### Request normalization +- Stores the underlying Laravel request as `laravelRequest`. +- Wraps it in `CiRequestAdapter` as `$this->request` for compatibility patterns. +- `payloadData()`: + - Uses JSON-decoded body when present and valid + - Falls back to merged query + form data + +### Validation +- `validateRequest($data, $rules)`: + - Normalizes CodeIgniter-like rule strings into Laravel rules via `normalizeRules()`. + - Saves validator to `$this->validator`. + - Returns `[]` on success, or `errors()->toArray()` on failure. +- `validate($rules)` validates against `payloadData()` and returns boolean. + +### Pagination +- `paginate($source, $page, $perPage)` supports: + - Eloquent builder / query builder + - Plain arrays + - Returns `{ data: [...], pagination:{ current_page, per_page, total, total_pages } }` + +### Current user helpers +- `getCurrentUserId()` resolves authenticated id from multiple sources. +- `getCurrentUser()`: + - Loads `User` row + - Computes display name + - Loads roles via `user_roles`/`roles` join (best-effort; logs error and returns `roles: []` if it fails) + +## Usage guidance (project conventions) +- **Controllers extending `BaseApiController`** should prefer: + - `respondSuccess`/`respondError` for consistent envelopes where possible. + - Returning explicit `{ ok: true }` shapes only when required for legacy client compatibility. +- **Validation**: + - Prefer dedicated `FormRequest` classes for new endpoints. + - Use `validateRequest/normalizeRules` only for legacy/bridge use cases. + +## Test plan (unit) +- `normalizeRules()` conversions: + - `max_length[n]` → `max:n`, `min_length[n]` → `min:n`, `valid_email` → `email`, `permit_empty` → `nullable`, `is_unique[t.c]` → `unique:t,c`, etc. +- `payloadData()`: + - JSON body takes precedence when valid + - Falls back to query+form when no JSON +- `paginate()`: + - Eloquent builder: returns expected total + slices + - Array source: returns expected slice +- `getCurrentUser()`: + - No auth → `null` + - Role query failure → returns user with empty roles and logs error + diff --git a/docs/api_charge_controller_plan.md b/docs/api_charge_controller_plan.md new file mode 100644 index 00000000..1e256433 --- /dev/null +++ b/docs/api_charge_controller_plan.md @@ -0,0 +1,75 @@ +# `ChargeController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Finance/ChargeController.php` +- **Purpose**: list charges for a parent and manage extra/event charges (create/cancel/apply/mark paid). +- **Primary dependency**: `App\Services\Billing\ChargeService` +- **Resources**: + - `ChargeListResource` (for list responses) + - `ChargeActionResource` (for mutation responses) + +## Routes +All routes are under: +- Base prefix: `/api/v1/finance/fees/charges` + +Endpoints: +- `GET /api/v1/finance/fees/charges/` → `index` +- `POST /api/v1/finance/fees/charges/extra` → `storeExtra` +- `POST /api/v1/finance/fees/charges/event` → `storeEvent` +- `POST /api/v1/finance/fees/charges/extra/{id}/cancel` → `cancelExtra` +- `POST /api/v1/finance/fees/charges/extra/{id}/apply` → `applyExtra` +- `POST /api/v1/finance/fees/charges/event/{id}/cancel` → `cancelEvent` +- `POST /api/v1/finance/fees/charges/event/{id}/mark-paid` → `markEventPaid` + +## Authentication & authorization +- `storeExtra` / `storeEvent` require an authenticated user id (checked by `authenticatedUserIdOrUnauthorized()`). +- Other endpoints currently do not call the helper; authorization is expected to be enforced by surrounding route middleware and/or service-layer checks. + +## Requests/validation +- `index`: `ChargeListRequest` (`parent_id` required; optional `school_year`) +- `storeExtra`: `StoreExtraChargeRequest` (+ adds `created_by` from authenticated user) +- `storeEvent`: `StoreEventChargeRequest` (+ adds `created_by`) +- `applyExtra`: `ApplyExtraChargeRequest` (`invoice_id`) +- `markEventPaid`: `MarkEventChargePaidRequest` (`paid`, optional `payment_id`) +- `cancelEvent`: uses raw `Request` with query boolean `issue_credit` (default true) + +## Response shapes +Legacy `{ ok: ... }` shape: +- `index`: + - `{ ok:true, charges: ChargeListResource }` +- Mutations: + - `{ ok:(bool), charge: ChargeActionResource }` + - HTTP status: + - Create success: `201` + - Duplicate charge success-case: `409` (when `error === "duplicate_charge"`) + - Validation/business failure: `422` + - Cancel/apply/mark-paid: `200` when ok, else `422` + +## Side effects +- `storeExtra` / `storeEvent` attach `created_by` for auditing. +- `cancelEvent` optionally issues credits (controlled via `issue_credit` query flag). +- `markEventPaid` can link to a `payment_id` when supplied. + +## Error handling expectations +- `storeExtra` / `storeEvent` catch unexpected exceptions: + - return `500` `{ ok:false, message:"Unable to create ... charge." }` +- Unauthorized (store endpoints) returns: + - `401` `{ ok:false, message:"Unauthorized." }` + +## Test plan (feature) +- Listing: + - Returns `ChargeListResource` payload for a parent with charges. +- Create extra/event: + - Unauthenticated → 401. + - Valid payload → 201 and ok true. + - Duplicate charge → 409. + - Service exception → 500. +- Apply extra: + - Valid invoice id applies charge → 200. + - Invalid invoice/charge → 422. +- Cancel: + - Extra cancel → 200/422 depending on service result. + - Event cancel with `issue_credit=false` behaves accordingly. +- Mark paid: + - Toggle paid true/false; supports payment_id link. + diff --git a/docs/api_fee_calculation_controller_plan.md b/docs/api_fee_calculation_controller_plan.md new file mode 100644 index 00000000..92ff7aba --- /dev/null +++ b/docs/api_fee_calculation_controller_plan.md @@ -0,0 +1,66 @@ +# `FeeCalculationController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Finance/FeeCalculationController.php` +- **Purpose**: finance calculation endpoints (refunds, tuition totals/breakdowns, family balances). +- **Primary dependencies**: + - `FeeRefundCalculatorService` (refund calculations) + - `FeeStudentFeeService` (tuition total) + - `TuitionCalculationService` (tuition breakdown) + - `BalanceCalculationService` (family account/balance aggregation) +- **Resources**: + - `FeeRefundResource` + - `FeeTuitionTotalResource` + - `FeeTuitionBreakdownResource` + - `FeeFamilyBalanceResource` + +## Routes +All routes are under: +- Base prefix: `/api/v1/finance` +- (Route file shows this under a `finance` group; actual auth middleware depends on the surrounding `v1` group setup.) + +Endpoints: +- `POST /api/v1/finance/fees/refund` → `refund` +- `POST /api/v1/finance/fees/tuition-total` → `tuitionTotal` +- `POST /api/v1/finance/fees/tuition-breakdown` → `tuitionBreakdown` +- `POST /api/v1/finance/fees/family-balance` → `familyBalance` + +## Requests/validation +- `refund`: `FeeRefundRequest` + - expects `parent_id` and `students` array +- `tuitionTotal`: `FeeTuitionTotalRequest` + - expects `students` array +- `tuitionBreakdown`: `FeeTuitionBreakdownRequest` + - expects `students` array +- `familyBalance`: `FeeFamilyBalanceRequest` + - expects `parent_id`, `students` array, optional `school_year` + +## Response shapes +Legacy `{ ok: ... }` shape: +- `refund`: + - `{ ok:true, refund: FeeRefundResource }` +- `tuitionTotal`: + - `{ ok:true, tuition: FeeTuitionTotalResource({ total_tuition }) }` +- `tuitionBreakdown`: + - `{ ok:true, tuition: FeeTuitionBreakdownResource }` +- `familyBalance`: + - `{ ok:true, account: FeeFamilyBalanceResource }` + +## Error handling expectations +- Each endpoint wraps calculation in `try/catch`: + - On exception: logs error and returns `500` with `{ ok:false, message:"Unable to ..." }` +- Validation errors are handled by the FormRequest layer (422). + +## Test plan (feature/unit mix) +- Validation: + - Missing required fields → 422. +- Refund: + - Valid input returns `ok:true` and resource fields. + - Service exception returns 500 and message. +- Tuition total/breakdown: + - Calculates expected totals for a known dataset. + - Service exception returns 500. +- Family balance: + - Produces stable account totals for known payments/charges. + - Service exception returns 500. + diff --git a/docs/api_parent_controller_plan.md b/docs/api_parent_controller_plan.md new file mode 100644 index 00000000..611c2729 --- /dev/null +++ b/docs/api_parent_controller_plan.md @@ -0,0 +1,96 @@ +# `ParentController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Parents/ParentController.php` +- **Purpose**: parent portal endpoints for attendance, invoices, enrollments, registration, emergency contacts, profile, and event participation. +- **Primary dependencies**: + - `App\Services\Parents\ParentAttendanceService` + - `App\Services\Parents\ParentInvoiceService` + - `App\Services\Parents\ParentEnrollmentService` + - `App\Services\Parents\ParentRegistrationService` + - `App\Services\Parents\ParentEmergencyContactService` + - `App\Services\Parents\ParentProfileService` + - `App\Services\Parents\ParentEventParticipationService` + +## Routes +All routes are under `v1` + `parents` group: +- Base prefix: `GET/POST/PATCH/DELETE /api/v1/parents/...` +- Group middleware: `parent.access` + +Endpoints: +- `GET /api/v1/parents/attendance` → `attendance` +- `GET /api/v1/parents/invoices` → `invoices` +- `GET /api/v1/parents/enrollments` → `enrollments` +- `POST /api/v1/parents/enrollments` → `updateEnrollments` +- `GET /api/v1/parents/registration` → `registration` +- `POST /api/v1/parents/registration` → `storeRegistration` +- `PATCH /api/v1/parents/students/{studentId}` → `updateStudent` +- `DELETE /api/v1/parents/students/{studentId}` → `deleteStudent` +- `GET /api/v1/parents/emergency-contacts` → `emergencyContacts` +- `POST /api/v1/parents/emergency-contacts` → `storeEmergencyContact` +- `PATCH /api/v1/parents/emergency-contacts/{contactId}` → `updateEmergencyContact` +- `GET /api/v1/parents/profile` → `profile` +- `PATCH /api/v1/parents/profile` → `updateProfile` +- `GET /api/v1/parents/events` → `events` +- `POST /api/v1/parents/events/participation` → `updateParticipation` + +## Authentication & authorization +- Uses `parent.access` middleware which resolves “secondary”/“authorized” users to a primary parent id and stores it in the request attribute `primary_parent_id`. +- Controller helper `parentIdOrUnauthorized()`: + - Prefer `request()->attributes->get('primary_parent_id')` + - Fallback to `auth()->id()` + - On failure returns JSON `{ ok:false, message:"Unauthorized." }` with `401` + +## Requests/validation +Validated via `FormRequest` classes per endpoint: +- `attendance`: `ParentAttendanceRequest` (optional `school_year`) +- `invoices`: `ParentInvoiceRequest` (optional `school_year`) +- `enrollments`: `ParentEnrollmentRequest` (optional `school_year`) +- `updateEnrollments`: `ParentEnrollmentActionRequest` (`enroll[]`, `withdraw[]`) +- `storeRegistration`: `ParentRegistrationRequest` (`students[]`, `emergency_contacts[]`) +- `updateStudent`: `ParentStudentUpdateRequest` +- `store/update emergency contact`: `ParentEmergencyContactRequest` +- `updateProfile`: `ParentProfileUpdateRequest` +- `updateParticipation`: `ParentEventParticipationRequest` (`participation[]`) + +## Response shapes (legacy `{ ok: ... }`) +This controller largely returns a legacy parent-portal shape rather than the Base API envelope. + +- `attendance`: + - `{ ok:true, attendance:[...], schoolYears:[...], selectedYear }` + - `attendance` uses `ParentAttendanceResource::collection(...)` +- `invoices`: + - `{ ok:true, invoices:[...] }` (`InvoiceResource::collection(...)`) +- `enrollments`: + - `{ ok:true, students:[...], schoolYears:[...], selectedYear, withdrawalDeadline, lastDayOfRegistration, schoolStartDate }` +- `updateEnrollments`: + - `{ ok:true, enrolled:[...], withdrawn:[...] }` +- `registration`: + - `{ ok:true, parent, existingKids:[...], emergencies:[...], maxChilds, maxEmergency, lastDayOfRegistration, registrationAgeDeadline }` +- `storeRegistration`: + - `{ ok:true, created_student_ids:[...], skipped:[...] }` with status `201` if created_count>0 else `200` +- `updateStudent` / `deleteStudent` / `updateParticipation`: + - `{ ok:true }` +- `emergencyContacts`: + - `{ ok:true, contacts:[...] }` +- `store/update emergency contact`: + - `{ ok:true, contact:{...} }` (store returns `201`) +- `profile` / `updateProfile`: + - `{ ok:true, profile:{...} }` +- `events`: + - `{ ok:true, activeEvents, charges, yourStudents }` + +## Error handling expectations +- Unauthorized: `{ ok:false, message:"Unauthorized." }` with `401` (from `parentIdOrUnauthorized()`). +- Service-layer exceptions are generally allowed to bubble unless handled in the service; controller does minimal try/catch. + +## Test plan (feature) +- Auth/parent.access: + - Without auth → 401 `{ ok:false }`. + - With secondary/authorized user → resolved to primary parent id and returns correct data. +- Each endpoint: + - Valid request returns `ok:true` and expected keys. + - Validation errors are returned by FormRequest (422). +- Registration: + - Returns 201 when at least one student is created, 200 when all entries skipped. + diff --git a/docs/api_parent_promotion_controller_plan.md b/docs/api_parent_promotion_controller_plan.md new file mode 100644 index 00000000..49ac4369 --- /dev/null +++ b/docs/api_parent_promotion_controller_plan.md @@ -0,0 +1,69 @@ +# `ParentPromotionController` plan + +## Scope +- **Controller**: `app/Http/Controllers/Api/Parents/ParentPromotionController.php` +- **Purpose**: parent portal endpoints for promotion + enrollment workflow. +- **Primary dependencies**: + - `App\Services\Promotions\PromotionEnrollmentService` + - `App\Services\Promotions\PromotionQueryService` +- **Models**: + - `App\Models\StudentPromotionRecord` + - `App\Models\Student` (ownership verification fallback) + +## Routes +All routes are under `v1` + `parents` group: +- Base prefix: `... /api/v1/parents/promotions` +- Group middleware: `parent.access` + +Endpoints: +- `GET /api/v1/parents/promotions/` → `overview` +- `GET /api/v1/parents/promotions/{promotionId}` → `show` +- `POST /api/v1/parents/promotions/{promotionId}/start` → `start` +- `PATCH /api/v1/parents/promotions/{promotionId}/steps` → `updateSteps` +- `POST /api/v1/parents/promotions/{promotionId}/submit` → `submit` + +## Authentication & authorization +- Parent context resolved via `parentIdOrUnauthorized()`: + - prefers request attribute `primary_parent_id` (set by `parent.access`) + - falls back to `auth()->id()` +- Ownership is enforced in `loadOwnedRecord()`: + - Primary check: `StudentPromotionRecord.parent_id == parentId` + - Fallback: loads `Student.parent_id` for the record’s `student_id` + - If not owned: returns `403` `{ ok:false, message:"You are not authorised..." }` + +## Requests/validation +- `overview`: `ParentPromotionOverviewRequest` (optional `next_school_year`) +- `updateSteps`: `ParentEnrollmentStepRequest` (`steps()` accessor provides structured step payload) + +## Response shapes +- `overview`: + - `{ ok:true, records, next_school_year, message }` + - Note: `records` are returned as provided by `PromotionEnrollmentService::overviewForParent(...)` (already shaped for the client) +- `show` / `start` / `updateSteps` / `submit`: + - `{ ok:true, data: StudentPromotionResource(...) }` + +## State transitions (high-level) +- `start` → `PromotionEnrollmentService::startEnrollment(...)` +- `updateSteps` → `PromotionEnrollmentService::updateSteps(...)` +- `submit` → `PromotionEnrollmentService::submitEnrollment(...)` +- Conflicts (invalid transition / deadline / status) surface as `409` with `{ ok:false, message }`. + +## Error handling expectations +- Unauthorized → `401` `{ ok:false, message:"Unauthorized." }` +- Record not found → `404` `{ ok:false, message:"Promotion record not found." }` +- Not owned → `403` `{ ok:false, message:"You are not authorised..." }` +- Invalid transition → `409` `{ ok:false, message }` + +## Test plan (feature) +- Ownership: + - Parent cannot access another parent’s record (403). + - Record with mismatched `parent_id` but student belongs to parent passes ownership check. +- Happy path: + - `overview` returns list for parent. + - `start` moves record to started state and returns updated resource. + - `updateSteps` persists steps and returns updated resource. + - `submit` transitions to submitted state. +- Conflict cases: + - Submitting without required steps → 409. + - Past deadline → 409 (as enforced by service). + diff --git a/docs/app_project_plan.md b/docs/app_project_plan.md new file mode 100644 index 00000000..a3526681 --- /dev/null +++ b/docs/app_project_plan.md @@ -0,0 +1,1640 @@ +# App Project Implementation Plan + +Generated: 2026-05-29 + +## 1. Scope and Readout + +This plan is based on the uploaded `app/` project slice. The zip contains the Laravel-style application layer, not the full repository. That means routes, migrations, config outside `app/`, composer metadata, tests, CI, frontend assets, and deployment files were not available unless embedded in this directory. So the plan avoids pretending the missing pieces magically exist, a level of honesty software planning could use more often. + +### Inventory + +- Real project files inspected: **1184** +- PHP files inspected: **1183** +- Approximate PHP LOC: **103,161** +- Controllers: **129** +- Models: **133** +- Services: **386** +- Form requests: **298** +- API resources: **167** +- Middleware: **12** +- Console commands: **14** +- Policies: **10** + + +## 2. Project Thesis + +The app is already organized around a service-heavy backend: controllers orchestrate, request classes validate, resources shape responses, and services carry domain logic. That is the right direction. The weak point is not that the code lacks structure. The weak point is that the project is broad enough for rules to drift across domains unless the boundaries are enforced deliberately. + +The plan should therefore optimize for correctness and regression safety, not cosmetic refactors. Refactoring without tests here would be performance art with a stack trace. + + + +## 3. Main Architecture Plan + +### Target shape + +- Controllers stay thin: authorize, validate, call one service action, return one resource/response. +- Services own business rules and transactions. +- Form requests own validation and request normalization. +- Resources own response shape and avoid leaking internal model structure. +- Policies/Gates own permission checks. +- Events/listeners own async or side-effect workflows, especially communications. +- Console commands remain operational entry points only, not hidden domain logic. + +### Non-negotiable rules + +- No money-changing action without an explicit transaction, audit trail, idempotency check, and test. +- No attendance, score, promotion, or enrollment mutation without actor tracking and date boundary tests. +- No file endpoint without MIME, size, storage path, authorization, and download-name tests. +- No communication endpoint without recipient preview, opt-out logic, deduplication, and send-log tests. +- No direct request parsing in controllers where a FormRequest already exists or should exist. +- No raw SQL without parameter binding review and a test proving the query behavior. + + +## 4. Evidence-Based Risk Notes + +These are not accusations; they are where bugs usually crawl out wearing a tiny hat. + +- **Raw SQL / raw query usage:** 59 files, 166 matches. +- **Direct request input access:** 50 files, 194 matches. +- **File operation endpoints:** 18 files, 34 matches. +- **Email or messaging behavior:** 62 files, 192 matches. +- **Auth/Gate/authorization usage:** 325 files, 482 matches. +- **Explicit DB transactions:** 48 files, 72 matches. +- **CodeIgniter compatibility surface:** 41 files, 62 matches. +- **Queued or dispatched work:** 7 files, 8 matches. +- **Cache-dependent behavior:** 5 files, 12 matches. + + +Review priority should follow blast radius: auth, finance, payments, attendance, grading, promotions, messaging, files, then lower-risk CRUD. + + + +## 5. Delivery Phases + +### Phase 0: Baseline and Guardrails + +- Add a project map document describing module ownership, service boundaries, and route ownership. +- Add static analysis to CI: PHPStan or Larastan, Pint/PHP-CS-Fixer, and a dead-code detector if practical. +- Add a minimal smoke test suite covering auth, health checks, and one representative CRUD module. +- Create fixtures/factories for User, Student, Family, Enrollment, Invoice, Payment, AttendanceRecord, Score, and Staff. +- Freeze API response contracts for critical endpoints with JSON snapshot tests. + +### Phase 1: Security and Access Control + +- Inventory every controller method and map required role/permission/policy. +- Confirm every mutation endpoint uses authorization before business logic. +- Normalize role switching/session timeout behavior and log security-relevant events. +- Review IP ban, login attempts, password reset cleanup, registration captcha, and auth session flows. +- Add negative tests proving unauthorized roles cannot read or mutate cross-family, cross-student, or cross-staff data. + +### Phase 2: Financial Correctness + +- Define canonical money rules: rounding, currency precision, refund state machine, invoice adjustment rules, and payment reconciliation. +- Wrap invoice/payment/refund/discount mutations in transactions and audit logs. +- Add idempotency rules to PayPal sync, payment notifications, manual payments, refunds, and invoice generation. +- Build reconciliation tests: invoice total = tuition + fees + event charges + extras - discounts - refunds - payments. +- Add report consistency tests so PDFs, dashboard totals, and API totals cannot disagree like three humans in a meeting. + +### Phase 3: Student Lifecycle Correctness + +- Model the lifecycle from registration/enrollment through attendance, grading, report cards, and promotion. +- Add date boundary tests for semesters, attendance windows, class assignment windows, grading locks, and promotion deadlines. +- Centralize student/family visibility checks. +- Make promotion eligibility deterministic and explainable through audit logs. +- Add regression tests for edge cases: missing scores, below-60 notifications, class transfers, inactive students, deleted/unverified users. + +### Phase 4: Communications Reliability + +- Standardize recipient resolution for Email, Messaging, Notifications, WhatsApp, and BroadcastEmail. +- Require preview/dry-run paths for bulk sends. +- Add send logs, dedupe keys, failure states, and retry strategy. +- Separate composition from delivery. +- Test opt-outs, guardian/family recipient selection, teacher/staff targeting, and notification cleanup. + +### Phase 5: Operations and Reporting + +- Review PDF generation paths for badges, certificates, finance reports, report cards, slips, stickers, and print requests. +- Validate all file downloads and upload paths. +- Add operational health endpoints for database, config, cleanup scheduler, and time-sensitive jobs. +- Add runbooks for cleanup commands, payment sync, attendance publishing, and notification dispatch. + +### Phase 6: Documentation and API Contracts + +- Generate OpenAPI output from route definitions, once routes are included. +- Document each module: owner, purpose, inputs, outputs, permissions, side effects, and failure modes. +- Document legacy compatibility areas explicitly, especially CodeIgniter adapters and helper shims. +- Add API examples for primary user flows: login, role switch, parent dashboard, attendance submission, invoice payment, grading submission. + + + +## 6. Module-by-Module Plan + +Each module gets the same discipline: define ownership, confirm validation, confirm authorization, isolate service logic, test happy paths and failures, document side effects. + + + +### Admin + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 3 requests, 5 resources. + +**Services:** CompetitionWinnersDomain, CompetitionWinnersAdminService +**Requests:** StoreCompetitionWinnerRequest, UpdateCompetitionWinnerRequest, SaveCompetitionScoresRequest +**Resources:** PrintRecipientsResource, TeacherSubmissionReportResource, AdminNotificationAlertsResource, ProgressGroupResource, ProgressReportDetailResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Administrator + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 8 controllers, 18 services, 5 requests, 0 resources. + +**Controllers:** AdministratorAbsenceController, AdministratorDashboardController, AdministratorEnrollmentController, AdministratorNotificationController, AdministratorPromotionController, AdministratorTeacherSubmissionController, EmergencyContactController, TeacherClassAssignmentController +**Services:** AdministratorUserSearchService, AdministratorAbsenceService, AdministratorDashboardService, AdministratorMetricsService, AdministratorEnrollmentStatusService, AdministratorEnrollmentEventService, AdministratorNotificationService, AdminNotificationSubjectService, TeacherSubmissionSupportService, AdministratorSharedService, TeacherSubmissionNotificationService, TeacherSubmissionReportService ... +**Requests:** SavePrintRecipientsRequest, SaveAdminNotificationSubjectsRequest, SubmitAdministratorAbsenceRequest, UpdateEnrollmentStatusesRequest, SendTeacherSubmissionNotificationsRequest +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Api + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 0 services, 4 requests, 0 resources. + +**Requests:** SaveAdminNotificationSubjectsRequest, IndexAdminProgressRequest, SendTeacherSubmissionNotificationsRequest, SavePrintNotificationRecipientsRequest +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### ApiRoot + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 7 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Assignment + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 5 services, 2 requests, 2 resources. + +**Controllers:** AssignmentApiController +**Services:** AssignmentSectionService, AssignmentMetaService, AssignmentService, AssignmentContextService, AssignmentDataLoaderService +**Requests:** StoreAssignmentRequest, StoreStudentAssignmentRequest +**Resources:** AssignmentOverviewResource, AssignmentSectionResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Attendance + +**Priority:** P1 Student lifecycle +**Detected surface:** 6 controllers, 16 services, 7 requests, 7 resources. + +**Controllers:** AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController +**Services:** SemesterRangeService, TeacherAttendanceSubmissionService, AttendanceAutoPublishJobService, AttendanceAutoPublishService, LateSlipLogQueryService, AttendanceConsequenceService, AttendanceRecordSyncService, AttendanceDailySummaryService, AttendanceService, StudentAttendanceWriterService, LateSlipLogCommandService, AttendanceSummaryRebuildService ... +**Requests:** SaveStaffAttendanceCellRequest, UpdateAttendanceManagementRequest, LateSlipLogIndexRequest, TeacherSubmitAttendanceRequest, SaveAdminAttendanceRequest, TeacherUpdateGridRequest, AdminAddAttendanceEntryRequest +**Resources:** DailyAttendanceResource, AdminAttendanceResource, LateSlipLogCollection, LateSlipLogResource, TeacherGridResource, StaffMonthResource, TeacherAttendanceFormResource +**Plan:** +- Lock down date and semester boundary behavior before changing implementation. +- Test teacher/admin/parent visibility separately. +- Ensure auto-publish, notification, late slip, early dismissal, and violation rules are deterministic. +- Record who changed attendance, when, and why. + +### AttendanceCommentTemplate + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 0 services, 2 requests, 0 resources. + +**Requests:** StoreAttendanceCommentTemplateRequest, UpdateAttendanceCommentTemplateRequest +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### AttendanceTracking + +**Priority:** P1 Student lifecycle +**Detected surface:** 1 controllers, 12 services, 5 requests, 0 resources. + +**Controllers:** AttendanceTrackingController +**Services:** AttendanceNotificationLogService, AttendanceViolationStudentResolverService, AttendanceNotificationWorkflowService, AttendanceTrackingService, ViolationRuleEngineService, AttendanceMailerService, AttendanceParentLookupService, AttendanceCommunicationSupportService, AttendanceEmailComposerService, AttendancePendingViolationService, AttendanceCaseQueryService, DefaultAttendanceMailerService +**Requests:** RecordAttendanceTrackingRequest, ComposeAttendanceEmailRequest, SendAttendanceManualEmailRequest, ParentsInfoRequest, SaveAttendanceNotificationNoteRequest +**Plan:** +- Lock down date and semester boundary behavior before changing implementation. +- Test teacher/admin/parent visibility separately. +- Ensure auto-publish, notification, late slip, early dismissal, and violation rules are deterministic. +- Record who changed attendance, when, and why. + +### Auth + +**Priority:** P0 Security/Foundation +**Detected surface:** 7 controllers, 9 services, 3 requests, 1 resources. + +**Controllers:** AuthController, AuthSessionController, IpBanController, RegisterController, RolePermissionController, RoleSwitcherController, SessionTimeoutController +**Services:** RegistrationCaptchaService, PermissionCheckService, CodeIgniterApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService +**Requests:** RegisterRequest, SetRoleSessionRequest, LoginSessionRequest +**Resources:** RegisterResource +**Plan:** +- Map every endpoint to required auth state, role, and permission. +- Test login throttling, IP bans, password reset cleanup, session timeout, role switching, and registration captcha. +- Confirm security logs include actor, IP, user agent, outcome, and reason. +- Reject role changes that create privilege escalation or stale-session leaks. + +### BadgeScan + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** BadgeScanController +**Services:** BadgeScanService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Badges + +**Priority:** P2 Operations +**Detected surface:** 1 controllers, 7 services, 3 requests, 0 resources. + +**Controllers:** BadgeController +**Services:** BadgeTextFormatter, BadgeStudentLookupService, BadgeFormDataService, BadgePdfService, BadgeUserLookupService, BadgeService, BadgePrintLogService +**Requests:** BadgePrintStatusRequest, GenerateBadgePdfRequest, LogBadgePrintRequest +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Billing + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 0 requests, 0 resources. + +**Services:** BalanceCalculationService, BillingTotalsService, ChargeService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### BroadcastEmail + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 5 services, 0 requests, 0 resources. + +**Services:** BroadcastEmailComposerService, BroadcastEmailRecipientService, BroadcastEmailDispatchService, BroadcastEmailImageService, BroadcastEmailSenderOptionsService +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Certificates + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** CertificateController +**Services:** CertificatePdfService +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### ClassPrep + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 0 requests, 0 resources. + +**Services:** ClassRosterService, StickerCountService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### ClassPreparation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 9 services, 4 requests, 2 resources. + +**Controllers:** ClassPreparationController +**Services:** ClassPreparationAdjustmentWriterService, ClassPreparationCalculatorService, ClassPreparationLogService, ClassPreparationAdjustmentService, ClassPreparationContextService, ClassPreparationService, ClassPreparationPrintService, ClassPreparationRosterService, ClassPreparationInventoryService +**Requests:** ClassPreparationMarkPrintedRequest, ClassPreparationPrintRequest, ClassPreparationIndexRequest, ClassPreparationAdjustmentRequest +**Resources:** ClassPreparationPrintResource, ClassPreparationResultResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### ClassProgress + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 5 services, 5 requests, 4 resources. + +**Controllers:** ClassProgressController +**Services:** ClassProgressRuleService, ClassProgressAttachmentService, ClassProgressQueryService, ClassProgressMetaService, ClassProgressMutationService +**Requests:** ClassProgressStoreRequest, ClassProgressMetaRequest, ClassProgressIndexRequest, ClassProgressFormRequest, ClassProgressUpdateRequest +**Resources:** ClassProgressGroupCollection, ClassProgressAttachmentResource, ClassProgressShowResource, ClassProgressReportResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### ClassSections + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 0 requests, 0 resources. + +**Services:** ClassSectionCommandService, ClassAttendanceService, ClassSectionSeedService, ClassSectionQueryService +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Classes + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 0 services, 3 requests, 4 resources. + +**Controllers:** ClassController +**Requests:** ClassSectionUpdateRequest, ClassSectionStoreRequest, ClassSectionIndexRequest +**Resources:** ClassSectionCollection, ClassSectionResource, ClassAttendanceResource, ClassAttendanceStudentResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Communication + +**Priority:** P1 Communications +**Detected surface:** 1 controllers, 6 services, 0 requests, 0 resources. + +**Controllers:** CommunicationController +**Services:** CommunicationFamilyService, CommunicationSendService, CommunicationTemplateService, CommunicationPreviewService, CommunicationStudentService, CommunicationLogService +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### CompetitionScores + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 0 requests, 0 resources. + +**Controllers:** CompetitionScoresController +**Services:** CompetitionScoresRosterService, CompetitionScoresSaveService, CompetitionScoresContextService, CompetitionScoresQueryService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Core + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** BaseApiController, CiRequestAdapter +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Dashboard + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** DashboardRouteService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Discounts + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 5 services, 3 requests, 2 resources. + +**Controllers:** DiscountController +**Services:** DiscountParentService, DiscountApplyService, DiscountInvoiceService, DiscountVoucherService, DiscountContextService +**Requests:** UpdateDiscountVoucherRequest, ApplyDiscountVoucherRequest, StoreDiscountVoucherRequest +**Resources:** DiscountVoucherResource, DiscountParentResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Docs + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 0 requests, 0 resources. + +**Services:** DocsCatalogService, ApiDocsService, OpenApiRouteExporter +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Documentation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** ApiDocsAdminController, DocsCatalogController +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Email + +**Priority:** P1 Communications +**Detected surface:** 3 controllers, 5 services, 2 requests, 3 resources. + +**Controllers:** BroadcastEmailController, EmailController, EmailExtractorController +**Services:** EmailAttachmentService, EmailExtractorService, EmailProfileService, EmailDispatchService, EmailSenderOptionsService +**Requests:** EmailExtractorCompareRequest, EmailSendRequest +**Resources:** EmailSenderResource, EmailExtractorEmailsResource, EmailExtractorCompareResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### EmergencyContacts + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 2 requests, 3 resources. + +**Services:** EmergencyContactDirectoryService, EmergencyContactCrudService +**Requests:** EmergencyContactParentRequest, EmergencyContactUpdateRequest +**Resources:** EmergencyContactGroupResource, EmergencyContactStudentResource, EmergencyContactResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Events + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 6 services, 6 requests, 3 resources. + +**Services:** EventChargeService, EventStudentChargeService, EventCategoryService, EventListService, EventChargeQueryService, EventManagementService +**Requests:** EventIndexRequest, EventUpdateRequest, EventStoreRequest, EventStudentsWithChargesRequest, EventChargeUpdateRequest, EventChargeIndexRequest +**Resources:** EventChargeResource, EventResource, EventStudentChargeResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Exams + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 3 requests, 1 resources. + +**Controllers:** ExamDraftController +**Services:** ExamDraftTeacherService, ExamDraftAdminService, ExamDraftConfigService, ExamDraftFileService +**Requests:** ExamDraftTeacherStoreRequest, ExamDraftAdminLegacyRequest, ExamDraftAdminReviewRequest +**Resources:** ExamDraftResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Expenses + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 7 services, 3 requests, 2 resources. + +**Controllers:** ExpenseController +**Services:** ExpenseQueryService, ExpenseStaffService, ExpenseRetailorService, ExpenseReceiptService, ExpenseWriteService, ExpenseContextService, ExpenseStatusService +**Requests:** UpdateExpenseRequest, StoreExpenseRequest, UpdateExpenseStatusRequest +**Resources:** ExpenseResource, ExpenseStaffResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### ExtraCharges + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 6 services, 2 requests, 3 resources. + +**Controllers:** ExtraChargesController +**Services:** ExtraChargesMetaService, ExtraChargesInvoiceService, ExtraChargesParentService, ExtraChargesChargeService, ExtraChargesContextService, ExtraChargesListService +**Requests:** UpdateExtraChargeRequest, StoreExtraChargeRequest +**Resources:** ExtraChargeInvoiceOptionResource, ExtraChargeResource, ExtraChargeParentOptionResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Families + +**Priority:** P1 Student lifecycle +**Detected surface:** 0 controllers, 4 services, 14 requests, 7 resources. + +**Services:** FamilyNotificationService, FamilyFinanceService, FamilyMutationService, FamilyQueryService +**Requests:** FamilyImportLegacyRequest, FamilyUnlinkStudentRequest, FamilySetPrimaryHomeRequest, FamilyAdminCardRequest, FamiliesByStudentRequest, FamilyBootstrapRequest, FamilyAttachSecondByEmailRequest, FamilyAdminSearchRequest ... +**Resources:** FamilyPaymentResource, FamilyInvoiceResource, FamilySearchItemResource, FamilyResource, FamilyGuardianResource, FamilyStudentResource, FamilyEmergencyContactResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Family + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** FamilyAdminController, FamilyController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Fees + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 6 services, 2 requests, 6 resources. + +**Services:** FeeConfigService, TuitionCalculationService, FeeRefundCalculatorService, FeeGradeService, FeeRefundDetailService, FeeStudentFeeService +**Requests:** FeeTuitionTotalRequest, FeeRefundRequest +**Resources:** FeeRefundResource, FeeFamilyBalanceResource, ChargeActionResource, ChargeListResource, FeeTuitionBreakdownResource, FeeTuitionTotalResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Files + +**Priority:** P2 Operations +**Detected surface:** 0 controllers, 2 services, 1 requests, 1 resources. + +**Services:** FileServeService, ExamDraftDownloadNameService +**Requests:** FileNameRequest +**Resources:** FileMetaResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Finance + +**Priority:** P0 Financial correctness +**Detected surface:** 14 controllers, 8 services, 12 requests, 9 resources. + +**Controllers:** ChargeController, FeeCalculationController, FinancialController, InvoiceController, PaymentController, PaymentEventChargesController, PaymentManualController, PaymentNotificationController, PaymentTransactionController, PaypalPaymentController ... +**Services:** FinancialPdfReportService, FinancialSchoolYearService, FinancialPaymentService, FinancialReportService, FinancialSummaryService, FinancialChartService, FinancialDonationRecipientService, FinancialUnpaidParentsService +**Requests:** FinancialUnpaidParentsRequest, FeeTuitionTotalRequest, ChargeListRequest, FinancialReportRequest, FinancialSummaryRequest, MarkEventChargePaidRequest, FeeTuitionBreakdownRequest, StoreExtraChargeRequest ... +**Resources:** FinancialReportResource, FinancialSummaryResource, FinancialExpenseSummaryResource, FinancialInvoiceResource, FinancialPaymentResource, FinancialRefundResource, FinancialUnpaidParentResource, FinancialDiscountResource ... +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Frontend + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 4 controllers, 9 services, 2 requests, 6 resources. + +**Controllers:** FrontendController, InfoIconController, LandingPageController, PageController +**Services:** LandingPageTeacherSummaryService, LandingPageRoleService, LandingPageParentDashboardService, LandingPageService, StaticPageService, FrontendPageService, ContactSubmissionService, LandingPageContextService, ProfileIconService +**Requests:** LandingTeacherRequest, ContactSubmitRequest +**Resources:** LandingPageResource, ContactSubmissionResource, FrontendPageResource, FrontendUserResource, ProfileIconResource, PageContentResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Grading + +**Priority:** P1 Student lifecycle +**Detected surface:** 2 controllers, 9 services, 18 requests, 3 resources. + +**Controllers:** GradingController, HomeworkTrackingController +**Services:** BelowSixtyEmailService, GradingLockService, GradingOverviewService, GradingPlacementService, HomeworkTrackingService, GradingScoreService, GradingBelowSixtyService, HomeworkTrackingCalendarService, GradingRefreshService +**Requests:** BelowSixtyListRequest, BelowSixtySendRequest, GradingLockAllRequest, BelowSixtyMeetingRequest, PlacementLevelsRequest, GradingRefreshRequest, GradingScoreShowRequest, HomeworkTrackingRequest ... +**Resources:** BelowSixtyStudentResource, GradingScoreResource, HomeworkTrackingTeacherResource +**Plan:** +- Centralize score formulas and missing-score behavior. +- Add golden test cases for semester score, quiz, homework, project, participation, final/midterm, and prediction risk calculations. +- Prove grading locks block writes but not allowed reads. +- Verify below-60 communication and parent visibility rules. + +### Incidents + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 5 requests, 4 resources. + +**Controllers:** IncidentController +**Services:** CurrentIncidentService, IncidentHistoryService, IncidentLookupService, IncidentAnalysisService +**Requests:** IncidentCancelRequest, IncidentCloseRequest, IncidentStoreRequest, IncidentListRequest, IncidentStateRequest +**Resources:** IncidentStudentOptionResource, IncidentAnalysisStudentResource, IncidentResource, IncidentGradeResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Inventory + +**Priority:** P2 Operations +**Detected surface:** 5 controllers, 8 services, 19 requests, 5 resources. + +**Controllers:** InventoryCategoryController, InventoryController, InventoryMovementController, SupplierController, SupplyCategoryController +**Services:** InventorySummaryService, InventoryCategoryService, InventoryItemService, InventoryContextService, SupplierService, InventoryMovementService, SupplyCategoryService, InventoryTeacherDistributionService +**Requests:** InventoryItemIndexRequest, SupplierUpdateRequest, InventoryCategoryStoreRequest, InventoryTeacherDistributionRequest, InventoryItemUpdateRequest, InventoryItemStoreRequest, InventoryTeacherDistributionStoreRequest, InventoryCategoryUpdateRequest ... +**Resources:** InventoryItemResource, InventoryCategoryResource, InventoryMovementResource, SupplierResource, SupplyCategoryResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Invoices + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 8 services, 4 requests, 2 resources. + +**Services:** InvoiceGradeService, InvoiceConfigService, InvoicePaymentService, InvoiceTuitionService, InvoiceManagementService, InvoicePdfService, InvoiceService, InvoiceGenerationService +**Requests:** InvoiceStatusRequest, InvoiceManagementRequest, InvoiceParentRequest, InvoiceGenerateRequest +**Resources:** InvoiceManagementParentResource, InvoiceResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Messaging + +**Priority:** P1 Communications +**Detected surface:** 2 controllers, 3 services, 3 requests, 3 resources. + +**Controllers:** MessagesController, WhatsappController +**Services:** MessageRecipientService, MessageCommandService, MessageQueryService +**Requests:** MessageSendRequest, MessageIndexRequest, MessageUpdateRequest +**Resources:** MessageResource, MessageCollection, RecipientResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Navigation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 0 requests, 0 resources. + +**Services:** NavBuilderService, NavbarService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### NonApi + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 3 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** Controller, DocsController, TeacherCalendarPageController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Notifications + +**Priority:** P1 Communications +**Detected surface:** 1 controllers, 12 services, 5 requests, 2 resources. + +**Controllers:** NotificationController +**Services:** NotificationDispatchService, NotificationRecipientService, NotificationShowService, NotificationManagementService, NotificationReadService, NotificationUserListService, NotificationCleanupService, UserNotificationDispatchService, NotificationTriggerService, NotificationSendService, NotificationActiveService, NotificationDeletedService +**Requests:** NotificationSendRequest, NotificationActiveRequest, NotificationDeletedRequest, NotificationUpdateRequest, NotificationIndexRequest +**Resources:** UserNotificationResource, NotificationResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Parents + +**Priority:** P1 Student lifecycle +**Detected surface:** 5 controllers, 14 services, 16 requests, 4 resources. + +**Controllers:** AuthorizedUserInviteController, AuthorizedUsersController, ParentAttendanceReportController, ParentController, ParentPromotionController +**Services:** ParentEventParticipationService, ParentRegistrationService, PrimaryParentUserResolver, ParentAttendanceReportCalendarService, ParentAttendanceService, AuthorizedUsersManagementService, ParentEnrollmentService, ParentInvoiceService, ParentProgressQueryService, ParentAttendanceReportService, ParentReportCardService, ParentConfigService ... +**Requests:** ParentAttendanceReportUpdateRequest, ParentAttendanceReportListRequest, ParentAttendanceReportSubmitRequest, ParentEmergencyContactRequest, UpdateAuthorizedUserRequest, ParentAttendanceReportCheckRequest, ParentProfileUpdateRequest, ParentInvoiceRequest ... +**Resources:** ParentEmergencyContactResource, ParentAttendanceReportResource, ParentStudentResource, ParentAttendanceResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Payments + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 14 services, 15 requests, 4 resources. + +**Services:** PaymentNotificationDispatchService, PaymentMissedCheckService, PaymentManualService, PaymentLookupService, PaymentTestNotificationService, PaypalPaymentSyncService, PaymentBalanceService, PaypalPaymentService, PaymentTransactionService, PaymentEnrollmentEventService, PaymentNotificationService, PaymentPlanService ... +**Requests:** PaymentManualSearchRequest, PaymentEventChargesListRequest, PaymentNotificationSendRequest, PaymentNotificationListRequest, PaymentCreateRequest, PaypalTransactionsListRequest, PaymentManualEditRequest, PaymentEventChargesStoreRequest ... +**Resources:** PaymentNotificationLogResource, PaymentTransactionResource, PaypalTransactionResource, PaymentResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Phone + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PhoneFormatterService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Policy + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PolicyContentService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Preferences + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 2 requests, 3 resources. + +**Services:** PreferencesCommandService, PreferencesQueryService, PreferencesOptionsService +**Requests:** PreferencesIndexRequest, PreferencesUpsertRequest +**Resources:** PreferencesListResource, PreferencesCollection, PreferencesResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### PrintRequests + +**Priority:** P2 Operations +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** PrintRequestsController +**Services:** PrintRequestsPortalService +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Promotions + +**Priority:** P1 Student lifecycle +**Detected surface:** 0 controllers, 7 services, 8 requests, 4 resources. + +**Services:** PromotionStatusService, PromotionEnrollmentService, PromotionReminderService, LevelProgressionService, PromotionAuditService, PromotionQueryService, PromotionEligibilityService +**Requests:** SendReminderRequest, ParentPromotionOverviewRequest, AdminListPromotionsRequest, EvaluateEligibilityRequest, UpdatePromotionStatusRequest, ParentEnrollmentStepRequest, SetEnrollmentDeadlineRequest, UpsertLevelProgressionRequest +**Resources:** LevelProgressionResource, PromotionAuditLogResource, PromotionReminderResource, StudentPromotionResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Public + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** PublicWinnersController +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### PublicWinners + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PublicWinnersPortalService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### PurchaseOrders + +**Priority:** P2 Operations +**Detected surface:** 0 controllers, 4 services, 3 requests, 2 resources. + +**Services:** PurchaseOrderStatusService, PurchaseOrderReceiveService, PurchaseOrderCreateService, PurchaseOrderQueryService +**Requests:** PurchaseOrderIndexRequest, PurchaseOrderStoreRequest, PurchaseOrderReceiveRequest +**Resources:** PurchaseOrderResource, PurchaseOrderItemResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Refunds + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 9 services, 6 requests, 1 resources. + +**Services:** RefundSummaryService, RefundInvoiceAdjustmentService, RefundPolicyService, RefundPayoutService, RefundRequestService, RefundQueryService, RefundOverpaymentService, RefundDecisionService, RefundNotificationService +**Requests:** RefundStoreRequest, RefundPaymentRequest, RefundDecisionRequest, RefundRecalculateRequest, RefundIndexRequest, RefundRejectRequest +**Resources:** RefundResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Reimbursements + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 11 services, 13 requests, 5 resources. + +**Services:** ReimbursementFileService, ReimbursementBatchAssignmentService, ReimbursementContextService, ReimbursementExportService, ReimbursementLookupService, ReimbursementEmailService, ReimbursementRecipientService, ReimbursementBatchService, ReimbursementQueryService, ReimbursementDonationService, ReimbursementCrudService +**Requests:** ReimbursementBatchAdminFileRequest, ReimbursementUpdateRequest, ReimbursementBatchCreateRequest, ReimbursementBatchEmailRequest, ReimbursementProcessRequest, ReimbursementExportBatchRequest, ReimbursementIndexRequest, ReimbursementExportRequest ... +**Resources:** ReimbursementRecipientResource, ReimbursementExpenseResource, ReimbursementBatchResource, ReimbursementResource, ReimbursementUnderProcessingItemResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Reports + +**Priority:** P2 Operations +**Detected surface:** 4 controllers, 9 services, 11 requests, 8 resources. + +**Controllers:** FilesController, ReportCardsController, SlipPrinterController, StickersController +**Services:** SlipPrinterFormatterService, SlipPrinterPdfService, SlipPrinterService, SlipPrinterConfigService, StickerPrintService, StickerPresetService, StickerQueryService, StickerContextService, ReportCardService +**Requests:** SlipPreviewRequest, SlipLogListRequest, SlipPrintRequest, SlipReprintRequest, StickerStudentsByClassRequest, StickerPrintRequest, StickerFormDataRequest, ReportCardCompletenessRequest ... +**Resources:** LateSlipLogResource, StickerStudentResource, StickerPresetResource, StickerClassSectionResource, ReportCardStudentMetaResource, ReportCardAcknowledgementResource, ReportCardClassSectionResource, ReportCardCompletenessStudentResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Roles + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 8 services, 9 requests, 4 resources. + +**Services:** RolePermissionService, RoleDashboardService, RoleCrudService, RoleAssignmentService, RoleSwitchService, RoleStaffService, PermissionCrudService, RoleQueryService +**Requests:** AssignUserRolesRequest, RolePermissionUpdateRequest, UserRoleListRequest, PermissionUpdateRequest, PermissionStoreRequest, RoleSwitchRequest, RoleStoreRequest, RoleUpdateRequest ... +**Resources:** RolePermissionResource, RoleResource, UserWithRolesResource, PermissionResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Root + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 8 services, 1 requests, 1 resources. + +**Services:** FeeCalculationService, SemesterRangeService, ApplicationUrlService, SchoolIdService, AssignmentService, AttendanceCommentTemplateService, PhoneFormatterService, EmailService +**Requests:** ApiFormRequest +**Resources:** TeacherSubmissionRowResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### School + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 0 requests, 0 resources. + +**Services:** AccountEventService, SemesterSelectionService, EnrollmentEventService, PaymentEventService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### SchoolIds + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 1 requests, 1 resources. + +**Services:** SchoolIdAssignmentService, SchoolIdGenerationService +**Requests:** SchoolIdAssignRequest +**Resources:** SchoolIdResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Scores + +**Priority:** P1 Student lifecycle +**Detected surface:** 9 controllers, 16 services, 10 requests, 3 resources. + +**Controllers:** FinalController, HomeworkController, MidtermController, ParticipationController, ProjectController, QuizController, ScoreCommentController, ScoreController, ScorePredictorController +**Services:** ParticipationScoreService, QuizCalculator, QuizScoreService, ScoreCommentService, ScoreDashboardService, HomeworkCalculator, SemesterScoreService, ScorePredictorRiskService, ProjectScoreService, HomeworkScoreService, ScoreTermService, ProjectCalculator ... +**Requests:** ScoreCommentSaveRequest, ScorePredictorRequest, ScoreLockRequest, ScoreUpdateRequest, ScoreOverviewRequest, ScoreStudentRequest, ScoreCommentListRequest, ScoreClassRequest ... +**Resources:** ScorePredictorStudentResource, ScoreCommentResource, ScoreStudentResource +**Plan:** +- Centralize score formulas and missing-score behavior. +- Add golden test cases for semester score, quiz, homework, project, participation, final/midterm, and prediction risk calculations. +- Prove grading locks block writes but not allowed reads. +- Verify below-60 communication and parent visibility rules. + +### Security + +**Priority:** P0 Security/Foundation +**Detected surface:** 0 controllers, 3 services, 3 requests, 2 resources. + +**Services:** IpBanCommandService, IpBanQueryService, Pbkdf2Hasher +**Requests:** IpBanIndexRequest, IpUnbanRequest, IpBanRequest +**Resources:** IpBanCollection, IpBanResource +**Plan:** +- Map every endpoint to required auth state, role, and permission. +- Test login throttling, IP bans, password reset cleanup, session timeout, role switching, and registration captcha. +- Confirm security logs include actor, IP, user agent, outcome, and reason. +- Reject role changes that create privilege escalation or stale-session leaks. + +### Semesters + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 4 requests, 2 resources. + +**Services:** SemesterConfigService +**Requests:** SchoolYearRangeRequest, SemesterResolveRequest, SemesterNormalizeRequest, SemesterRangeRequest +**Resources:** SemesterResolveResource, SemesterRangeResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Settings + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 6 controllers, 8 services, 8 requests, 5 resources. + +**Controllers:** ConfigurationAdminController, EventController, PolicyController, PreferencesController, SchoolCalendarController, SettingsController +**Services:** SettingsService, ConfigurationService, SchoolCalendarMutationService, SchoolCalendarNotificationService, SchoolCalendarContextService, SchoolCalendarQueryService, SchoolCalendarFormatterService, SchoolCalendarMeetingService +**Requests:** SchoolCalendarStoreRequest, ConfigurationStoreRequest, SettingsUpdateRequest, SchoolCalendarIndexRequest, ConfigurationUpdateRequest, SchoolCalendarUpdateRequest, PolicyShowRequest, SchoolCalendarOptionsRequest +**Resources:** PolicyResource, SchoolCalendarEventResource, SettingsResource, ConfigurationResource, SchoolCalendarEventDetailResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Staff + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 3 controllers, 3 services, 3 requests, 2 resources. + +**Controllers:** StaffController, TeacherController, TimeOffNotificationController +**Services:** StaffQueryService, StaffTimeOffLinkService, StaffCommandService +**Requests:** StaffIndexRequest, StaffUpdateRequest, StaffStoreRequest +**Resources:** StaffCollection, StaffResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Students + +**Priority:** P1 Student lifecycle +**Detected surface:** 1 controllers, 7 services, 7 requests, 4 resources. + +**Controllers:** StudentController +**Services:** StudentScoreCardService, StudentStatusService, StudentDirectoryService, StudentAutoDistributionService, StudentConfigService, StudentProfileService, StudentAssignmentService +**Requests:** StudentRemoveClassRequest, StudentUpdateRequest, StudentAssignClassRequest, StudentSetActiveRequest, StudentPromotionTotalsRequest, StudentAssignmentListRequest, StudentAutoDistributeRequest +**Resources:** StudentAssignmentResource, StudentRemovedResource, StudentClassSectionResource, StudentScoreCardRowResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Subjects + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 2 requests, 2 resources. + +**Controllers:** SubjectCurriculumController +**Services:** SubjectCurriculumService +**Requests:** SubjectCurriculumUpdateRequest, SubjectCurriculumStoreRequest +**Resources:** SubjectCurriculumResource, SubjectClassResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Support + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 2 services, 3 requests, 3 resources. + +**Controllers:** ContactController, SupportController +**Services:** SupportRequestService, ContactMessageService +**Requests:** SupportRequestStoreRequest, SupportRequestIndexRequest, ContactSendRequest +**Resources:** ContactMessageResource, SupportRequestResource, SupportRequestCollection +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### System + +**Priority:** P0 Security/Foundation +**Detected surface:** 9 controllers, 6 services, 2 requests, 4 resources. + +**Controllers:** AccessDeniedController, DashboardController, DashboardRedirectController, DatabaseHealthController, HealthController, NavBuilderController, SchoolIdController, SemesterRangeController, StatsController +**Services:** HealthCheckService, CleanupSchedulerService, GlobalConfigService, DatabaseHealthService, ConfigUpdateService, TimeService +**Requests:** NavItemStoreRequest, NavItemReorderRequest +**Resources:** DashboardRouteResource, NavItemResource, HealthStatusResource, NavBuilderDataResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Teachers + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 6 requests, 4 resources. + +**Services:** TeacherAbsenceService, TeacherDashboardService, TeacherConfigService, TeacherAssignmentService +**Requests:** TeacherClassViewRequest, TeacherAbsenceSubmitRequest, TeacherAssignmentDeleteRequest, TeacherAssignmentStoreRequest, TeacherAssignmentListRequest, TeacherSwitchClassRequest +**Resources:** TeacherAbsenceResource, TeacherStudentResource, TeacherClassResource, TeacherAssignmentResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Ui + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 1 requests, 1 resources. + +**Controllers:** UiController +**Services:** UiStyleService +**Requests:** UiStyleRequest +**Resources:** UiStyleResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Users + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 6 services, 4 requests, 2 resources. + +**Controllers:** UserController +**Services:** UserListService, LoginActivityService, InactiveUserCleanupService, UserManagementService, UserEventService, DeleteUnverifiedUserService +**Requests:** UserStoreRequest, UserListRequest, UserUpdateRequest, LoginActivityRequest +**Resources:** LoginActivityResource, UserWithRolesResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Utilities + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 1 requests, 1 resources. + +**Controllers:** PhoneFormatterController, ProofreadController +**Requests:** PhoneFormatRequest +**Resources:** PhoneFormatResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Whatsapp + +**Priority:** P1 Communications +**Detected surface:** 0 controllers, 8 services, 7 requests, 5 resources. + +**Services:** WhatsappContactService, WhatsappInviteService, WhatsappLinkService, WhatsappContextService, WhatsappInviteNotificationService, WhatsappMembershipService, WhatsappInviteBundleService, WhatsappInviteEmailService +**Requests:** WhatsappLinkIndexRequest, WhatsappMembershipUpdateRequest, WhatsappLinkStoreRequest, WhatsappLinkUpdateRequest, WhatsappParentContactsRequest, WhatsappParentContactsByClassRequest, WhatsappInviteSendRequest +**Resources:** WhatsappParentContactResource, WhatsappGroupLinkResource, WhatsappClassSectionParentResource, WhatsappGroupLinkCollection, WhatsappClassSectionContactResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + + +## 7. Cross-Cutting Test Matrix + +| Area | Minimum tests | Failure tests | Regression traps | +|---|---:|---:|---| +| Auth / Security | Login, refresh, logout, role switch, timeout | Invalid creds, banned IP, stale role, unauthorized role | Privilege escalation, session confusion | +| Finance / Payments | Invoice generation, manual payment, PayPal sync, refunds | Duplicate webhook, failed payment, partial refund | Balance mismatch, rounding drift | +| Attendance | Teacher submit, admin edit, parent report | Out-of-window edit, unauthorized class, duplicate submit | Semester boundary, timezone/date errors | +| Grading / Scores | Score calculations, locks, below-60 notification | Missing score, locked write, invalid class | Formula drift, notification spam | +| Students / Families | Profile, guardians, enrollments, authorized users | Cross-family read/write, inactive student | Orphan relationships | +| Communications | Preview, send, log, retry | Invalid recipient, opt-out, duplicate send | Bulk-send mistakes | +| Files / Reports | Upload, download, PDF generation | Bad MIME, oversize file, unauthorized file | Path traversal, stale report data | +| Inventory / Ops | Item movement, PO receive, print requests | Negative stock, duplicate receive | Count mismatch | + + +## 8. Refactor Rules + +- Do not start by renaming everything. That is not architecture; that is sweeping broken glass into a different corner. +- Start with tests around the highest-risk behavior, then refactor behind those tests. +- One module per pull request unless a shared contract demands otherwise. +- For each PR, include: risk summary, affected endpoints, permission impact, migration impact, rollback path, and test evidence. +- Any service over roughly 300 lines should be reviewed for split points, but line count alone is not a crime. Unclear responsibility is the crime. +- Any controller doing calculations, direct DB orchestration, or multi-step workflow should delegate to a service. +- Any duplicated request validation should be consolidated into shared rules or dedicated FormRequests. + +## 9. Immediate Next Work Queue + +1. Add route inventory from `routes/api.php` and `routes/web.php` once the full repo is available. +2. Produce an endpoint-permission matrix from routes + controllers + policies. +3. Add baseline feature tests for Auth, Finance/Payments, Attendance, Grading/Scores, Students/Families, and Communications. +4. Create factories and seed data for the core school domain. +5. Add OpenAPI generation to CI using the existing Docs/OpenAPI service surface. +6. Review raw SQL and direct request access matches before any large refactor. +7. Add idempotency and audit requirements to payment, invoice, refund, promotion, and messaging mutations. +8. Write runbooks for console commands and operational cleanup jobs. + +## 10. Definition of Done + +A module is not considered done until all of this is true: + +- All public endpoints have route docs and permission mapping. +- All inputs use FormRequests or clearly justified validation. +- All responses use Resources or documented response builders. +- All mutations are transactional where consistency matters. +- All side effects are logged and testable. +- All critical behavior has feature tests and at least one negative authorization test. +- All money/date/file/message behavior has edge-case tests. +- No endpoint relies on undocumented legacy behavior unless that behavior is explicitly preserved and tested. + +## Appendix A: Controller Groups + +- **Administrator:** 8 controllers. AdministratorAbsenceController, AdministratorDashboardController, AdministratorEnrollmentController, AdministratorNotificationController, AdministratorPromotionController, AdministratorTeacherSubmissionController, EmergencyContactController, TeacherClassAssignmentController +- **ApiRoot:** 7 controllers. BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController +- **Assignment:** 1 controllers. AssignmentApiController +- **Attendance:** 6 controllers. AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController +- **AttendanceTracking:** 1 controllers. AttendanceTrackingController +- **Auth:** 7 controllers. AuthController, AuthSessionController, IpBanController, RegisterController, RolePermissionController, RoleSwitcherController, SessionTimeoutController +- **BadgeScan:** 1 controllers. BadgeScanController +- **Badges:** 1 controllers. BadgeController +- **Certificates:** 1 controllers. CertificateController +- **ClassPreparation:** 1 controllers. ClassPreparationController +- **ClassProgress:** 1 controllers. ClassProgressController +- **Classes:** 1 controllers. ClassController +- **Communication:** 1 controllers. CommunicationController +- **CompetitionScores:** 1 controllers. CompetitionScoresController +- **Core:** 2 controllers. BaseApiController, CiRequestAdapter +- **Discounts:** 1 controllers. DiscountController +- **Documentation:** 2 controllers. ApiDocsAdminController, DocsCatalogController +- **Email:** 3 controllers. BroadcastEmailController, EmailController, EmailExtractorController +- **Exams:** 1 controllers. ExamDraftController +- **Expenses:** 1 controllers. ExpenseController +- **ExtraCharges:** 1 controllers. ExtraChargesController +- **Family:** 2 controllers. FamilyAdminController, FamilyController +- **Finance:** 14 controllers. ChargeController, FeeCalculationController, FinancialController, InvoiceController, PaymentController, PaymentEventChargesController, PaymentManualController, PaymentNotificationController, PaymentTransactionController, PaypalPaymentController, PaypalTransactionsController, PurchaseOrderController, RefundController, ReimbursementController +- **Frontend:** 4 controllers. FrontendController, InfoIconController, LandingPageController, PageController +- **Grading:** 2 controllers. GradingController, HomeworkTrackingController +- **Incidents:** 1 controllers. IncidentController +- **Inventory:** 5 controllers. InventoryCategoryController, InventoryController, InventoryMovementController, SupplierController, SupplyCategoryController +- **Messaging:** 2 controllers. MessagesController, WhatsappController +- **NonApi:** 3 controllers. Controller, DocsController, TeacherCalendarPageController +- **Notifications:** 1 controllers. NotificationController +- **Parents:** 5 controllers. AuthorizedUserInviteController, AuthorizedUsersController, ParentAttendanceReportController, ParentController, ParentPromotionController +- **PrintRequests:** 1 controllers. PrintRequestsController +- **Public:** 1 controllers. PublicWinnersController +- **Reports:** 4 controllers. FilesController, ReportCardsController, SlipPrinterController, StickersController +- **Scores:** 9 controllers. FinalController, HomeworkController, MidtermController, ParticipationController, ProjectController, QuizController, ScoreCommentController, ScoreController, ScorePredictorController +- **Settings:** 6 controllers. ConfigurationAdminController, EventController, PolicyController, PreferencesController, SchoolCalendarController, SettingsController +- **Staff:** 3 controllers. StaffController, TeacherController, TimeOffNotificationController +- **Students:** 1 controllers. StudentController +- **Subjects:** 1 controllers. SubjectCurriculumController +- **Support:** 2 controllers. ContactController, SupportController +- **System:** 9 controllers. AccessDeniedController, DashboardController, DashboardRedirectController, DatabaseHealthController, HealthController, NavBuilderController, SchoolIdController, SemesterRangeController, StatsController +- **Ui:** 1 controllers. UiController +- **Users:** 1 controllers. UserController +- **Utilities:** 2 controllers. PhoneFormatterController, ProofreadController + +## Appendix B: Service Groups + +- **Admin:** 2 services, 1,089 LOC. CompetitionWinnersDomain, CompetitionWinnersAdminService +- **Administrator:** 18 services, 2,196 LOC. AdministratorUserSearchService, AdministratorAbsenceService, AdministratorDashboardService, AdministratorMetricsService, AdministratorEnrollmentStatusService, AdministratorEnrollmentEventService, AdministratorNotificationService, AdminNotificationSubjectService, TeacherSubmissionSupportService, AdministratorSharedService, TeacherSubmissionNotificationService, TeacherSubmissionReportService, AdminNotificationUserService, AdministratorEnrollmentRefundService, AdminPrintRecipientService, AdministratorTeacherSubmissionService, AdministratorEnrollmentService, AdministratorEnrollmentQueryService +- **Assignment:** 5 services, 421 LOC. AssignmentSectionService, AssignmentMetaService, AssignmentService, AssignmentContextService, AssignmentDataLoaderService +- **Attendance:** 16 services, 3,241 LOC. SemesterRangeService, TeacherAttendanceSubmissionService, AttendanceAutoPublishJobService, AttendanceAutoPublishService, LateSlipLogQueryService, AttendanceConsequenceService, AttendanceRecordSyncService, AttendanceDailySummaryService, AttendanceService, StudentAttendanceWriterService, LateSlipLogCommandService, AttendanceSummaryRebuildService, StaffAttendanceService, AttendanceQueryService, AttendancePolicyService, AttendanceCommentService +- **AttendanceTracking:** 12 services, 2,979 LOC. AttendanceNotificationLogService, AttendanceViolationStudentResolverService, AttendanceNotificationWorkflowService, AttendanceTrackingService, ViolationRuleEngineService, AttendanceMailerService, AttendanceParentLookupService, AttendanceCommunicationSupportService, AttendanceEmailComposerService, AttendancePendingViolationService, AttendanceCaseQueryService, DefaultAttendanceMailerService +- **Auth:** 9 services, 870 LOC. RegistrationCaptchaService, PermissionCheckService, CodeIgniterApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService +- **BadgeScan:** 1 services, 108 LOC. BadgeScanService +- **Badges:** 7 services, 2,815 LOC. BadgeTextFormatter, BadgeStudentLookupService, BadgeFormDataService, BadgePdfService, BadgeUserLookupService, BadgeService, BadgePrintLogService +- **Billing:** 3 services, 751 LOC. BalanceCalculationService, BillingTotalsService, ChargeService +- **BroadcastEmail:** 5 services, 241 LOC. BroadcastEmailComposerService, BroadcastEmailRecipientService, BroadcastEmailDispatchService, BroadcastEmailImageService, BroadcastEmailSenderOptionsService +- **Certificates:** 1 services, 144 LOC. CertificatePdfService +- **ClassPrep:** 2 services, 205 LOC. ClassRosterService, StickerCountService +- **ClassPreparation:** 9 services, 653 LOC. ClassPreparationAdjustmentWriterService, ClassPreparationCalculatorService, ClassPreparationLogService, ClassPreparationAdjustmentService, ClassPreparationContextService, ClassPreparationService, ClassPreparationPrintService, ClassPreparationRosterService, ClassPreparationInventoryService +- **ClassProgress:** 5 services, 941 LOC. ClassProgressRuleService, ClassProgressAttachmentService, ClassProgressQueryService, ClassProgressMetaService, ClassProgressMutationService +- **ClassSections:** 4 services, 190 LOC. ClassSectionCommandService, ClassAttendanceService, ClassSectionSeedService, ClassSectionQueryService +- **Communication:** 6 services, 374 LOC. CommunicationFamilyService, CommunicationSendService, CommunicationTemplateService, CommunicationPreviewService, CommunicationStudentService, CommunicationLogService +- **CompetitionScores:** 4 services, 325 LOC. CompetitionScoresRosterService, CompetitionScoresSaveService, CompetitionScoresContextService, CompetitionScoresQueryService +- **Dashboard:** 1 services, 70 LOC. DashboardRouteService +- **Discounts:** 5 services, 792 LOC. DiscountParentService, DiscountApplyService, DiscountInvoiceService, DiscountVoucherService, DiscountContextService +- **Docs:** 3 services, 244 LOC. DocsCatalogService, ApiDocsService, OpenApiRouteExporter +- **Email:** 5 services, 395 LOC. EmailAttachmentService, EmailExtractorService, EmailProfileService, EmailDispatchService, EmailSenderOptionsService +- **EmergencyContacts:** 2 services, 142 LOC. EmergencyContactDirectoryService, EmergencyContactCrudService +- **Events:** 6 services, 496 LOC. EventChargeService, EventStudentChargeService, EventCategoryService, EventListService, EventChargeQueryService, EventManagementService +- **Exams:** 4 services, 532 LOC. ExamDraftTeacherService, ExamDraftAdminService, ExamDraftConfigService, ExamDraftFileService +- **Expenses:** 7 services, 231 LOC. ExpenseQueryService, ExpenseStaffService, ExpenseRetailorService, ExpenseReceiptService, ExpenseWriteService, ExpenseContextService, ExpenseStatusService +- **ExtraCharges:** 6 services, 475 LOC. ExtraChargesMetaService, ExtraChargesInvoiceService, ExtraChargesParentService, ExtraChargesChargeService, ExtraChargesContextService, ExtraChargesListService +- **Families:** 4 services, 827 LOC. FamilyNotificationService, FamilyFinanceService, FamilyMutationService, FamilyQueryService +- **Fees:** 6 services, 952 LOC. FeeConfigService, TuitionCalculationService, FeeRefundCalculatorService, FeeGradeService, FeeRefundDetailService, FeeStudentFeeService +- **Files:** 2 services, 159 LOC. FileServeService, ExamDraftDownloadNameService +- **Finance:** 8 services, 1,150 LOC. FinancialPdfReportService, FinancialSchoolYearService, FinancialPaymentService, FinancialReportService, FinancialSummaryService, FinancialChartService, FinancialDonationRecipientService, FinancialUnpaidParentsService +- **Frontend:** 9 services, 1,011 LOC. LandingPageTeacherSummaryService, LandingPageRoleService, LandingPageParentDashboardService, LandingPageService, StaticPageService, FrontendPageService, ContactSubmissionService, LandingPageContextService, ProfileIconService +- **Grading:** 9 services, 1,969 LOC. BelowSixtyEmailService, GradingLockService, GradingOverviewService, GradingPlacementService, HomeworkTrackingService, GradingScoreService, GradingBelowSixtyService, HomeworkTrackingCalendarService, GradingRefreshService +- **Incidents:** 4 services, 499 LOC. CurrentIncidentService, IncidentHistoryService, IncidentLookupService, IncidentAnalysisService +- **Inventory:** 8 services, 1,449 LOC. InventorySummaryService, InventoryCategoryService, InventoryItemService, InventoryContextService, SupplierService, InventoryMovementService, SupplyCategoryService, InventoryTeacherDistributionService +- **Invoices:** 8 services, 1,248 LOC. InvoiceGradeService, InvoiceConfigService, InvoicePaymentService, InvoiceTuitionService, InvoiceManagementService, InvoicePdfService, InvoiceService, InvoiceGenerationService +- **Messaging:** 3 services, 334 LOC. MessageRecipientService, MessageCommandService, MessageQueryService +- **Navigation:** 2 services, 273 LOC. NavBuilderService, NavbarService +- **Notifications:** 12 services, 451 LOC. NotificationDispatchService, NotificationRecipientService, NotificationShowService, NotificationManagementService, NotificationReadService, NotificationUserListService, NotificationCleanupService, UserNotificationDispatchService, NotificationTriggerService, NotificationSendService, NotificationActiveService, NotificationDeletedService +- **Parents:** 14 services, 2,306 LOC. ParentEventParticipationService, ParentRegistrationService, PrimaryParentUserResolver, ParentAttendanceReportCalendarService, ParentAttendanceService, AuthorizedUsersManagementService, ParentEnrollmentService, ParentInvoiceService, ParentProgressQueryService, ParentAttendanceReportService, ParentReportCardService, ParentConfigService, ParentProfileService, ParentEmergencyContactService +- **Payments:** 14 services, 2,096 LOC. PaymentNotificationDispatchService, PaymentMissedCheckService, PaymentManualService, PaymentLookupService, PaymentTestNotificationService, PaypalPaymentSyncService, PaymentBalanceService, PaypalPaymentService, PaymentTransactionService, PaymentEnrollmentEventService, PaymentNotificationService, PaymentPlanService, PaymentEventChargesService, PaypalTransactionsService +- **Phone:** 1 services, 23 LOC. PhoneFormatterService +- **Policy:** 1 services, 51 LOC. PolicyContentService +- **Preferences:** 3 services, 190 LOC. PreferencesCommandService, PreferencesQueryService, PreferencesOptionsService +- **PrintRequests:** 1 services, 558 LOC. PrintRequestsPortalService +- **Promotions:** 7 services, 1,740 LOC. PromotionStatusService, PromotionEnrollmentService, PromotionReminderService, LevelProgressionService, PromotionAuditService, PromotionQueryService, PromotionEligibilityService +- **PublicWinners:** 1 services, 115 LOC. PublicWinnersPortalService +- **PurchaseOrders:** 4 services, 252 LOC. PurchaseOrderStatusService, PurchaseOrderReceiveService, PurchaseOrderCreateService, PurchaseOrderQueryService +- **Refunds:** 9 services, 1,210 LOC. RefundSummaryService, RefundInvoiceAdjustmentService, RefundPolicyService, RefundPayoutService, RefundRequestService, RefundQueryService, RefundOverpaymentService, RefundDecisionService, RefundNotificationService +- **Reimbursements:** 11 services, 1,776 LOC. ReimbursementFileService, ReimbursementBatchAssignmentService, ReimbursementContextService, ReimbursementExportService, ReimbursementLookupService, ReimbursementEmailService, ReimbursementRecipientService, ReimbursementBatchService, ReimbursementQueryService, ReimbursementDonationService, ReimbursementCrudService +- **Reports:** 9 services, 2,445 LOC. SlipPrinterFormatterService, SlipPrinterPdfService, SlipPrinterService, SlipPrinterConfigService, StickerPrintService, StickerPresetService, StickerQueryService, StickerContextService, ReportCardService +- **Roles:** 8 services, 545 LOC. RolePermissionService, RoleDashboardService, RoleCrudService, RoleAssignmentService, RoleSwitchService, RoleStaffService, PermissionCrudService, RoleQueryService +- **Root:** 8 services, 550 LOC. FeeCalculationService, SemesterRangeService, ApplicationUrlService, SchoolIdService, AssignmentService, AttendanceCommentTemplateService, PhoneFormatterService, EmailService +- **School:** 4 services, 990 LOC. AccountEventService, SemesterSelectionService, EnrollmentEventService, PaymentEventService +- **SchoolIds:** 2 services, 41 LOC. SchoolIdAssignmentService, SchoolIdGenerationService +- **Scores:** 16 services, 2,846 LOC. ParticipationScoreService, QuizCalculator, QuizScoreService, ScoreCommentService, ScoreDashboardService, HomeworkCalculator, SemesterScoreService, ScorePredictorRiskService, ProjectScoreService, HomeworkScoreService, ScoreTermService, ProjectCalculator, ScorePredictorDataService, ScorePredictorService, ExamScoreService, AttendanceCalculator +- **Security:** 3 services, 171 LOC. IpBanCommandService, IpBanQueryService, Pbkdf2Hasher +- **Semesters:** 1 services, 42 LOC. SemesterConfigService +- **Settings:** 8 services, 656 LOC. SettingsService, ConfigurationService, SchoolCalendarMutationService, SchoolCalendarNotificationService, SchoolCalendarContextService, SchoolCalendarQueryService, SchoolCalendarFormatterService, SchoolCalendarMeetingService +- **Staff:** 3 services, 325 LOC. StaffQueryService, StaffTimeOffLinkService, StaffCommandService +- **Students:** 7 services, 1,254 LOC. StudentScoreCardService, StudentStatusService, StudentDirectoryService, StudentAutoDistributionService, StudentConfigService, StudentProfileService, StudentAssignmentService +- **Subjects:** 1 services, 80 LOC. SubjectCurriculumService +- **Support:** 2 services, 123 LOC. SupportRequestService, ContactMessageService +- **System:** 6 services, 353 LOC. HealthCheckService, CleanupSchedulerService, GlobalConfigService, DatabaseHealthService, ConfigUpdateService, TimeService +- **Teachers:** 4 services, 641 LOC. TeacherAbsenceService, TeacherDashboardService, TeacherConfigService, TeacherAssignmentService +- **Ui:** 1 services, 95 LOC. UiStyleService +- **Users:** 6 services, 647 LOC. UserListService, LoginActivityService, InactiveUserCleanupService, UserManagementService, UserEventService, DeleteUnverifiedUserService +- **Whatsapp:** 8 services, 1,407 LOC. WhatsappContactService, WhatsappInviteService, WhatsappLinkService, WhatsappContextService, WhatsappInviteNotificationService, WhatsappMembershipService, WhatsappInviteBundleService, WhatsappInviteEmailService + +## Appendix C: Request Groups + +- **Admin:** 3 requests. StoreCompetitionWinnerRequest, UpdateCompetitionWinnerRequest, SaveCompetitionScoresRequest +- **Administrator:** 5 requests. SavePrintRecipientsRequest, SaveAdminNotificationSubjectsRequest, SubmitAdministratorAbsenceRequest, UpdateEnrollmentStatusesRequest, SendTeacherSubmissionNotificationsRequest +- **Api:** 4 requests. SaveAdminNotificationSubjectsRequest, IndexAdminProgressRequest, SendTeacherSubmissionNotificationsRequest, SavePrintNotificationRecipientsRequest +- **Assignment:** 2 requests. StoreAssignmentRequest, StoreStudentAssignmentRequest +- **Attendance:** 7 requests. SaveStaffAttendanceCellRequest, UpdateAttendanceManagementRequest, LateSlipLogIndexRequest, TeacherSubmitAttendanceRequest, SaveAdminAttendanceRequest, TeacherUpdateGridRequest, AdminAddAttendanceEntryRequest +- **AttendanceCommentTemplate:** 2 requests. StoreAttendanceCommentTemplateRequest, UpdateAttendanceCommentTemplateRequest +- **AttendanceTracking:** 5 requests. RecordAttendanceTrackingRequest, ComposeAttendanceEmailRequest, SendAttendanceManualEmailRequest, ParentsInfoRequest, SaveAttendanceNotificationNoteRequest +- **Auth:** 3 requests. RegisterRequest, SetRoleSessionRequest, LoginSessionRequest +- **Badges:** 3 requests. BadgePrintStatusRequest, GenerateBadgePdfRequest, LogBadgePrintRequest +- **ClassPreparation:** 4 requests. ClassPreparationMarkPrintedRequest, ClassPreparationPrintRequest, ClassPreparationIndexRequest, ClassPreparationAdjustmentRequest +- **ClassProgress:** 5 requests. ClassProgressStoreRequest, ClassProgressMetaRequest, ClassProgressIndexRequest, ClassProgressFormRequest, ClassProgressUpdateRequest +- **Classes:** 3 requests. ClassSectionUpdateRequest, ClassSectionStoreRequest, ClassSectionIndexRequest +- **Discounts:** 3 requests. UpdateDiscountVoucherRequest, ApplyDiscountVoucherRequest, StoreDiscountVoucherRequest +- **Email:** 2 requests. EmailExtractorCompareRequest, EmailSendRequest +- **EmergencyContacts:** 2 requests. EmergencyContactParentRequest, EmergencyContactUpdateRequest +- **Events:** 6 requests. EventIndexRequest, EventUpdateRequest, EventStoreRequest, EventStudentsWithChargesRequest, EventChargeUpdateRequest, EventChargeIndexRequest +- **Exams:** 3 requests. ExamDraftTeacherStoreRequest, ExamDraftAdminLegacyRequest, ExamDraftAdminReviewRequest +- **Expenses:** 3 requests. UpdateExpenseRequest, StoreExpenseRequest, UpdateExpenseStatusRequest +- **ExtraCharges:** 2 requests. UpdateExtraChargeRequest, StoreExtraChargeRequest +- **Families:** 14 requests. FamilyImportLegacyRequest, FamilyUnlinkStudentRequest, FamilySetPrimaryHomeRequest, FamilyAdminCardRequest, FamiliesByStudentRequest, FamilyBootstrapRequest, FamilyAttachSecondByEmailRequest, FamilyAdminSearchRequest, FamilySetGuardianFlagsRequest, FamilyAdminIndexRequest, FamilyComposeEmailRequest, FamilyUnlinkGuardianRequest, GuardiansByFamilyRequest, FamilyAttachSecondByUserRequest +- **Fees:** 2 requests. FeeTuitionTotalRequest, FeeRefundRequest +- **Files:** 1 requests. FileNameRequest +- **Finance:** 12 requests. FinancialUnpaidParentsRequest, FeeTuitionTotalRequest, ChargeListRequest, FinancialReportRequest, FinancialSummaryRequest, MarkEventChargePaidRequest, FeeTuitionBreakdownRequest, StoreExtraChargeRequest, StoreEventChargeRequest, FeeFamilyBalanceRequest, ApplyExtraChargeRequest, FeeRefundRequest +- **Frontend:** 2 requests. LandingTeacherRequest, ContactSubmitRequest +- **Grading:** 18 requests. BelowSixtyListRequest, BelowSixtySendRequest, GradingLockAllRequest, BelowSixtyMeetingRequest, PlacementLevelsRequest, GradingRefreshRequest, GradingScoreShowRequest, HomeworkTrackingRequest, GradingScoreUpdateRequest, PlacementRequest, PlacementBatchUpdateRequest, BelowSixtyEmailRequest, BelowSixtyStatusRequest, PlacementBatchRequest, GradingLockRequest, PlacementLevelRequest, BelowSixtyMeetingSaveRequest, GradingOverviewRequest +- **Incidents:** 5 requests. IncidentCancelRequest, IncidentCloseRequest, IncidentStoreRequest, IncidentListRequest, IncidentStateRequest +- **Inventory:** 19 requests. InventoryItemIndexRequest, SupplierUpdateRequest, InventoryCategoryStoreRequest, InventoryTeacherDistributionRequest, InventoryItemUpdateRequest, InventoryItemStoreRequest, InventoryTeacherDistributionStoreRequest, InventoryCategoryUpdateRequest, SupplyCategoryStoreRequest, InventoryCategoryIndexRequest, InventoryAdjustRequest, InventoryAuditRequest, SupplierIndexRequest, InventoryMovementIndexRequest, InventoryMovementBulkDeleteRequest, SupplierStoreRequest, InventoryMovementUpdateRequest, InventoryMovementStoreRequest ... +- **Invoices:** 4 requests. InvoiceStatusRequest, InvoiceManagementRequest, InvoiceParentRequest, InvoiceGenerateRequest +- **Messaging:** 3 requests. MessageSendRequest, MessageIndexRequest, MessageUpdateRequest +- **Notifications:** 5 requests. NotificationSendRequest, NotificationActiveRequest, NotificationDeletedRequest, NotificationUpdateRequest, NotificationIndexRequest +- **Parents:** 16 requests. ParentAttendanceReportUpdateRequest, ParentAttendanceReportListRequest, ParentAttendanceReportSubmitRequest, ParentEmergencyContactRequest, UpdateAuthorizedUserRequest, ParentAttendanceReportCheckRequest, ParentProfileUpdateRequest, ParentInvoiceRequest, ParentEnrollmentRequest, SignParentReportCardRequest, ParentAttendanceRequest, StoreAuthorizedUserRequest, ParentStudentUpdateRequest, ParentEventParticipationRequest, ParentEnrollmentActionRequest, ParentRegistrationRequest +- **Payments:** 15 requests. PaymentManualSearchRequest, PaymentEventChargesListRequest, PaymentNotificationSendRequest, PaymentNotificationListRequest, PaymentCreateRequest, PaypalTransactionsListRequest, PaymentManualEditRequest, PaymentEventChargesStoreRequest, PaymentUpdateBalanceRequest, PaymentManualUpdateRequest, PaymentManualSuggestRequest, PaypalExecuteRequest, PaymentByParentRequest, PaymentTransactionStatusRequest, PaymentTransactionCreateRequest +- **Preferences:** 2 requests. PreferencesIndexRequest, PreferencesUpsertRequest +- **Promotions:** 8 requests. SendReminderRequest, ParentPromotionOverviewRequest, AdminListPromotionsRequest, EvaluateEligibilityRequest, UpdatePromotionStatusRequest, ParentEnrollmentStepRequest, SetEnrollmentDeadlineRequest, UpsertLevelProgressionRequest +- **PurchaseOrders:** 3 requests. PurchaseOrderIndexRequest, PurchaseOrderStoreRequest, PurchaseOrderReceiveRequest +- **Refunds:** 6 requests. RefundStoreRequest, RefundPaymentRequest, RefundDecisionRequest, RefundRecalculateRequest, RefundIndexRequest, RefundRejectRequest +- **Reimbursements:** 13 requests. ReimbursementBatchAdminFileRequest, ReimbursementUpdateRequest, ReimbursementBatchCreateRequest, ReimbursementBatchEmailRequest, ReimbursementProcessRequest, ReimbursementExportBatchRequest, ReimbursementIndexRequest, ReimbursementExportRequest, ReimbursementMarkDonationRequest, ReimbursementBatchAssignmentRequest, ReimbursementStoreRequest, ReimbursementBatchLockRequest, ReimbursementUnderProcessingRequest +- **Reports:** 11 requests. SlipPreviewRequest, SlipLogListRequest, SlipPrintRequest, SlipReprintRequest, StickerStudentsByClassRequest, StickerPrintRequest, StickerFormDataRequest, ReportCardCompletenessRequest, ReportCardPdfRequest, ReportCardAcknowledgementRequest, ReportCardMetaRequest +- **Roles:** 9 requests. AssignUserRolesRequest, RolePermissionUpdateRequest, UserRoleListRequest, PermissionUpdateRequest, PermissionStoreRequest, RoleSwitchRequest, RoleStoreRequest, RoleUpdateRequest, RoleListRequest +- **Root:** 1 requests. ApiFormRequest +- **SchoolIds:** 1 requests. SchoolIdAssignRequest +- **Scores:** 10 requests. ScoreCommentSaveRequest, ScorePredictorRequest, ScoreLockRequest, ScoreUpdateRequest, ScoreOverviewRequest, ScoreStudentRequest, ScoreCommentListRequest, ScoreClassRequest, ScoreCommentUpdateRequest, ScoreAddColumnRequest +- **Security:** 3 requests. IpBanIndexRequest, IpUnbanRequest, IpBanRequest +- **Semesters:** 4 requests. SchoolYearRangeRequest, SemesterResolveRequest, SemesterNormalizeRequest, SemesterRangeRequest +- **Settings:** 8 requests. SchoolCalendarStoreRequest, ConfigurationStoreRequest, SettingsUpdateRequest, SchoolCalendarIndexRequest, ConfigurationUpdateRequest, SchoolCalendarUpdateRequest, PolicyShowRequest, SchoolCalendarOptionsRequest +- **Staff:** 3 requests. StaffIndexRequest, StaffUpdateRequest, StaffStoreRequest +- **Students:** 7 requests. StudentRemoveClassRequest, StudentUpdateRequest, StudentAssignClassRequest, StudentSetActiveRequest, StudentPromotionTotalsRequest, StudentAssignmentListRequest, StudentAutoDistributeRequest +- **Subjects:** 2 requests. SubjectCurriculumUpdateRequest, SubjectCurriculumStoreRequest +- **Support:** 3 requests. SupportRequestStoreRequest, SupportRequestIndexRequest, ContactSendRequest +- **System:** 2 requests. NavItemStoreRequest, NavItemReorderRequest +- **Teachers:** 6 requests. TeacherClassViewRequest, TeacherAbsenceSubmitRequest, TeacherAssignmentDeleteRequest, TeacherAssignmentStoreRequest, TeacherAssignmentListRequest, TeacherSwitchClassRequest +- **Ui:** 1 requests. UiStyleRequest +- **Users:** 4 requests. UserStoreRequest, UserListRequest, UserUpdateRequest, LoginActivityRequest +- **Utilities:** 1 requests. PhoneFormatRequest +- **Whatsapp:** 7 requests. WhatsappLinkIndexRequest, WhatsappMembershipUpdateRequest, WhatsappLinkStoreRequest, WhatsappLinkUpdateRequest, WhatsappParentContactsRequest, WhatsappParentContactsByClassRequest, WhatsappInviteSendRequest + +## Appendix D: Resource Groups + +- **Admin:** 5 resources. PrintRecipientsResource, TeacherSubmissionReportResource, AdminNotificationAlertsResource, ProgressGroupResource, ProgressReportDetailResource +- **Assignment:** 2 resources. AssignmentOverviewResource, AssignmentSectionResource +- **Attendance:** 7 resources. DailyAttendanceResource, AdminAttendanceResource, LateSlipLogCollection, LateSlipLogResource, TeacherGridResource, StaffMonthResource, TeacherAttendanceFormResource +- **Auth:** 1 resources. RegisterResource +- **ClassPreparation:** 2 resources. ClassPreparationPrintResource, ClassPreparationResultResource +- **ClassProgress:** 4 resources. ClassProgressGroupCollection, ClassProgressAttachmentResource, ClassProgressShowResource, ClassProgressReportResource +- **Classes:** 4 resources. ClassSectionCollection, ClassSectionResource, ClassAttendanceResource, ClassAttendanceStudentResource +- **Discounts:** 2 resources. DiscountVoucherResource, DiscountParentResource +- **Email:** 3 resources. EmailSenderResource, EmailExtractorEmailsResource, EmailExtractorCompareResource +- **EmergencyContacts:** 3 resources. EmergencyContactGroupResource, EmergencyContactStudentResource, EmergencyContactResource +- **Events:** 3 resources. EventChargeResource, EventResource, EventStudentChargeResource +- **Exams:** 1 resources. ExamDraftResource +- **Expenses:** 2 resources. ExpenseResource, ExpenseStaffResource +- **ExtraCharges:** 3 resources. ExtraChargeInvoiceOptionResource, ExtraChargeResource, ExtraChargeParentOptionResource +- **Families:** 7 resources. FamilyPaymentResource, FamilyInvoiceResource, FamilySearchItemResource, FamilyResource, FamilyGuardianResource, FamilyStudentResource, FamilyEmergencyContactResource +- **Fees:** 6 resources. FeeRefundResource, FeeFamilyBalanceResource, ChargeActionResource, ChargeListResource, FeeTuitionBreakdownResource, FeeTuitionTotalResource +- **Files:** 1 resources. FileMetaResource +- **Finance:** 9 resources. FinancialReportResource, FinancialSummaryResource, FinancialExpenseSummaryResource, FinancialInvoiceResource, FinancialPaymentResource, FinancialRefundResource, FinancialUnpaidParentResource, FinancialDiscountResource, FinancialReimbursementSummaryResource +- **Frontend:** 6 resources. LandingPageResource, ContactSubmissionResource, FrontendPageResource, FrontendUserResource, ProfileIconResource, PageContentResource +- **Grading:** 3 resources. BelowSixtyStudentResource, GradingScoreResource, HomeworkTrackingTeacherResource +- **Incidents:** 4 resources. IncidentStudentOptionResource, IncidentAnalysisStudentResource, IncidentResource, IncidentGradeResource +- **Inventory:** 5 resources. InventoryItemResource, InventoryCategoryResource, InventoryMovementResource, SupplierResource, SupplyCategoryResource +- **Invoices:** 2 resources. InvoiceManagementParentResource, InvoiceResource +- **Messaging:** 3 resources. MessageResource, MessageCollection, RecipientResource +- **Notifications:** 2 resources. UserNotificationResource, NotificationResource +- **Parents:** 4 resources. ParentEmergencyContactResource, ParentAttendanceReportResource, ParentStudentResource, ParentAttendanceResource +- **Payments:** 4 resources. PaymentNotificationLogResource, PaymentTransactionResource, PaypalTransactionResource, PaymentResource +- **Preferences:** 3 resources. PreferencesListResource, PreferencesCollection, PreferencesResource +- **Promotions:** 4 resources. LevelProgressionResource, PromotionAuditLogResource, PromotionReminderResource, StudentPromotionResource +- **PurchaseOrders:** 2 resources. PurchaseOrderResource, PurchaseOrderItemResource +- **Refunds:** 1 resources. RefundResource +- **Reimbursements:** 5 resources. ReimbursementRecipientResource, ReimbursementExpenseResource, ReimbursementBatchResource, ReimbursementResource, ReimbursementUnderProcessingItemResource +- **Reports:** 8 resources. LateSlipLogResource, StickerStudentResource, StickerPresetResource, StickerClassSectionResource, ReportCardStudentMetaResource, ReportCardAcknowledgementResource, ReportCardClassSectionResource, ReportCardCompletenessStudentResource +- **Roles:** 4 resources. RolePermissionResource, RoleResource, UserWithRolesResource, PermissionResource +- **Root:** 1 resources. TeacherSubmissionRowResource +- **SchoolIds:** 1 resources. SchoolIdResource +- **Scores:** 3 resources. ScorePredictorStudentResource, ScoreCommentResource, ScoreStudentResource +- **Security:** 2 resources. IpBanCollection, IpBanResource +- **Semesters:** 2 resources. SemesterResolveResource, SemesterRangeResource +- **Settings:** 5 resources. PolicyResource, SchoolCalendarEventResource, SettingsResource, ConfigurationResource, SchoolCalendarEventDetailResource +- **Staff:** 2 resources. StaffCollection, StaffResource +- **Students:** 4 resources. StudentAssignmentResource, StudentRemovedResource, StudentClassSectionResource, StudentScoreCardRowResource +- **Subjects:** 2 resources. SubjectCurriculumResource, SubjectClassResource +- **Support:** 3 resources. ContactMessageResource, SupportRequestResource, SupportRequestCollection +- **System:** 4 resources. DashboardRouteResource, NavItemResource, HealthStatusResource, NavBuilderDataResource +- **Teachers:** 4 resources. TeacherAbsenceResource, TeacherStudentResource, TeacherClassResource, TeacherAssignmentResource +- **Ui:** 1 resources. UiStyleResource +- **Users:** 2 resources. LoginActivityResource, UserWithRolesResource +- **Utilities:** 1 resources. PhoneFormatResource +- **Whatsapp:** 5 resources. WhatsappParentContactResource, WhatsappGroupLinkResource, WhatsappClassSectionParentResource, WhatsappGroupLinkCollection, WhatsappClassSectionContactResource + +## Appendix E: Notable Review Queues + +### Raw SQL review queue + +- `app/Services/Finance/FinancialSummaryService.php`: 28 matches +- `app/Services/Grading/GradingOverviewService.php`: 11 matches +- `app/Services/Finance/FinancialReportService.php`: 10 matches +- `app/Models/User.php`: 7 matches +- `app/Models/AttendanceData.php`: 6 matches +- `app/Services/Refunds/RefundOverpaymentService.php`: 6 matches +- `app/Services/Reports/ReportCards/ReportCardService.php`: 6 matches +- `app/Services/AttendanceTracking/ViolationRuleEngineService.php`: 5 matches +- `app/Services/AttendanceTracking/AttendanceCaseQueryService.php`: 4 matches +- `app/Services/Grading/GradingBelowSixtyService.php`: 4 matches +- `app/Services/Grading/HomeworkTrackingService.php`: 4 matches +- `app/Models/Payment.php`: 3 matches +- `app/Services/Attendance/AttendanceQueryService.php`: 3 matches +- `app/Services/Inventory/InventoryItemService.php`: 3 matches +- `app/Services/Inventory/InventoryMovementService.php`: 3 matches +- `app/Services/Payments/PaymentMissedCheckService.php`: 3 matches +- `app/Services/Scores/ScoreDashboardService.php`: 3 matches +- `app/Services/Scores/ScorePredictorDataService.php`: 3 matches +- `app/Models/Invoice.php`: 2 matches +- `app/Models/Role.php`: 2 matches +- `app/Models/TeacherClass.php`: 2 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersAdminService.php`: 2 matches +- `app/Services/Attendance/AttendanceDailySummaryService.php`: 2 matches +- `app/Services/AttendanceTracking/AttendancePendingViolationService.php`: 2 matches +- `app/Services/Families/FamilyQueryService.php`: 2 matches +- `app/Services/Finance/FinancialPaymentService.php`: 2 matches +- `app/Services/Promotions/PromotionQueryService.php`: 2 matches +- `app/Services/Refunds/RefundPayoutService.php`: 2 matches +- `app/Services/Refunds/RefundQueryService.php`: 2 matches +- `app/Services/Staff/StaffQueryService.php`: 2 matches +- `app/Services/Whatsapp/WhatsappInviteBundleService.php`: 2 matches +- `app/Models/AdditionalCharge.php`: 1 matches +- `app/Models/AttendanceRecord.php`: 1 matches +- `app/Models/AttendanceTracking.php`: 1 matches +- `app/Models/Project.php`: 1 matches +- `app/Models/RoleNavItem.php`: 1 matches +- `app/Models/StaffAttendance.php`: 1 matches +- `app/Models/StudentAllergy.php`: 1 matches +- `app/Models/StudentMedicalCondition.php`: 1 matches +- `app/Models/WhatsappGroupMembership.php`: 1 matches +- ... 19 more files + +### Direct request access review queue + +- `app/Http/Controllers/Api/AttendanceTracking/AttendanceTrackingController.php`: 16 matches +- `app/Http/Controllers/Api/Attendance/AttendanceCommentTemplateController.php`: 15 matches +- `app/Http/Controllers/Api/Communication/CommunicationController.php`: 12 matches +- `app/Http/Controllers/Api/Badges/BadgeController.php`: 9 matches +- `app/Http/Controllers/Api/Email/BroadcastEmailController.php`: 9 matches +- `app/Http/Controllers/Api/ExtraCharges/ExtraChargesController.php`: 9 matches +- `app/Http/Controllers/Api/Students/StudentController.php`: 9 matches +- `app/Http/Controllers/Api/Attendance/StaffAttendanceApiController.php`: 8 matches +- `app/Http/Controllers/Api/Attendance/EarlyDismissalsController.php`: 7 matches +- `app/Http/Controllers/Api/ClassPreparation/ClassPreparationController.php`: 7 matches +- `app/Http/Controllers/Api/Attendance/TeacherAttendanceApiController.php`: 5 matches +- `app/Http/Controllers/Api/Certificates/CertificateController.php`: 5 matches +- `app/Http/Controllers/Api/Reports/ReportCardsController.php`: 5 matches +- `app/Http/Controllers/Api/CompetitionScores/CompetitionScoresController.php`: 4 matches +- `app/Http/Controllers/Api/Finance/ReimbursementController.php`: 4 matches +- `app/Http/Controllers/Api/PrintRequests/PrintRequestsController.php`: 4 matches +- `app/Http/Controllers/Api/Administrator/AdministratorEnrollmentController.php`: 3 matches +- `app/Http/Controllers/Api/Assignment/AssignmentApiController.php`: 3 matches +- `app/Http/Controllers/Api/Finance/InvoiceController.php`: 3 matches +- `app/Http/Controllers/Api/Finance/PaymentManualController.php`: 3 matches +- `app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php`: 3 matches +- `app/Http/Controllers/Api/Scores/ScoreCommentController.php`: 3 matches +- `app/Http/Controllers/Api/Scores/ScoreController.php`: 3 matches +- `app/Services/Administrator/AdministratorAbsenceService.php`: 3 matches +- `app/Http/Controllers/Api/Administrator/AdministratorNotificationController.php`: 2 matches +- `app/Http/Controllers/Api/Attendance/AdminAttendanceApiController.php`: 2 matches +- `app/Http/Controllers/Api/Auth/AuthSessionController.php`: 2 matches +- `app/Http/Controllers/Api/Auth/RegisterController.php`: 2 matches +- `app/Http/Controllers/Api/Classes/ClassController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PaymentController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PaymentTransactionController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PurchaseOrderController.php`: 2 matches +- `app/Http/Controllers/Api/Incidents/IncidentController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/FinalController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/HomeworkController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/MidtermController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/ParticipationController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/ProjectController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/QuizController.php`: 2 matches +- `app/Services/Administrator/TeacherSubmissionNotificationService.php`: 2 matches +- ... 10 more files + +### File operation review queue + +- `app/Services/Reimbursements/ReimbursementEmailService.php`: 5 matches +- `app/Http/Controllers/Api/Students/StudentController.php`: 3 matches +- `app/Services/Badges/BadgePdfService.php`: 3 matches +- `app/ThirdParty/fpdf/fpdf.php`: 3 matches +- `app/Http/Controllers/Api/ClassProgress/ClassProgressController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/ReimbursementController.php`: 2 matches +- `app/Services/Payments/PaymentManualService.php`: 2 matches +- `app/Services/PrintRequests/PrintRequestsPortalService.php`: 2 matches +- `app/Services/System/ConfigUpdateService.php`: 2 matches +- `app/Services/Whatsapp/WhatsappInviteEmailService.php`: 2 matches +- `app/Http/Controllers/Api/Attendance/EarlyDismissalsController.php`: 1 matches +- `app/Http/Controllers/Api/Finance/FinancialController.php`: 1 matches +- `app/Http/Controllers/Api/Finance/PaypalTransactionsController.php`: 1 matches +- `app/Http/Controllers/Api/PrintRequests/PrintRequestsController.php`: 1 matches +- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches +- `app/Services/Finance/FinancialChartService.php`: 1 matches +- `app/Services/Parents/ParentAttendanceReportService.php`: 1 matches +- `app/Services/Reimbursements/ReimbursementFileService.php`: 1 matches + +### Queue/dispatch review queue + +- `app/Services/Promotions/PromotionReminderService.php`: 2 matches +- `app/Console/Commands/DeleteUnverifiedUsersCommand.php`: 1 matches +- `app/Services/Administrator/AdministratorEnrollmentEventService.php`: 1 matches +- `app/Services/Grading/GradingBelowSixtyService.php`: 1 matches +- `app/Services/Notifications/NotificationTriggerService.php`: 1 matches +- `app/Services/Whatsapp/WhatsappInviteNotificationService.php`: 1 matches +- `app/Services/Whatsapp/WhatsappInviteService.php`: 1 matches + +### Legacy compatibility review queue + +- `app/Services/Parents/ParentAttendanceReportService.php`: 4 matches +- `app/Config/Database.php`: 3 matches +- `app/Helpers/ci_helpers.php`: 3 matches +- `app/Http/Controllers/Api/Attendance/AttendanceCommentTemplateController.php`: 3 matches +- `app/Http/Controllers/Api/Auth/RegisterController.php`: 3 matches +- `app/Http/Controllers/Api/BaseApiController.php`: 3 matches +- `app/Http/Controllers/Api/Core/BaseApiController.php`: 2 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersAdminService.php`: 2 matches +- `app/Services/AttendanceTracking/AttendanceTrackingService.php`: 2 matches +- `app/Services/Auth/ApiLoginSecurityService.php`: 2 matches +- `app/Services/Auth/CodeIgniterApiRegistrationService.php`: 2 matches +- `app/Services/Discounts/DiscountApplyService.php`: 2 matches +- `app/Services/ExtraCharges/ExtraChargesChargeService.php`: 2 matches +- `app/Services/Payments/PaymentManualService.php`: 2 matches +- `app/Http/Controllers/Api/Auth/AuthController.php`: 1 matches +- `app/Http/Controllers/Api/Auth/AuthSessionController.php`: 1 matches +- `app/Http/Controllers/Api/CiRequestAdapter.php`: 1 matches +- `app/Http/Controllers/Api/Core/CiRequestAdapter.php`: 1 matches +- `app/Http/Controllers/Api/System/HealthController.php`: 1 matches +- `app/Http/Controllers/Api/Utilities/ProofreadController.php`: 1 matches +- `app/Http/Middleware/EnsureClassProgressTeacherPortalAccess.php`: 1 matches +- `app/Http/Middleware/EnsureParentProgressAccess.php`: 1 matches +- `app/Http/Middleware/EnsurePrintRequestsAdminAccess.php`: 1 matches +- `app/Http/Middleware/EnsurePrintRequestsTeacherAccess.php`: 1 matches +- `app/Http/Middleware/TeacherPortalAuthenticate.php`: 1 matches +- `app/Http/Requests/Admin/SaveCompetitionScoresRequest.php`: 1 matches +- `app/Http/Requests/Admin/StoreCompetitionWinnerRequest.php`: 1 matches +- `app/Http/Requests/Admin/UpdateCompetitionWinnerRequest.php`: 1 matches +- `app/Models/CiDatabase.php`: 1 matches +- `app/Models/User.php`: 1 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersDomain.php`: 1 matches +- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches +- `app/Services/Auth/AuthSessionService.php`: 1 matches +- `app/Services/BadgeScan/BadgeScanService.php`: 1 matches +- `app/Services/Docs/DocsCatalogService.php`: 1 matches +- `app/Services/Parents/AuthorizedUsersManagementService.php`: 1 matches +- `app/Services/Parents/ParentProgressQueryService.php`: 1 matches +- `app/Services/Parents/ParentReportCardService.php`: 1 matches +- `app/Services/Parents/PrimaryParentUserResolver.php`: 1 matches +- `app/Services/PrintRequests/PrintRequestsPortalService.php`: 1 matches +- ... 1 more files diff --git a/docs/app_project_plan_hardened.md b/docs/app_project_plan_hardened.md new file mode 100644 index 00000000..fe8920e0 --- /dev/null +++ b/docs/app_project_plan_hardened.md @@ -0,0 +1,1903 @@ +# App Project Implementation Plan + +Generated: 2026-05-29 + +## 1. Scope and Readout + +This plan is based on the uploaded `app/` project slice. The zip contains the Laravel-style application layer, not the full repository. That means routes, migrations, config outside `app/`, composer metadata, tests, CI, frontend assets, and deployment files were not available unless embedded in this directory. So the plan avoids pretending the missing pieces magically exist, a level of honesty software planning could use more often. + +### Inventory + +- Real project files inspected: **1184** +- PHP files inspected: **1183** +- Approximate PHP LOC: **103,161** +- Controllers: **129** +- Models: **133** +- Services: **386** +- Form requests: **298** +- API resources: **167** +- Middleware: **12** +- Console commands: **14** +- Policies: **10** + + +## 2. Project Thesis + +The app is already organized around a service-heavy backend: controllers orchestrate, request classes validate, resources shape responses, and services carry domain logic. That is the right direction. The weak point is not that the code lacks structure. The weak point is that the project is broad enough for rules to drift across domains unless the boundaries are enforced deliberately. + +The plan should therefore optimize for correctness and regression safety, not cosmetic refactors. Refactoring without tests here would be performance art with a stack trace. + + + +## 3. Main Architecture Plan + +### Target shape + +- Controllers stay thin: authorize, validate, call one service action, return one resource/response. +- Services own business rules and transactions. +- Form requests own validation and request normalization. +- Resources own response shape and avoid leaking internal model structure. +- Policies/Gates own permission checks. +- Events/listeners own async or side-effect workflows, especially communications. +- Console commands remain operational entry points only, not hidden domain logic. + +### Non-negotiable rules + +- No money-changing action without an explicit transaction, audit trail, idempotency check, and test. +- No attendance, score, promotion, or enrollment mutation without actor tracking and date boundary tests. +- No file endpoint without MIME, size, storage path, authorization, and download-name tests. +- No communication endpoint without recipient preview, opt-out logic, deduplication, and send-log tests. +- No direct request parsing in controllers where a FormRequest already exists or should exist. +- No raw SQL without parameter binding review and a test proving the query behavior. + + +### Critical Implementation Review Queue + +These items override ordinary module cleanup. Do not spend time prettifying controllers while these can still leak data, corrupt money, or create irreversible school records. Charming architectural theater can wait. + +#### P0: Must review before feature work + +1. **Payment file access authorization** + - Replace filename-only download access with payment-id-based access. + - Load the payment/invoice/family context before resolving any file path. + - Authorize the current actor against the payment record, not against a guessed filename. + - Resolve the file path only from the stored payment record. + - Return `403` for unauthorized access and `404` for missing/unknown files. + - Required tests: finance/admin can download, unrelated parent cannot download, teacher cannot download, guessed filename cannot download, traversal-style filename fails. + +2. **Manual payment edit transaction safety** + - Wrap payment edit and invoice recalculation in one database transaction. + - Lock the payment row and linked invoice row with `lockForUpdate()` or equivalent. + - Recompute balance inside the lock. + - Reject edits that overpay, violate payment method rules, or create invalid invoice state. + - Store before/after audit details with actor ID. + - Required tests: concurrent edit, overpayment rejection, audit creation, invoice balance consistency. + +3. **Student school ID race condition** + - Remove pre-insert `max(id) + 1` generation. + - Create the student first inside a transaction. + - Generate `school_id` from the persisted student ID or a dedicated sequence. + - Add a unique database constraint on `students.school_id`. + - Add retry behavior for rare collisions. + - Required tests: two concurrent student creations cannot produce duplicate school IDs. + +4. **Scanner attendance transaction and idempotency** + - Split scanner orchestration out of the controller. + - Wrap all attendance mutations from one scan in a single transaction. + - Add an idempotency key based on badge/student/staff, scan date, station, and scan window. + - Prevent duplicate late slips, duplicate scan logs, and double attendance counts. + - Required tests: duplicate scan, late scan, staff scan, student scan, invalid badge, semester boundary. + +5. **Role and permission mutation authorization** + - Map every role/permission mutation route to a policy or gate. + - Add wrong-role and wrong-owner negative tests. + - Log actor, target, old role/permission state, and new state. + +6. **Bulk communication recipient safety** + - Require preview/dry-run before bulk send. + - Deduplicate recipients by canonical user/contact identity. + - Respect opt-out and communication preferences. + - Store send logs and failure states. + - Required tests: preview count matches send count, duplicate recipients collapse, opted-out recipients excluded. + +7. **Refund/payment/invoice audit completeness** + - Every mutation must record actor, target, amount, old state, new state, source endpoint/job, and idempotency key where applicable. + - Reports must reconcile against the same canonical ledger behavior as API reads. + +### Module Acceptance Standard + +A module is not considered hardened unless: + +- every public endpoint has a permission rule; +- every mutation has an audit actor; +- every money, date, file, or message operation has edge-case tests; +- every response shape is documented or represented by an API Resource; +- every side effect is logged; +- every async/send action has retry and dedupe behavior; +- every legacy fallback is documented, quarantined, or removed; +- every controller-level validator has either been moved to a FormRequest or explicitly marked as temporary legacy behavior. + + +## 4. Evidence-Based Risk Notes + +These are not accusations; they are where bugs usually crawl out wearing a tiny hat. + +- **Raw SQL / raw query usage:** 59 files, 166 matches. +- **Direct request input access:** 50 files, 194 matches. +- **File operation endpoints:** 18 files, 34 matches. +- **Email or messaging behavior:** 62 files, 192 matches. +- **Auth/Gate/authorization usage:** 325 files, 482 matches. +- **Explicit DB transactions:** 48 files, 72 matches. +- **CodeIgniter compatibility surface:** 41 files, 62 matches. +- **Queued or dispatched work:** 7 files, 8 matches. +- **Cache-dependent behavior:** 5 files, 12 matches. + + +Review priority should follow blast radius: auth, finance, payments, attendance, grading, promotions, messaging, files, then lower-risk CRUD. + + + +## 5. Delivery Phases + +### Phase 0: Baseline and Guardrails + +- Add a project map document describing module ownership, service boundaries, and route ownership. +- Add static analysis to CI: PHPStan or Larastan, Pint/PHP-CS-Fixer, and a dead-code detector if practical. +- Add a minimal smoke test suite covering auth, health checks, and one representative CRUD module. +- Create fixtures/factories for User, Student, Family, Enrollment, Invoice, Payment, AttendanceRecord, Score, and Staff. +- Freeze API response contracts for critical endpoints with JSON snapshot tests. + +### Phase 1: Security and Access Control + +- Inventory every controller method and map required role/permission/policy. +- Build an endpoint authorization matrix with actor role, resource type, ownership boundary, action, policy/gate/middleware, and required negative tests. +- Confirm every mutation endpoint uses authorization before business logic. +- Normalize role switching/session timeout behavior and log security-relevant events. +- Review IP ban, login attempts, password reset cleanup, registration captcha, and auth session flows. +- Add negative tests proving unauthorized roles cannot read or mutate cross-family, cross-student, cross-staff, payment, invoice, file, role, or message data. +- Treat “authenticated” as insufficient for any financial, student, attendance, role, file, or communication mutation. Logged in is not allowed; it is merely present, like a bug report with no reproduction steps. + +### Phase 2: Financial Correctness + +- Define canonical money rules: rounding, currency precision, refund state machine, invoice adjustment rules, and payment reconciliation. +- Decide whether money is stored as integer cents or strict fixed-decimal values; do not use floating-point arithmetic for persistent financial state. +- Wrap invoice/payment/refund/discount/reimbursement mutations in transactions and audit logs. +- Lock invoice/payment/refund rows during balance-changing edits. +- Add idempotency rules to PayPal sync, payment notifications, manual payments, refunds, and invoice generation. +- Replace filename-driven payment file access with record-driven, authorized access. +- Build reconciliation tests: invoice total = tuition + fees + event charges + extras - discounts - refunds - payments. +- Add report consistency tests so PDFs, dashboard totals, and API totals cannot disagree like three humans in a meeting. + +### Phase 3: Student Lifecycle Correctness + +- Model the lifecycle from registration/enrollment through attendance, grading, report cards, and promotion. +- Add date boundary tests for semesters, attendance windows, class assignment windows, grading locks, and promotion deadlines. +- Centralize student/family visibility checks. +- Make promotion eligibility deterministic and explainable through audit logs. +- Add regression tests for edge cases: missing scores, below-60 notifications, class transfers, inactive students, deleted/unverified users. + +### Phase 4: Communications Reliability + +- Standardize recipient resolution for Email, Messaging, Notifications, WhatsApp, and BroadcastEmail. +- Require preview/dry-run paths for bulk sends. +- Add send logs, dedupe keys, failure states, and retry strategy. +- Separate composition from delivery. +- Test opt-outs, guardian/family recipient selection, teacher/staff targeting, and notification cleanup. + +### Phase 5: Operations and Reporting + +- Review PDF generation paths for badges, certificates, finance reports, report cards, slips, stickers, and print requests. +- Validate all file downloads and upload paths. +- Add operational health endpoints for database, config, cleanup scheduler, and time-sensitive jobs. +- Add runbooks for cleanup commands, payment sync, attendance publishing, and notification dispatch. + +### Phase 6: Documentation and API Contracts + +- Generate OpenAPI output from route definitions, once routes are included. +- Document each module: owner, purpose, inputs, outputs, permissions, side effects, and failure modes. +- Document legacy compatibility areas explicitly, especially CodeIgniter adapters and helper shims. +- Add API examples for primary user flows: login, role switch, parent dashboard, attendance submission, invoice payment, grading submission. + + + +## 6. Module-by-Module Plan + +Each module gets the same discipline: define ownership, confirm validation, confirm authorization, isolate service logic, test happy paths and failures, document side effects. + + + +### Admin + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 3 requests, 5 resources. + +**Services:** CompetitionWinnersDomain, CompetitionWinnersAdminService +**Requests:** StoreCompetitionWinnerRequest, UpdateCompetitionWinnerRequest, SaveCompetitionScoresRequest +**Resources:** PrintRecipientsResource, TeacherSubmissionReportResource, AdminNotificationAlertsResource, ProgressGroupResource, ProgressReportDetailResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Administrator + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 8 controllers, 18 services, 5 requests, 0 resources. + +**Controllers:** AdministratorAbsenceController, AdministratorDashboardController, AdministratorEnrollmentController, AdministratorNotificationController, AdministratorPromotionController, AdministratorTeacherSubmissionController, EmergencyContactController, TeacherClassAssignmentController +**Services:** AdministratorUserSearchService, AdministratorAbsenceService, AdministratorDashboardService, AdministratorMetricsService, AdministratorEnrollmentStatusService, AdministratorEnrollmentEventService, AdministratorNotificationService, AdminNotificationSubjectService, TeacherSubmissionSupportService, AdministratorSharedService, TeacherSubmissionNotificationService, TeacherSubmissionReportService ... +**Requests:** SavePrintRecipientsRequest, SaveAdminNotificationSubjectsRequest, SubmitAdministratorAbsenceRequest, UpdateEnrollmentStatusesRequest, SendTeacherSubmissionNotificationsRequest +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Api + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 0 services, 4 requests, 0 resources. + +**Requests:** SaveAdminNotificationSubjectsRequest, IndexAdminProgressRequest, SendTeacherSubmissionNotificationsRequest, SavePrintNotificationRecipientsRequest +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### ApiRoot + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 7 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController +**Plan:** +- Quarantine legacy/root controllers and define canonical replacements for duplicate controller names. +- Split `ScannerController` into a FormRequest, scanner orchestration service, badge lookup service, student scan service, staff scan service, late-arrival service, scan logger, and response factory. +- Add transaction boundaries and idempotency around scanner attendance mutations. +- Define whether `BaseApiController`, `CiRequestAdapter`, root role controllers, and namespaced role controllers are canonical or shims. +- Ensure shim classes contain no business logic. +- Add feature tests for scanner flows, role switching, stats visibility, and user visibility. + +#### Scanner refactor acceptance criteria + +- One public scan endpoint delegates to one scanner service action. +- All scan input is validated through a dedicated FormRequest. +- A duplicate scan within the configured duplicate window does not double-count attendance or create duplicate late-slip records. +- Student and staff scan paths have separate service-level tests. +- Scan logs are written once per accepted mutation and include actor/station/source context. + +### Assignment + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 5 services, 2 requests, 2 resources. + +**Controllers:** AssignmentApiController +**Services:** AssignmentSectionService, AssignmentMetaService, AssignmentService, AssignmentContextService, AssignmentDataLoaderService +**Requests:** StoreAssignmentRequest, StoreStudentAssignmentRequest +**Resources:** AssignmentOverviewResource, AssignmentSectionResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Attendance + +**Priority:** P1 Student lifecycle +**Detected surface:** 6 controllers, 16 services, 7 requests, 7 resources. + +**Controllers:** AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController +**Services:** SemesterRangeService, TeacherAttendanceSubmissionService, AttendanceAutoPublishJobService, AttendanceAutoPublishService, LateSlipLogQueryService, AttendanceConsequenceService, AttendanceRecordSyncService, AttendanceDailySummaryService, AttendanceService, StudentAttendanceWriterService, LateSlipLogCommandService, AttendanceSummaryRebuildService ... +**Requests:** SaveStaffAttendanceCellRequest, UpdateAttendanceManagementRequest, LateSlipLogIndexRequest, TeacherSubmitAttendanceRequest, SaveAdminAttendanceRequest, TeacherUpdateGridRequest, AdminAddAttendanceEntryRequest +**Resources:** DailyAttendanceResource, AdminAttendanceResource, LateSlipLogCollection, LateSlipLogResource, TeacherGridResource, StaffMonthResource, TeacherAttendanceFormResource +**Plan:** +- Lock down date and semester boundary behavior before changing implementation. +- Test teacher/admin/parent visibility separately. +- Ensure auto-publish, notification, late slip, early dismissal, scanner scan, and violation rules are deterministic. +- Record who changed attendance, when, station/source context when relevant, and why. +- Move scan-driven attendance mutations into transactional services shared by scanner and attendance modules where appropriate. +- Add idempotency tests for repeated scanner submissions and repeated auto-publish attempts. + +### AttendanceCommentTemplate + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 0 services, 2 requests, 0 resources. + +**Requests:** StoreAttendanceCommentTemplateRequest, UpdateAttendanceCommentTemplateRequest +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### AttendanceTracking + +**Priority:** P1 Student lifecycle +**Detected surface:** 1 controllers, 12 services, 5 requests, 0 resources. + +**Controllers:** AttendanceTrackingController +**Services:** AttendanceNotificationLogService, AttendanceViolationStudentResolverService, AttendanceNotificationWorkflowService, AttendanceTrackingService, ViolationRuleEngineService, AttendanceMailerService, AttendanceParentLookupService, AttendanceCommunicationSupportService, AttendanceEmailComposerService, AttendancePendingViolationService, AttendanceCaseQueryService, DefaultAttendanceMailerService +**Requests:** RecordAttendanceTrackingRequest, ComposeAttendanceEmailRequest, SendAttendanceManualEmailRequest, ParentsInfoRequest, SaveAttendanceNotificationNoteRequest +**Plan:** +- Lock down date and semester boundary behavior before changing implementation. +- Test teacher/admin/parent visibility separately. +- Ensure auto-publish, notification, late slip, early dismissal, and violation rules are deterministic. +- Record who changed attendance, when, and why. + +### Auth + +**Priority:** P0 Security/Foundation +**Detected surface:** 7 controllers, 9 services, 3 requests, 1 resources. + +**Controllers:** AuthController, AuthSessionController, IpBanController, RegisterController, RolePermissionController, RoleSwitcherController, SessionTimeoutController +**Services:** RegistrationCaptchaService, PermissionCheckService, CodeIgniterApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService +**Requests:** RegisterRequest, SetRoleSessionRequest, LoginSessionRequest +**Resources:** RegisterResource +**Plan:** +- Map every endpoint to required auth state, role, and permission. +- Test login throttling, IP bans, password reset cleanup, session timeout, role switching, and registration captcha. +- Confirm security logs include actor, IP, user agent, outcome, and reason. +- Reject role changes that create privilege escalation or stale-session leaks. + +### BadgeScan + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** BadgeScanController +**Services:** BadgeScanService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Badges + +**Priority:** P2 Operations +**Detected surface:** 1 controllers, 7 services, 3 requests, 0 resources. + +**Controllers:** BadgeController +**Services:** BadgeTextFormatter, BadgeStudentLookupService, BadgeFormDataService, BadgePdfService, BadgeUserLookupService, BadgeService, BadgePrintLogService +**Requests:** BadgePrintStatusRequest, GenerateBadgePdfRequest, LogBadgePrintRequest +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Billing + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 0 requests, 0 resources. + +**Services:** BalanceCalculationService, BillingTotalsService, ChargeService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### BroadcastEmail + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 5 services, 0 requests, 0 resources. + +**Services:** BroadcastEmailComposerService, BroadcastEmailRecipientService, BroadcastEmailDispatchService, BroadcastEmailImageService, BroadcastEmailSenderOptionsService +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Certificates + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** CertificateController +**Services:** CertificatePdfService +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### ClassPrep + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 0 requests, 0 resources. + +**Services:** ClassRosterService, StickerCountService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### ClassPreparation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 9 services, 4 requests, 2 resources. + +**Controllers:** ClassPreparationController +**Services:** ClassPreparationAdjustmentWriterService, ClassPreparationCalculatorService, ClassPreparationLogService, ClassPreparationAdjustmentService, ClassPreparationContextService, ClassPreparationService, ClassPreparationPrintService, ClassPreparationRosterService, ClassPreparationInventoryService +**Requests:** ClassPreparationMarkPrintedRequest, ClassPreparationPrintRequest, ClassPreparationIndexRequest, ClassPreparationAdjustmentRequest +**Resources:** ClassPreparationPrintResource, ClassPreparationResultResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### ClassProgress + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 5 services, 5 requests, 4 resources. + +**Controllers:** ClassProgressController +**Services:** ClassProgressRuleService, ClassProgressAttachmentService, ClassProgressQueryService, ClassProgressMetaService, ClassProgressMutationService +**Requests:** ClassProgressStoreRequest, ClassProgressMetaRequest, ClassProgressIndexRequest, ClassProgressFormRequest, ClassProgressUpdateRequest +**Resources:** ClassProgressGroupCollection, ClassProgressAttachmentResource, ClassProgressShowResource, ClassProgressReportResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### ClassSections + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 0 requests, 0 resources. + +**Services:** ClassSectionCommandService, ClassAttendanceService, ClassSectionSeedService, ClassSectionQueryService +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Classes + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 0 services, 3 requests, 4 resources. + +**Controllers:** ClassController +**Requests:** ClassSectionUpdateRequest, ClassSectionStoreRequest, ClassSectionIndexRequest +**Resources:** ClassSectionCollection, ClassSectionResource, ClassAttendanceResource, ClassAttendanceStudentResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Communication + +**Priority:** P1 Communications +**Detected surface:** 1 controllers, 6 services, 0 requests, 0 resources. + +**Controllers:** CommunicationController +**Services:** CommunicationFamilyService, CommunicationSendService, CommunicationTemplateService, CommunicationPreviewService, CommunicationStudentService, CommunicationLogService +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### CompetitionScores + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 0 requests, 0 resources. + +**Controllers:** CompetitionScoresController +**Services:** CompetitionScoresRosterService, CompetitionScoresSaveService, CompetitionScoresContextService, CompetitionScoresQueryService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Core + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** BaseApiController, CiRequestAdapter +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Dashboard + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** DashboardRouteService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Discounts + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 5 services, 3 requests, 2 resources. + +**Controllers:** DiscountController +**Services:** DiscountParentService, DiscountApplyService, DiscountInvoiceService, DiscountVoucherService, DiscountContextService +**Requests:** UpdateDiscountVoucherRequest, ApplyDiscountVoucherRequest, StoreDiscountVoucherRequest +**Resources:** DiscountVoucherResource, DiscountParentResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Docs + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 0 requests, 0 resources. + +**Services:** DocsCatalogService, ApiDocsService, OpenApiRouteExporter +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Documentation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** ApiDocsAdminController, DocsCatalogController +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Email + +**Priority:** P1 Communications +**Detected surface:** 3 controllers, 5 services, 2 requests, 3 resources. + +**Controllers:** BroadcastEmailController, EmailController, EmailExtractorController +**Services:** EmailAttachmentService, EmailExtractorService, EmailProfileService, EmailDispatchService, EmailSenderOptionsService +**Requests:** EmailExtractorCompareRequest, EmailSendRequest +**Resources:** EmailSenderResource, EmailExtractorEmailsResource, EmailExtractorCompareResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### EmergencyContacts + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 2 requests, 3 resources. + +**Services:** EmergencyContactDirectoryService, EmergencyContactCrudService +**Requests:** EmergencyContactParentRequest, EmergencyContactUpdateRequest +**Resources:** EmergencyContactGroupResource, EmergencyContactStudentResource, EmergencyContactResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Events + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 6 services, 6 requests, 3 resources. + +**Services:** EventChargeService, EventStudentChargeService, EventCategoryService, EventListService, EventChargeQueryService, EventManagementService +**Requests:** EventIndexRequest, EventUpdateRequest, EventStoreRequest, EventStudentsWithChargesRequest, EventChargeUpdateRequest, EventChargeIndexRequest +**Resources:** EventChargeResource, EventResource, EventStudentChargeResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Exams + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 3 requests, 1 resources. + +**Controllers:** ExamDraftController +**Services:** ExamDraftTeacherService, ExamDraftAdminService, ExamDraftConfigService, ExamDraftFileService +**Requests:** ExamDraftTeacherStoreRequest, ExamDraftAdminLegacyRequest, ExamDraftAdminReviewRequest +**Resources:** ExamDraftResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Expenses + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 7 services, 3 requests, 2 resources. + +**Controllers:** ExpenseController +**Services:** ExpenseQueryService, ExpenseStaffService, ExpenseRetailorService, ExpenseReceiptService, ExpenseWriteService, ExpenseContextService, ExpenseStatusService +**Requests:** UpdateExpenseRequest, StoreExpenseRequest, UpdateExpenseStatusRequest +**Resources:** ExpenseResource, ExpenseStaffResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### ExtraCharges + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 6 services, 2 requests, 3 resources. + +**Controllers:** ExtraChargesController +**Services:** ExtraChargesMetaService, ExtraChargesInvoiceService, ExtraChargesParentService, ExtraChargesChargeService, ExtraChargesContextService, ExtraChargesListService +**Requests:** UpdateExtraChargeRequest, StoreExtraChargeRequest +**Resources:** ExtraChargeInvoiceOptionResource, ExtraChargeResource, ExtraChargeParentOptionResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Families + +**Priority:** P1 Student lifecycle +**Detected surface:** 0 controllers, 4 services, 14 requests, 7 resources. + +**Services:** FamilyNotificationService, FamilyFinanceService, FamilyMutationService, FamilyQueryService +**Requests:** FamilyImportLegacyRequest, FamilyUnlinkStudentRequest, FamilySetPrimaryHomeRequest, FamilyAdminCardRequest, FamiliesByStudentRequest, FamilyBootstrapRequest, FamilyAttachSecondByEmailRequest, FamilyAdminSearchRequest ... +**Resources:** FamilyPaymentResource, FamilyInvoiceResource, FamilySearchItemResource, FamilyResource, FamilyGuardianResource, FamilyStudentResource, FamilyEmergencyContactResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Family + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** FamilyAdminController, FamilyController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Fees + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 6 services, 2 requests, 6 resources. + +**Services:** FeeConfigService, TuitionCalculationService, FeeRefundCalculatorService, FeeGradeService, FeeRefundDetailService, FeeStudentFeeService +**Requests:** FeeTuitionTotalRequest, FeeRefundRequest +**Resources:** FeeRefundResource, FeeFamilyBalanceResource, ChargeActionResource, ChargeListResource, FeeTuitionBreakdownResource, FeeTuitionTotalResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Files + +**Priority:** P2 Operations +**Detected surface:** 0 controllers, 2 services, 1 requests, 1 resources. + +**Services:** FileServeService, ExamDraftDownloadNameService +**Requests:** FileNameRequest +**Resources:** FileMetaResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Finance + +**Priority:** P0 Financial correctness +**Detected surface:** 14 controllers, 8 services, 12 requests, 9 resources. + +**Controllers:** ChargeController, FeeCalculationController, FinancialController, InvoiceController, PaymentController, PaymentEventChargesController, PaymentManualController, PaymentNotificationController, PaymentTransactionController, PaypalPaymentController ... +**Services:** FinancialPdfReportService, FinancialSchoolYearService, FinancialPaymentService, FinancialReportService, FinancialSummaryService, FinancialChartService, FinancialDonationRecipientService, FinancialUnpaidParentsService +**Requests:** FinancialUnpaidParentsRequest, FeeTuitionTotalRequest, ChargeListRequest, FinancialReportRequest, FinancialSummaryRequest, MarkEventChargePaidRequest, FeeTuitionBreakdownRequest, StoreExtraChargeRequest ... +**Resources:** FinancialReportResource, FinancialSummaryResource, FinancialExpenseSummaryResource, FinancialInvoiceResource, FinancialPaymentResource, FinancialRefundResource, FinancialUnpaidParentResource, FinancialDiscountResource ... +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Harden payment file access before any broader finance refactor: no filename-only authorization, no arbitrary file resolution, no unaudited downloads. +- Lock affected invoice/payment/refund/reimbursement rows during edits and recalculations. +- Normalize all finance responses through resources so dashboards, APIs, reports, and PDFs do not compute separate truths, because apparently one truth was not complicated enough. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +#### Finance P0 acceptance criteria + +- Manual payment create/edit/delete and invoice recalculation run inside transactions. +- Payment edits create before/after audit records. +- Payment file downloads are authorized by payment/invoice ownership or finance role. +- Wrong-role and wrong-owner tests exist for invoices, payments, refunds, reimbursements, and downloadable files. +- All finance mutation tests assert final ledger/invoice balance, not just HTTP status. + +### Frontend + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 4 controllers, 9 services, 2 requests, 6 resources. + +**Controllers:** FrontendController, InfoIconController, LandingPageController, PageController +**Services:** LandingPageTeacherSummaryService, LandingPageRoleService, LandingPageParentDashboardService, LandingPageService, StaticPageService, FrontendPageService, ContactSubmissionService, LandingPageContextService, ProfileIconService +**Requests:** LandingTeacherRequest, ContactSubmitRequest +**Resources:** LandingPageResource, ContactSubmissionResource, FrontendPageResource, FrontendUserResource, ProfileIconResource, PageContentResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Grading + +**Priority:** P1 Student lifecycle +**Detected surface:** 2 controllers, 9 services, 18 requests, 3 resources. + +**Controllers:** GradingController, HomeworkTrackingController +**Services:** BelowSixtyEmailService, GradingLockService, GradingOverviewService, GradingPlacementService, HomeworkTrackingService, GradingScoreService, GradingBelowSixtyService, HomeworkTrackingCalendarService, GradingRefreshService +**Requests:** BelowSixtyListRequest, BelowSixtySendRequest, GradingLockAllRequest, BelowSixtyMeetingRequest, PlacementLevelsRequest, GradingRefreshRequest, GradingScoreShowRequest, HomeworkTrackingRequest ... +**Resources:** BelowSixtyStudentResource, GradingScoreResource, HomeworkTrackingTeacherResource +**Plan:** +- Centralize score formulas and missing-score behavior. +- Add golden test cases for semester score, quiz, homework, project, participation, final/midterm, and prediction risk calculations. +- Prove grading locks block writes but not allowed reads. +- Verify below-60 communication and parent visibility rules. + +### Incidents + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 5 requests, 4 resources. + +**Controllers:** IncidentController +**Services:** CurrentIncidentService, IncidentHistoryService, IncidentLookupService, IncidentAnalysisService +**Requests:** IncidentCancelRequest, IncidentCloseRequest, IncidentStoreRequest, IncidentListRequest, IncidentStateRequest +**Resources:** IncidentStudentOptionResource, IncidentAnalysisStudentResource, IncidentResource, IncidentGradeResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Inventory + +**Priority:** P2 Operations +**Detected surface:** 5 controllers, 8 services, 19 requests, 5 resources. + +**Controllers:** InventoryCategoryController, InventoryController, InventoryMovementController, SupplierController, SupplyCategoryController +**Services:** InventorySummaryService, InventoryCategoryService, InventoryItemService, InventoryContextService, SupplierService, InventoryMovementService, SupplyCategoryService, InventoryTeacherDistributionService +**Requests:** InventoryItemIndexRequest, SupplierUpdateRequest, InventoryCategoryStoreRequest, InventoryTeacherDistributionRequest, InventoryItemUpdateRequest, InventoryItemStoreRequest, InventoryTeacherDistributionStoreRequest, InventoryCategoryUpdateRequest ... +**Resources:** InventoryItemResource, InventoryCategoryResource, InventoryMovementResource, SupplierResource, SupplyCategoryResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Invoices + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 8 services, 4 requests, 2 resources. + +**Services:** InvoiceGradeService, InvoiceConfigService, InvoicePaymentService, InvoiceTuitionService, InvoiceManagementService, InvoicePdfService, InvoiceService, InvoiceGenerationService +**Requests:** InvoiceStatusRequest, InvoiceManagementRequest, InvoiceParentRequest, InvoiceGenerateRequest +**Resources:** InvoiceManagementParentResource, InvoiceResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Messaging + +**Priority:** P1 Communications +**Detected surface:** 2 controllers, 3 services, 3 requests, 3 resources. + +**Controllers:** MessagesController, WhatsappController +**Services:** MessageRecipientService, MessageCommandService, MessageQueryService +**Requests:** MessageSendRequest, MessageIndexRequest, MessageUpdateRequest +**Resources:** MessageResource, MessageCollection, RecipientResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Navigation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 0 requests, 0 resources. + +**Services:** NavBuilderService, NavbarService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### NonApi + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 3 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** Controller, DocsController, TeacherCalendarPageController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Notifications + +**Priority:** P1 Communications +**Detected surface:** 1 controllers, 12 services, 5 requests, 2 resources. + +**Controllers:** NotificationController +**Services:** NotificationDispatchService, NotificationRecipientService, NotificationShowService, NotificationManagementService, NotificationReadService, NotificationUserListService, NotificationCleanupService, UserNotificationDispatchService, NotificationTriggerService, NotificationSendService, NotificationActiveService, NotificationDeletedService +**Requests:** NotificationSendRequest, NotificationActiveRequest, NotificationDeletedRequest, NotificationUpdateRequest, NotificationIndexRequest +**Resources:** UserNotificationResource, NotificationResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Parents + +**Priority:** P1 Student lifecycle +**Detected surface:** 5 controllers, 14 services, 16 requests, 4 resources. + +**Controllers:** AuthorizedUserInviteController, AuthorizedUsersController, ParentAttendanceReportController, ParentController, ParentPromotionController +**Services:** ParentEventParticipationService, ParentRegistrationService, PrimaryParentUserResolver, ParentAttendanceReportCalendarService, ParentAttendanceService, AuthorizedUsersManagementService, ParentEnrollmentService, ParentInvoiceService, ParentProgressQueryService, ParentAttendanceReportService, ParentReportCardService, ParentConfigService ... +**Requests:** ParentAttendanceReportUpdateRequest, ParentAttendanceReportListRequest, ParentAttendanceReportSubmitRequest, ParentEmergencyContactRequest, UpdateAuthorizedUserRequest, ParentAttendanceReportCheckRequest, ParentProfileUpdateRequest, ParentInvoiceRequest ... +**Resources:** ParentEmergencyContactResource, ParentAttendanceReportResource, ParentStudentResource, ParentAttendanceResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Payments + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 14 services, 15 requests, 4 resources. + +**Services:** PaymentNotificationDispatchService, PaymentMissedCheckService, PaymentManualService, PaymentLookupService, PaymentTestNotificationService, PaypalPaymentSyncService, PaymentBalanceService, PaypalPaymentService, PaymentTransactionService, PaymentEnrollmentEventService, PaymentNotificationService, PaymentPlanService ... +**Requests:** PaymentManualSearchRequest, PaymentEventChargesListRequest, PaymentNotificationSendRequest, PaymentNotificationListRequest, PaymentCreateRequest, PaypalTransactionsListRequest, PaymentManualEditRequest, PaymentEventChargesStoreRequest ... +**Resources:** PaymentNotificationLogResource, PaymentTransactionResource, PaypalTransactionResource, PaymentResource +**Plan:** +- Define one source of truth for payment state transitions, balance calculations, file handling, and notification dispatch. +- Wrap manual payment edits and invoice recalculation in one transaction with row locks. +- Replace filename-only check-file downloads with payment-record-based downloads and authorization. +- Add idempotency keys for PayPal sync, notification dispatch, manual payment creation, and retry flows. +- Store audit trails for payment create/edit/delete, refund application, missed-check updates, and external transaction sync. +- Add reconciliation tests across API, reports, dashboards, and PDFs. + +#### PaymentManualService hardening checklist + +- `recordPayment()` and `editPayment()` use the same transaction/audit/recalculation rules. +- `serveCheckFile()` cannot be called with only a user-supplied filename; it must resolve files from a payment record. +- Upload validation covers extension, MIME, size, storage path, and scan-friendly safe names. +- Tests cover unrelated parent access, unrelated staff access, valid finance/admin access, guessed filename, missing file, and duplicate edit attempts. + +### Phone + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PhoneFormatterService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Policy + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PolicyContentService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Preferences + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 2 requests, 3 resources. + +**Services:** PreferencesCommandService, PreferencesQueryService, PreferencesOptionsService +**Requests:** PreferencesIndexRequest, PreferencesUpsertRequest +**Resources:** PreferencesListResource, PreferencesCollection, PreferencesResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### PrintRequests + +**Priority:** P2 Operations +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** PrintRequestsController +**Services:** PrintRequestsPortalService +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Promotions + +**Priority:** P1 Student lifecycle +**Detected surface:** 0 controllers, 7 services, 8 requests, 4 resources. + +**Services:** PromotionStatusService, PromotionEnrollmentService, PromotionReminderService, LevelProgressionService, PromotionAuditService, PromotionQueryService, PromotionEligibilityService +**Requests:** SendReminderRequest, ParentPromotionOverviewRequest, AdminListPromotionsRequest, EvaluateEligibilityRequest, UpdatePromotionStatusRequest, ParentEnrollmentStepRequest, SetEnrollmentDeadlineRequest, UpsertLevelProgressionRequest +**Resources:** LevelProgressionResource, PromotionAuditLogResource, PromotionReminderResource, StudentPromotionResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Public + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** PublicWinnersController +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### PublicWinners + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PublicWinnersPortalService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### PurchaseOrders + +**Priority:** P2 Operations +**Detected surface:** 0 controllers, 4 services, 3 requests, 2 resources. + +**Services:** PurchaseOrderStatusService, PurchaseOrderReceiveService, PurchaseOrderCreateService, PurchaseOrderQueryService +**Requests:** PurchaseOrderIndexRequest, PurchaseOrderStoreRequest, PurchaseOrderReceiveRequest +**Resources:** PurchaseOrderResource, PurchaseOrderItemResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Refunds + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 9 services, 6 requests, 1 resources. + +**Services:** RefundSummaryService, RefundInvoiceAdjustmentService, RefundPolicyService, RefundPayoutService, RefundRequestService, RefundQueryService, RefundOverpaymentService, RefundDecisionService, RefundNotificationService +**Requests:** RefundStoreRequest, RefundPaymentRequest, RefundDecisionRequest, RefundRecalculateRequest, RefundIndexRequest, RefundRejectRequest +**Resources:** RefundResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Reimbursements + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 11 services, 13 requests, 5 resources. + +**Services:** ReimbursementFileService, ReimbursementBatchAssignmentService, ReimbursementContextService, ReimbursementExportService, ReimbursementLookupService, ReimbursementEmailService, ReimbursementRecipientService, ReimbursementBatchService, ReimbursementQueryService, ReimbursementDonationService, ReimbursementCrudService +**Requests:** ReimbursementBatchAdminFileRequest, ReimbursementUpdateRequest, ReimbursementBatchCreateRequest, ReimbursementBatchEmailRequest, ReimbursementProcessRequest, ReimbursementExportBatchRequest, ReimbursementIndexRequest, ReimbursementExportRequest ... +**Resources:** ReimbursementRecipientResource, ReimbursementExpenseResource, ReimbursementBatchResource, ReimbursementResource, ReimbursementUnderProcessingItemResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Reports + +**Priority:** P2 Operations +**Detected surface:** 4 controllers, 9 services, 11 requests, 8 resources. + +**Controllers:** FilesController, ReportCardsController, SlipPrinterController, StickersController +**Services:** SlipPrinterFormatterService, SlipPrinterPdfService, SlipPrinterService, SlipPrinterConfigService, StickerPrintService, StickerPresetService, StickerQueryService, StickerContextService, ReportCardService +**Requests:** SlipPreviewRequest, SlipLogListRequest, SlipPrintRequest, SlipReprintRequest, StickerStudentsByClassRequest, StickerPrintRequest, StickerFormDataRequest, ReportCardCompletenessRequest ... +**Resources:** LateSlipLogResource, StickerStudentResource, StickerPresetResource, StickerClassSectionResource, ReportCardStudentMetaResource, ReportCardAcknowledgementResource, ReportCardClassSectionResource, ReportCardCompletenessStudentResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Roles + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 8 services, 9 requests, 4 resources. + +**Services:** RolePermissionService, RoleDashboardService, RoleCrudService, RoleAssignmentService, RoleSwitchService, RoleStaffService, PermissionCrudService, RoleQueryService +**Requests:** AssignUserRolesRequest, RolePermissionUpdateRequest, UserRoleListRequest, PermissionUpdateRequest, PermissionStoreRequest, RoleSwitchRequest, RoleStoreRequest, RoleUpdateRequest ... +**Resources:** RolePermissionResource, RoleResource, UserWithRolesResource, PermissionResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Root + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 8 services, 1 requests, 1 resources. + +**Services:** FeeCalculationService, SemesterRangeService, ApplicationUrlService, SchoolIdService, AssignmentService, AttendanceCommentTemplateService, PhoneFormatterService, EmailService +**Requests:** ApiFormRequest +**Resources:** TeacherSubmissionRowResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### School + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 0 requests, 0 resources. + +**Services:** AccountEventService, SemesterSelectionService, EnrollmentEventService, PaymentEventService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### SchoolIds + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 1 requests, 1 resources. + +**Services:** SchoolIdAssignmentService, SchoolIdGenerationService +**Requests:** SchoolIdAssignRequest +**Resources:** SchoolIdResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Scores + +**Priority:** P1 Student lifecycle +**Detected surface:** 9 controllers, 16 services, 10 requests, 3 resources. + +**Controllers:** FinalController, HomeworkController, MidtermController, ParticipationController, ProjectController, QuizController, ScoreCommentController, ScoreController, ScorePredictorController +**Services:** ParticipationScoreService, QuizCalculator, QuizScoreService, ScoreCommentService, ScoreDashboardService, HomeworkCalculator, SemesterScoreService, ScorePredictorRiskService, ProjectScoreService, HomeworkScoreService, ScoreTermService, ProjectCalculator ... +**Requests:** ScoreCommentSaveRequest, ScorePredictorRequest, ScoreLockRequest, ScoreUpdateRequest, ScoreOverviewRequest, ScoreStudentRequest, ScoreCommentListRequest, ScoreClassRequest ... +**Resources:** ScorePredictorStudentResource, ScoreCommentResource, ScoreStudentResource +**Plan:** +- Centralize score formulas and missing-score behavior. +- Add golden test cases for semester score, quiz, homework, project, participation, final/midterm, and prediction risk calculations. +- Prove grading locks block writes but not allowed reads. +- Verify below-60 communication and parent visibility rules. + +### Security + +**Priority:** P0 Security/Foundation +**Detected surface:** 0 controllers, 3 services, 3 requests, 2 resources. + +**Services:** IpBanCommandService, IpBanQueryService, Pbkdf2Hasher +**Requests:** IpBanIndexRequest, IpUnbanRequest, IpBanRequest +**Resources:** IpBanCollection, IpBanResource +**Plan:** +- Map every endpoint to required auth state, role, and permission. +- Test login throttling, IP bans, password reset cleanup, session timeout, role switching, and registration captcha. +- Confirm security logs include actor, IP, user agent, outcome, and reason. +- Reject role changes that create privilege escalation or stale-session leaks. + +### Semesters + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 4 requests, 2 resources. + +**Services:** SemesterConfigService +**Requests:** SchoolYearRangeRequest, SemesterResolveRequest, SemesterNormalizeRequest, SemesterRangeRequest +**Resources:** SemesterResolveResource, SemesterRangeResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Settings + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 6 controllers, 8 services, 8 requests, 5 resources. + +**Controllers:** ConfigurationAdminController, EventController, PolicyController, PreferencesController, SchoolCalendarController, SettingsController +**Services:** SettingsService, ConfigurationService, SchoolCalendarMutationService, SchoolCalendarNotificationService, SchoolCalendarContextService, SchoolCalendarQueryService, SchoolCalendarFormatterService, SchoolCalendarMeetingService +**Requests:** SchoolCalendarStoreRequest, ConfigurationStoreRequest, SettingsUpdateRequest, SchoolCalendarIndexRequest, ConfigurationUpdateRequest, SchoolCalendarUpdateRequest, PolicyShowRequest, SchoolCalendarOptionsRequest +**Resources:** PolicyResource, SchoolCalendarEventResource, SettingsResource, ConfigurationResource, SchoolCalendarEventDetailResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Staff + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 3 controllers, 3 services, 3 requests, 2 resources. + +**Controllers:** StaffController, TeacherController, TimeOffNotificationController +**Services:** StaffQueryService, StaffTimeOffLinkService, StaffCommandService +**Requests:** StaffIndexRequest, StaffUpdateRequest, StaffStoreRequest +**Resources:** StaffCollection, StaffResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Students + +**Priority:** P1 Student lifecycle +**Detected surface:** 1 controllers, 7 services, 7 requests, 4 resources. + +**Controllers:** StudentController +**Services:** StudentScoreCardService, StudentStatusService, StudentDirectoryService, StudentAutoDistributionService, StudentConfigService, StudentProfileService, StudentAssignmentService +**Requests:** StudentRemoveClassRequest, StudentUpdateRequest, StudentAssignClassRequest, StudentSetActiveRequest, StudentPromotionTotalsRequest, StudentAssignmentListRequest, StudentAutoDistributeRequest +**Resources:** StudentAssignmentResource, StudentRemovedResource, StudentClassSectionResource, StudentScoreCardRowResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Replace any `max(id) + 1` style school ID generation with persisted-ID or database-sequence-based generation. +- Add a unique database constraint on `students.school_id` and retry logic for rare collisions. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +#### Student creation acceptance criteria + +- Student creation runs in a transaction. +- School ID is generated only after the student has a persisted ID or from a dedicated sequence. +- Concurrent student creation cannot create duplicate school IDs. +- Parent/family/student visibility tests prove users cannot create, view, or mutate records outside their boundary. + +### Subjects + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 2 requests, 2 resources. + +**Controllers:** SubjectCurriculumController +**Services:** SubjectCurriculumService +**Requests:** SubjectCurriculumUpdateRequest, SubjectCurriculumStoreRequest +**Resources:** SubjectCurriculumResource, SubjectClassResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Support + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 2 services, 3 requests, 3 resources. + +**Controllers:** ContactController, SupportController +**Services:** SupportRequestService, ContactMessageService +**Requests:** SupportRequestStoreRequest, SupportRequestIndexRequest, ContactSendRequest +**Resources:** ContactMessageResource, SupportRequestResource, SupportRequestCollection +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### System + +**Priority:** P0 Security/Foundation +**Detected surface:** 9 controllers, 6 services, 2 requests, 4 resources. + +**Controllers:** AccessDeniedController, DashboardController, DashboardRedirectController, DatabaseHealthController, HealthController, NavBuilderController, SchoolIdController, SemesterRangeController, StatsController +**Services:** HealthCheckService, CleanupSchedulerService, GlobalConfigService, DatabaseHealthService, ConfigUpdateService, TimeService +**Requests:** NavItemStoreRequest, NavItemReorderRequest +**Resources:** DashboardRouteResource, NavItemResource, HealthStatusResource, NavBuilderDataResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Teachers + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 6 requests, 4 resources. + +**Services:** TeacherAbsenceService, TeacherDashboardService, TeacherConfigService, TeacherAssignmentService +**Requests:** TeacherClassViewRequest, TeacherAbsenceSubmitRequest, TeacherAssignmentDeleteRequest, TeacherAssignmentStoreRequest, TeacherAssignmentListRequest, TeacherSwitchClassRequest +**Resources:** TeacherAbsenceResource, TeacherStudentResource, TeacherClassResource, TeacherAssignmentResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Ui + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 1 requests, 1 resources. + +**Controllers:** UiController +**Services:** UiStyleService +**Requests:** UiStyleRequest +**Resources:** UiStyleResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Users + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 6 services, 4 requests, 2 resources. + +**Controllers:** UserController +**Services:** UserListService, LoginActivityService, InactiveUserCleanupService, UserManagementService, UserEventService, DeleteUnverifiedUserService +**Requests:** UserStoreRequest, UserListRequest, UserUpdateRequest, LoginActivityRequest +**Resources:** LoginActivityResource, UserWithRolesResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Utilities + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 1 requests, 1 resources. + +**Controllers:** PhoneFormatterController, ProofreadController +**Requests:** PhoneFormatRequest +**Resources:** PhoneFormatResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Whatsapp + +**Priority:** P1 Communications +**Detected surface:** 0 controllers, 8 services, 7 requests, 5 resources. + +**Services:** WhatsappContactService, WhatsappInviteService, WhatsappLinkService, WhatsappContextService, WhatsappInviteNotificationService, WhatsappMembershipService, WhatsappInviteBundleService, WhatsappInviteEmailService +**Requests:** WhatsappLinkIndexRequest, WhatsappMembershipUpdateRequest, WhatsappLinkStoreRequest, WhatsappLinkUpdateRequest, WhatsappParentContactsRequest, WhatsappParentContactsByClassRequest, WhatsappInviteSendRequest +**Resources:** WhatsappParentContactResource, WhatsappGroupLinkResource, WhatsappClassSectionParentResource, WhatsappGroupLinkCollection, WhatsappClassSectionContactResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + + +## 7. Cross-Cutting Test Matrix + +| Area | Minimum tests | Failure tests | Regression traps | +|---|---:|---:|---| +| Auth / Security | Login, refresh, logout, role switch, timeout | Invalid creds, banned IP, stale role, unauthorized role | Privilege escalation, session confusion | +| Finance / Payments | Invoice generation, manual payment, PayPal sync, refunds | Duplicate webhook, failed payment, partial refund | Balance mismatch, rounding drift | +| Attendance | Teacher submit, admin edit, parent report | Out-of-window edit, unauthorized class, duplicate submit | Semester boundary, timezone/date errors | +| Grading / Scores | Score calculations, locks, below-60 notification | Missing score, locked write, invalid class | Formula drift, notification spam | +| Students / Families | Profile, guardians, enrollments, authorized users | Cross-family read/write, inactive student | Orphan relationships | +| Communications | Preview, send, log, retry | Invalid recipient, opt-out, duplicate send | Bulk-send mistakes | +| Files / Reports | Upload, download, PDF generation | Bad MIME, oversize file, unauthorized file | Path traversal, stale report data | +| Inventory / Ops | Item movement, PO receive, print requests | Negative stock, duplicate receive | Count mismatch | + + +## 8. Refactor Rules + +- Do not start by renaming everything. That is not architecture; that is sweeping broken glass into a different corner. +- Start with tests around the highest-risk behavior, then refactor behind those tests. +- One module per pull request unless a shared contract demands otherwise. +- For each PR, include: risk summary, affected endpoints, permission impact, migration impact, rollback path, and test evidence. +- Any service over roughly 300 lines should be reviewed for split points, but line count alone is not a crime. Unclear responsibility is the crime. +- Any controller doing calculations, direct DB orchestration, or multi-step workflow should delegate to a service. +- Any duplicated request validation should be consolidated into shared rules or dedicated FormRequests. + +## 9. Immediate Next Work Queue + +Work in this order. Alphabetical cleanup is banned until P0 is closed, because alphabetical order has never once saved a ledger. + +1. Patch the plan into issue tickets for the seven P0 items in the Critical Implementation Review Queue. +2. Add route inventory from `routes/api.php` and `routes/web.php` once the full repo is available. +3. Produce an endpoint-permission matrix from routes + controllers + policies. +4. Write failing/covering tests for payment file access, manual payment edit transaction safety, student school ID concurrency, scanner idempotency, role mutation authorization, bulk communication recipient safety, and refund/payment/invoice auditing. +5. Implement finance/file authorization fixes before controller refactors. +6. Implement transaction/locking fixes for payments, invoices, refunds, and reimbursements. +7. Implement student school ID generation fix and database uniqueness constraint. +8. Extract scanner services and add duplicate-scan/idempotency behavior. +9. Add baseline feature tests for Auth, Finance/Payments, Attendance, Grading/Scores, Students/Families, and Communications. +10. Create factories and seed data for the core school domain. +11. Add OpenAPI generation to CI using the existing Docs/OpenAPI service surface. +12. Review raw SQL and direct request access matches before any large refactor. +13. Add idempotency and audit requirements to payment, invoice, refund, promotion, and messaging mutations. +14. Write runbooks for console commands and operational cleanup jobs. + +## 10. Definition of Done + +A module is not considered done until all of this is true: + +- All public endpoints have route docs and permission mapping. +- All inputs use FormRequests or clearly justified validation. +- All responses use Resources or documented response builders. +- All mutations are transactional where consistency matters. +- All side effects are logged and testable. +- All critical behavior has feature tests and at least one negative authorization test. +- All money/date/file/message behavior has edge-case tests. +- No endpoint relies on undocumented legacy behavior unless that behavior is explicitly preserved and tested. + +## Appendix A: Controller Groups + +- **Administrator:** 8 controllers. AdministratorAbsenceController, AdministratorDashboardController, AdministratorEnrollmentController, AdministratorNotificationController, AdministratorPromotionController, AdministratorTeacherSubmissionController, EmergencyContactController, TeacherClassAssignmentController +- **ApiRoot:** 7 controllers. BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController +- **Assignment:** 1 controllers. AssignmentApiController +- **Attendance:** 6 controllers. AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController +- **AttendanceTracking:** 1 controllers. AttendanceTrackingController +- **Auth:** 7 controllers. AuthController, AuthSessionController, IpBanController, RegisterController, RolePermissionController, RoleSwitcherController, SessionTimeoutController +- **BadgeScan:** 1 controllers. BadgeScanController +- **Badges:** 1 controllers. BadgeController +- **Certificates:** 1 controllers. CertificateController +- **ClassPreparation:** 1 controllers. ClassPreparationController +- **ClassProgress:** 1 controllers. ClassProgressController +- **Classes:** 1 controllers. ClassController +- **Communication:** 1 controllers. CommunicationController +- **CompetitionScores:** 1 controllers. CompetitionScoresController +- **Core:** 2 controllers. BaseApiController, CiRequestAdapter +- **Discounts:** 1 controllers. DiscountController +- **Documentation:** 2 controllers. ApiDocsAdminController, DocsCatalogController +- **Email:** 3 controllers. BroadcastEmailController, EmailController, EmailExtractorController +- **Exams:** 1 controllers. ExamDraftController +- **Expenses:** 1 controllers. ExpenseController +- **ExtraCharges:** 1 controllers. ExtraChargesController +- **Family:** 2 controllers. FamilyAdminController, FamilyController +- **Finance:** 14 controllers. ChargeController, FeeCalculationController, FinancialController, InvoiceController, PaymentController, PaymentEventChargesController, PaymentManualController, PaymentNotificationController, PaymentTransactionController, PaypalPaymentController, PaypalTransactionsController, PurchaseOrderController, RefundController, ReimbursementController +- **Frontend:** 4 controllers. FrontendController, InfoIconController, LandingPageController, PageController +- **Grading:** 2 controllers. GradingController, HomeworkTrackingController +- **Incidents:** 1 controllers. IncidentController +- **Inventory:** 5 controllers. InventoryCategoryController, InventoryController, InventoryMovementController, SupplierController, SupplyCategoryController +- **Messaging:** 2 controllers. MessagesController, WhatsappController +- **NonApi:** 3 controllers. Controller, DocsController, TeacherCalendarPageController +- **Notifications:** 1 controllers. NotificationController +- **Parents:** 5 controllers. AuthorizedUserInviteController, AuthorizedUsersController, ParentAttendanceReportController, ParentController, ParentPromotionController +- **PrintRequests:** 1 controllers. PrintRequestsController +- **Public:** 1 controllers. PublicWinnersController +- **Reports:** 4 controllers. FilesController, ReportCardsController, SlipPrinterController, StickersController +- **Scores:** 9 controllers. FinalController, HomeworkController, MidtermController, ParticipationController, ProjectController, QuizController, ScoreCommentController, ScoreController, ScorePredictorController +- **Settings:** 6 controllers. ConfigurationAdminController, EventController, PolicyController, PreferencesController, SchoolCalendarController, SettingsController +- **Staff:** 3 controllers. StaffController, TeacherController, TimeOffNotificationController +- **Students:** 1 controllers. StudentController +- **Subjects:** 1 controllers. SubjectCurriculumController +- **Support:** 2 controllers. ContactController, SupportController +- **System:** 9 controllers. AccessDeniedController, DashboardController, DashboardRedirectController, DatabaseHealthController, HealthController, NavBuilderController, SchoolIdController, SemesterRangeController, StatsController +- **Ui:** 1 controllers. UiController +- **Users:** 1 controllers. UserController +- **Utilities:** 2 controllers. PhoneFormatterController, ProofreadController + +## Appendix B: Service Groups + +- **Admin:** 2 services, 1,089 LOC. CompetitionWinnersDomain, CompetitionWinnersAdminService +- **Administrator:** 18 services, 2,196 LOC. AdministratorUserSearchService, AdministratorAbsenceService, AdministratorDashboardService, AdministratorMetricsService, AdministratorEnrollmentStatusService, AdministratorEnrollmentEventService, AdministratorNotificationService, AdminNotificationSubjectService, TeacherSubmissionSupportService, AdministratorSharedService, TeacherSubmissionNotificationService, TeacherSubmissionReportService, AdminNotificationUserService, AdministratorEnrollmentRefundService, AdminPrintRecipientService, AdministratorTeacherSubmissionService, AdministratorEnrollmentService, AdministratorEnrollmentQueryService +- **Assignment:** 5 services, 421 LOC. AssignmentSectionService, AssignmentMetaService, AssignmentService, AssignmentContextService, AssignmentDataLoaderService +- **Attendance:** 16 services, 3,241 LOC. SemesterRangeService, TeacherAttendanceSubmissionService, AttendanceAutoPublishJobService, AttendanceAutoPublishService, LateSlipLogQueryService, AttendanceConsequenceService, AttendanceRecordSyncService, AttendanceDailySummaryService, AttendanceService, StudentAttendanceWriterService, LateSlipLogCommandService, AttendanceSummaryRebuildService, StaffAttendanceService, AttendanceQueryService, AttendancePolicyService, AttendanceCommentService +- **AttendanceTracking:** 12 services, 2,979 LOC. AttendanceNotificationLogService, AttendanceViolationStudentResolverService, AttendanceNotificationWorkflowService, AttendanceTrackingService, ViolationRuleEngineService, AttendanceMailerService, AttendanceParentLookupService, AttendanceCommunicationSupportService, AttendanceEmailComposerService, AttendancePendingViolationService, AttendanceCaseQueryService, DefaultAttendanceMailerService +- **Auth:** 9 services, 870 LOC. RegistrationCaptchaService, PermissionCheckService, CodeIgniterApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService +- **BadgeScan:** 1 services, 108 LOC. BadgeScanService +- **Badges:** 7 services, 2,815 LOC. BadgeTextFormatter, BadgeStudentLookupService, BadgeFormDataService, BadgePdfService, BadgeUserLookupService, BadgeService, BadgePrintLogService +- **Billing:** 3 services, 751 LOC. BalanceCalculationService, BillingTotalsService, ChargeService +- **BroadcastEmail:** 5 services, 241 LOC. BroadcastEmailComposerService, BroadcastEmailRecipientService, BroadcastEmailDispatchService, BroadcastEmailImageService, BroadcastEmailSenderOptionsService +- **Certificates:** 1 services, 144 LOC. CertificatePdfService +- **ClassPrep:** 2 services, 205 LOC. ClassRosterService, StickerCountService +- **ClassPreparation:** 9 services, 653 LOC. ClassPreparationAdjustmentWriterService, ClassPreparationCalculatorService, ClassPreparationLogService, ClassPreparationAdjustmentService, ClassPreparationContextService, ClassPreparationService, ClassPreparationPrintService, ClassPreparationRosterService, ClassPreparationInventoryService +- **ClassProgress:** 5 services, 941 LOC. ClassProgressRuleService, ClassProgressAttachmentService, ClassProgressQueryService, ClassProgressMetaService, ClassProgressMutationService +- **ClassSections:** 4 services, 190 LOC. ClassSectionCommandService, ClassAttendanceService, ClassSectionSeedService, ClassSectionQueryService +- **Communication:** 6 services, 374 LOC. CommunicationFamilyService, CommunicationSendService, CommunicationTemplateService, CommunicationPreviewService, CommunicationStudentService, CommunicationLogService +- **CompetitionScores:** 4 services, 325 LOC. CompetitionScoresRosterService, CompetitionScoresSaveService, CompetitionScoresContextService, CompetitionScoresQueryService +- **Dashboard:** 1 services, 70 LOC. DashboardRouteService +- **Discounts:** 5 services, 792 LOC. DiscountParentService, DiscountApplyService, DiscountInvoiceService, DiscountVoucherService, DiscountContextService +- **Docs:** 3 services, 244 LOC. DocsCatalogService, ApiDocsService, OpenApiRouteExporter +- **Email:** 5 services, 395 LOC. EmailAttachmentService, EmailExtractorService, EmailProfileService, EmailDispatchService, EmailSenderOptionsService +- **EmergencyContacts:** 2 services, 142 LOC. EmergencyContactDirectoryService, EmergencyContactCrudService +- **Events:** 6 services, 496 LOC. EventChargeService, EventStudentChargeService, EventCategoryService, EventListService, EventChargeQueryService, EventManagementService +- **Exams:** 4 services, 532 LOC. ExamDraftTeacherService, ExamDraftAdminService, ExamDraftConfigService, ExamDraftFileService +- **Expenses:** 7 services, 231 LOC. ExpenseQueryService, ExpenseStaffService, ExpenseRetailorService, ExpenseReceiptService, ExpenseWriteService, ExpenseContextService, ExpenseStatusService +- **ExtraCharges:** 6 services, 475 LOC. ExtraChargesMetaService, ExtraChargesInvoiceService, ExtraChargesParentService, ExtraChargesChargeService, ExtraChargesContextService, ExtraChargesListService +- **Families:** 4 services, 827 LOC. FamilyNotificationService, FamilyFinanceService, FamilyMutationService, FamilyQueryService +- **Fees:** 6 services, 952 LOC. FeeConfigService, TuitionCalculationService, FeeRefundCalculatorService, FeeGradeService, FeeRefundDetailService, FeeStudentFeeService +- **Files:** 2 services, 159 LOC. FileServeService, ExamDraftDownloadNameService +- **Finance:** 8 services, 1,150 LOC. FinancialPdfReportService, FinancialSchoolYearService, FinancialPaymentService, FinancialReportService, FinancialSummaryService, FinancialChartService, FinancialDonationRecipientService, FinancialUnpaidParentsService +- **Frontend:** 9 services, 1,011 LOC. LandingPageTeacherSummaryService, LandingPageRoleService, LandingPageParentDashboardService, LandingPageService, StaticPageService, FrontendPageService, ContactSubmissionService, LandingPageContextService, ProfileIconService +- **Grading:** 9 services, 1,969 LOC. BelowSixtyEmailService, GradingLockService, GradingOverviewService, GradingPlacementService, HomeworkTrackingService, GradingScoreService, GradingBelowSixtyService, HomeworkTrackingCalendarService, GradingRefreshService +- **Incidents:** 4 services, 499 LOC. CurrentIncidentService, IncidentHistoryService, IncidentLookupService, IncidentAnalysisService +- **Inventory:** 8 services, 1,449 LOC. InventorySummaryService, InventoryCategoryService, InventoryItemService, InventoryContextService, SupplierService, InventoryMovementService, SupplyCategoryService, InventoryTeacherDistributionService +- **Invoices:** 8 services, 1,248 LOC. InvoiceGradeService, InvoiceConfigService, InvoicePaymentService, InvoiceTuitionService, InvoiceManagementService, InvoicePdfService, InvoiceService, InvoiceGenerationService +- **Messaging:** 3 services, 334 LOC. MessageRecipientService, MessageCommandService, MessageQueryService +- **Navigation:** 2 services, 273 LOC. NavBuilderService, NavbarService +- **Notifications:** 12 services, 451 LOC. NotificationDispatchService, NotificationRecipientService, NotificationShowService, NotificationManagementService, NotificationReadService, NotificationUserListService, NotificationCleanupService, UserNotificationDispatchService, NotificationTriggerService, NotificationSendService, NotificationActiveService, NotificationDeletedService +- **Parents:** 14 services, 2,306 LOC. ParentEventParticipationService, ParentRegistrationService, PrimaryParentUserResolver, ParentAttendanceReportCalendarService, ParentAttendanceService, AuthorizedUsersManagementService, ParentEnrollmentService, ParentInvoiceService, ParentProgressQueryService, ParentAttendanceReportService, ParentReportCardService, ParentConfigService, ParentProfileService, ParentEmergencyContactService +- **Payments:** 14 services, 2,096 LOC. PaymentNotificationDispatchService, PaymentMissedCheckService, PaymentManualService, PaymentLookupService, PaymentTestNotificationService, PaypalPaymentSyncService, PaymentBalanceService, PaypalPaymentService, PaymentTransactionService, PaymentEnrollmentEventService, PaymentNotificationService, PaymentPlanService, PaymentEventChargesService, PaypalTransactionsService +- **Phone:** 1 services, 23 LOC. PhoneFormatterService +- **Policy:** 1 services, 51 LOC. PolicyContentService +- **Preferences:** 3 services, 190 LOC. PreferencesCommandService, PreferencesQueryService, PreferencesOptionsService +- **PrintRequests:** 1 services, 558 LOC. PrintRequestsPortalService +- **Promotions:** 7 services, 1,740 LOC. PromotionStatusService, PromotionEnrollmentService, PromotionReminderService, LevelProgressionService, PromotionAuditService, PromotionQueryService, PromotionEligibilityService +- **PublicWinners:** 1 services, 115 LOC. PublicWinnersPortalService +- **PurchaseOrders:** 4 services, 252 LOC. PurchaseOrderStatusService, PurchaseOrderReceiveService, PurchaseOrderCreateService, PurchaseOrderQueryService +- **Refunds:** 9 services, 1,210 LOC. RefundSummaryService, RefundInvoiceAdjustmentService, RefundPolicyService, RefundPayoutService, RefundRequestService, RefundQueryService, RefundOverpaymentService, RefundDecisionService, RefundNotificationService +- **Reimbursements:** 11 services, 1,776 LOC. ReimbursementFileService, ReimbursementBatchAssignmentService, ReimbursementContextService, ReimbursementExportService, ReimbursementLookupService, ReimbursementEmailService, ReimbursementRecipientService, ReimbursementBatchService, ReimbursementQueryService, ReimbursementDonationService, ReimbursementCrudService +- **Reports:** 9 services, 2,445 LOC. SlipPrinterFormatterService, SlipPrinterPdfService, SlipPrinterService, SlipPrinterConfigService, StickerPrintService, StickerPresetService, StickerQueryService, StickerContextService, ReportCardService +- **Roles:** 8 services, 545 LOC. RolePermissionService, RoleDashboardService, RoleCrudService, RoleAssignmentService, RoleSwitchService, RoleStaffService, PermissionCrudService, RoleQueryService +- **Root:** 8 services, 550 LOC. FeeCalculationService, SemesterRangeService, ApplicationUrlService, SchoolIdService, AssignmentService, AttendanceCommentTemplateService, PhoneFormatterService, EmailService +- **School:** 4 services, 990 LOC. AccountEventService, SemesterSelectionService, EnrollmentEventService, PaymentEventService +- **SchoolIds:** 2 services, 41 LOC. SchoolIdAssignmentService, SchoolIdGenerationService +- **Scores:** 16 services, 2,846 LOC. ParticipationScoreService, QuizCalculator, QuizScoreService, ScoreCommentService, ScoreDashboardService, HomeworkCalculator, SemesterScoreService, ScorePredictorRiskService, ProjectScoreService, HomeworkScoreService, ScoreTermService, ProjectCalculator, ScorePredictorDataService, ScorePredictorService, ExamScoreService, AttendanceCalculator +- **Security:** 3 services, 171 LOC. IpBanCommandService, IpBanQueryService, Pbkdf2Hasher +- **Semesters:** 1 services, 42 LOC. SemesterConfigService +- **Settings:** 8 services, 656 LOC. SettingsService, ConfigurationService, SchoolCalendarMutationService, SchoolCalendarNotificationService, SchoolCalendarContextService, SchoolCalendarQueryService, SchoolCalendarFormatterService, SchoolCalendarMeetingService +- **Staff:** 3 services, 325 LOC. StaffQueryService, StaffTimeOffLinkService, StaffCommandService +- **Students:** 7 services, 1,254 LOC. StudentScoreCardService, StudentStatusService, StudentDirectoryService, StudentAutoDistributionService, StudentConfigService, StudentProfileService, StudentAssignmentService +- **Subjects:** 1 services, 80 LOC. SubjectCurriculumService +- **Support:** 2 services, 123 LOC. SupportRequestService, ContactMessageService +- **System:** 6 services, 353 LOC. HealthCheckService, CleanupSchedulerService, GlobalConfigService, DatabaseHealthService, ConfigUpdateService, TimeService +- **Teachers:** 4 services, 641 LOC. TeacherAbsenceService, TeacherDashboardService, TeacherConfigService, TeacherAssignmentService +- **Ui:** 1 services, 95 LOC. UiStyleService +- **Users:** 6 services, 647 LOC. UserListService, LoginActivityService, InactiveUserCleanupService, UserManagementService, UserEventService, DeleteUnverifiedUserService +- **Whatsapp:** 8 services, 1,407 LOC. WhatsappContactService, WhatsappInviteService, WhatsappLinkService, WhatsappContextService, WhatsappInviteNotificationService, WhatsappMembershipService, WhatsappInviteBundleService, WhatsappInviteEmailService + +## Appendix C: Request Groups + +- **Admin:** 3 requests. StoreCompetitionWinnerRequest, UpdateCompetitionWinnerRequest, SaveCompetitionScoresRequest +- **Administrator:** 5 requests. SavePrintRecipientsRequest, SaveAdminNotificationSubjectsRequest, SubmitAdministratorAbsenceRequest, UpdateEnrollmentStatusesRequest, SendTeacherSubmissionNotificationsRequest +- **Api:** 4 requests. SaveAdminNotificationSubjectsRequest, IndexAdminProgressRequest, SendTeacherSubmissionNotificationsRequest, SavePrintNotificationRecipientsRequest +- **Assignment:** 2 requests. StoreAssignmentRequest, StoreStudentAssignmentRequest +- **Attendance:** 7 requests. SaveStaffAttendanceCellRequest, UpdateAttendanceManagementRequest, LateSlipLogIndexRequest, TeacherSubmitAttendanceRequest, SaveAdminAttendanceRequest, TeacherUpdateGridRequest, AdminAddAttendanceEntryRequest +- **AttendanceCommentTemplate:** 2 requests. StoreAttendanceCommentTemplateRequest, UpdateAttendanceCommentTemplateRequest +- **AttendanceTracking:** 5 requests. RecordAttendanceTrackingRequest, ComposeAttendanceEmailRequest, SendAttendanceManualEmailRequest, ParentsInfoRequest, SaveAttendanceNotificationNoteRequest +- **Auth:** 3 requests. RegisterRequest, SetRoleSessionRequest, LoginSessionRequest +- **Badges:** 3 requests. BadgePrintStatusRequest, GenerateBadgePdfRequest, LogBadgePrintRequest +- **ClassPreparation:** 4 requests. ClassPreparationMarkPrintedRequest, ClassPreparationPrintRequest, ClassPreparationIndexRequest, ClassPreparationAdjustmentRequest +- **ClassProgress:** 5 requests. ClassProgressStoreRequest, ClassProgressMetaRequest, ClassProgressIndexRequest, ClassProgressFormRequest, ClassProgressUpdateRequest +- **Classes:** 3 requests. ClassSectionUpdateRequest, ClassSectionStoreRequest, ClassSectionIndexRequest +- **Discounts:** 3 requests. UpdateDiscountVoucherRequest, ApplyDiscountVoucherRequest, StoreDiscountVoucherRequest +- **Email:** 2 requests. EmailExtractorCompareRequest, EmailSendRequest +- **EmergencyContacts:** 2 requests. EmergencyContactParentRequest, EmergencyContactUpdateRequest +- **Events:** 6 requests. EventIndexRequest, EventUpdateRequest, EventStoreRequest, EventStudentsWithChargesRequest, EventChargeUpdateRequest, EventChargeIndexRequest +- **Exams:** 3 requests. ExamDraftTeacherStoreRequest, ExamDraftAdminLegacyRequest, ExamDraftAdminReviewRequest +- **Expenses:** 3 requests. UpdateExpenseRequest, StoreExpenseRequest, UpdateExpenseStatusRequest +- **ExtraCharges:** 2 requests. UpdateExtraChargeRequest, StoreExtraChargeRequest +- **Families:** 14 requests. FamilyImportLegacyRequest, FamilyUnlinkStudentRequest, FamilySetPrimaryHomeRequest, FamilyAdminCardRequest, FamiliesByStudentRequest, FamilyBootstrapRequest, FamilyAttachSecondByEmailRequest, FamilyAdminSearchRequest, FamilySetGuardianFlagsRequest, FamilyAdminIndexRequest, FamilyComposeEmailRequest, FamilyUnlinkGuardianRequest, GuardiansByFamilyRequest, FamilyAttachSecondByUserRequest +- **Fees:** 2 requests. FeeTuitionTotalRequest, FeeRefundRequest +- **Files:** 1 requests. FileNameRequest +- **Finance:** 12 requests. FinancialUnpaidParentsRequest, FeeTuitionTotalRequest, ChargeListRequest, FinancialReportRequest, FinancialSummaryRequest, MarkEventChargePaidRequest, FeeTuitionBreakdownRequest, StoreExtraChargeRequest, StoreEventChargeRequest, FeeFamilyBalanceRequest, ApplyExtraChargeRequest, FeeRefundRequest +- **Frontend:** 2 requests. LandingTeacherRequest, ContactSubmitRequest +- **Grading:** 18 requests. BelowSixtyListRequest, BelowSixtySendRequest, GradingLockAllRequest, BelowSixtyMeetingRequest, PlacementLevelsRequest, GradingRefreshRequest, GradingScoreShowRequest, HomeworkTrackingRequest, GradingScoreUpdateRequest, PlacementRequest, PlacementBatchUpdateRequest, BelowSixtyEmailRequest, BelowSixtyStatusRequest, PlacementBatchRequest, GradingLockRequest, PlacementLevelRequest, BelowSixtyMeetingSaveRequest, GradingOverviewRequest +- **Incidents:** 5 requests. IncidentCancelRequest, IncidentCloseRequest, IncidentStoreRequest, IncidentListRequest, IncidentStateRequest +- **Inventory:** 19 requests. InventoryItemIndexRequest, SupplierUpdateRequest, InventoryCategoryStoreRequest, InventoryTeacherDistributionRequest, InventoryItemUpdateRequest, InventoryItemStoreRequest, InventoryTeacherDistributionStoreRequest, InventoryCategoryUpdateRequest, SupplyCategoryStoreRequest, InventoryCategoryIndexRequest, InventoryAdjustRequest, InventoryAuditRequest, SupplierIndexRequest, InventoryMovementIndexRequest, InventoryMovementBulkDeleteRequest, SupplierStoreRequest, InventoryMovementUpdateRequest, InventoryMovementStoreRequest ... +- **Invoices:** 4 requests. InvoiceStatusRequest, InvoiceManagementRequest, InvoiceParentRequest, InvoiceGenerateRequest +- **Messaging:** 3 requests. MessageSendRequest, MessageIndexRequest, MessageUpdateRequest +- **Notifications:** 5 requests. NotificationSendRequest, NotificationActiveRequest, NotificationDeletedRequest, NotificationUpdateRequest, NotificationIndexRequest +- **Parents:** 16 requests. ParentAttendanceReportUpdateRequest, ParentAttendanceReportListRequest, ParentAttendanceReportSubmitRequest, ParentEmergencyContactRequest, UpdateAuthorizedUserRequest, ParentAttendanceReportCheckRequest, ParentProfileUpdateRequest, ParentInvoiceRequest, ParentEnrollmentRequest, SignParentReportCardRequest, ParentAttendanceRequest, StoreAuthorizedUserRequest, ParentStudentUpdateRequest, ParentEventParticipationRequest, ParentEnrollmentActionRequest, ParentRegistrationRequest +- **Payments:** 15 requests. PaymentManualSearchRequest, PaymentEventChargesListRequest, PaymentNotificationSendRequest, PaymentNotificationListRequest, PaymentCreateRequest, PaypalTransactionsListRequest, PaymentManualEditRequest, PaymentEventChargesStoreRequest, PaymentUpdateBalanceRequest, PaymentManualUpdateRequest, PaymentManualSuggestRequest, PaypalExecuteRequest, PaymentByParentRequest, PaymentTransactionStatusRequest, PaymentTransactionCreateRequest +- **Preferences:** 2 requests. PreferencesIndexRequest, PreferencesUpsertRequest +- **Promotions:** 8 requests. SendReminderRequest, ParentPromotionOverviewRequest, AdminListPromotionsRequest, EvaluateEligibilityRequest, UpdatePromotionStatusRequest, ParentEnrollmentStepRequest, SetEnrollmentDeadlineRequest, UpsertLevelProgressionRequest +- **PurchaseOrders:** 3 requests. PurchaseOrderIndexRequest, PurchaseOrderStoreRequest, PurchaseOrderReceiveRequest +- **Refunds:** 6 requests. RefundStoreRequest, RefundPaymentRequest, RefundDecisionRequest, RefundRecalculateRequest, RefundIndexRequest, RefundRejectRequest +- **Reimbursements:** 13 requests. ReimbursementBatchAdminFileRequest, ReimbursementUpdateRequest, ReimbursementBatchCreateRequest, ReimbursementBatchEmailRequest, ReimbursementProcessRequest, ReimbursementExportBatchRequest, ReimbursementIndexRequest, ReimbursementExportRequest, ReimbursementMarkDonationRequest, ReimbursementBatchAssignmentRequest, ReimbursementStoreRequest, ReimbursementBatchLockRequest, ReimbursementUnderProcessingRequest +- **Reports:** 11 requests. SlipPreviewRequest, SlipLogListRequest, SlipPrintRequest, SlipReprintRequest, StickerStudentsByClassRequest, StickerPrintRequest, StickerFormDataRequest, ReportCardCompletenessRequest, ReportCardPdfRequest, ReportCardAcknowledgementRequest, ReportCardMetaRequest +- **Roles:** 9 requests. AssignUserRolesRequest, RolePermissionUpdateRequest, UserRoleListRequest, PermissionUpdateRequest, PermissionStoreRequest, RoleSwitchRequest, RoleStoreRequest, RoleUpdateRequest, RoleListRequest +- **Root:** 1 requests. ApiFormRequest +- **SchoolIds:** 1 requests. SchoolIdAssignRequest +- **Scores:** 10 requests. ScoreCommentSaveRequest, ScorePredictorRequest, ScoreLockRequest, ScoreUpdateRequest, ScoreOverviewRequest, ScoreStudentRequest, ScoreCommentListRequest, ScoreClassRequest, ScoreCommentUpdateRequest, ScoreAddColumnRequest +- **Security:** 3 requests. IpBanIndexRequest, IpUnbanRequest, IpBanRequest +- **Semesters:** 4 requests. SchoolYearRangeRequest, SemesterResolveRequest, SemesterNormalizeRequest, SemesterRangeRequest +- **Settings:** 8 requests. SchoolCalendarStoreRequest, ConfigurationStoreRequest, SettingsUpdateRequest, SchoolCalendarIndexRequest, ConfigurationUpdateRequest, SchoolCalendarUpdateRequest, PolicyShowRequest, SchoolCalendarOptionsRequest +- **Staff:** 3 requests. StaffIndexRequest, StaffUpdateRequest, StaffStoreRequest +- **Students:** 7 requests. StudentRemoveClassRequest, StudentUpdateRequest, StudentAssignClassRequest, StudentSetActiveRequest, StudentPromotionTotalsRequest, StudentAssignmentListRequest, StudentAutoDistributeRequest +- **Subjects:** 2 requests. SubjectCurriculumUpdateRequest, SubjectCurriculumStoreRequest +- **Support:** 3 requests. SupportRequestStoreRequest, SupportRequestIndexRequest, ContactSendRequest +- **System:** 2 requests. NavItemStoreRequest, NavItemReorderRequest +- **Teachers:** 6 requests. TeacherClassViewRequest, TeacherAbsenceSubmitRequest, TeacherAssignmentDeleteRequest, TeacherAssignmentStoreRequest, TeacherAssignmentListRequest, TeacherSwitchClassRequest +- **Ui:** 1 requests. UiStyleRequest +- **Users:** 4 requests. UserStoreRequest, UserListRequest, UserUpdateRequest, LoginActivityRequest +- **Utilities:** 1 requests. PhoneFormatRequest +- **Whatsapp:** 7 requests. WhatsappLinkIndexRequest, WhatsappMembershipUpdateRequest, WhatsappLinkStoreRequest, WhatsappLinkUpdateRequest, WhatsappParentContactsRequest, WhatsappParentContactsByClassRequest, WhatsappInviteSendRequest + +## Appendix D: Resource Groups + +- **Admin:** 5 resources. PrintRecipientsResource, TeacherSubmissionReportResource, AdminNotificationAlertsResource, ProgressGroupResource, ProgressReportDetailResource +- **Assignment:** 2 resources. AssignmentOverviewResource, AssignmentSectionResource +- **Attendance:** 7 resources. DailyAttendanceResource, AdminAttendanceResource, LateSlipLogCollection, LateSlipLogResource, TeacherGridResource, StaffMonthResource, TeacherAttendanceFormResource +- **Auth:** 1 resources. RegisterResource +- **ClassPreparation:** 2 resources. ClassPreparationPrintResource, ClassPreparationResultResource +- **ClassProgress:** 4 resources. ClassProgressGroupCollection, ClassProgressAttachmentResource, ClassProgressShowResource, ClassProgressReportResource +- **Classes:** 4 resources. ClassSectionCollection, ClassSectionResource, ClassAttendanceResource, ClassAttendanceStudentResource +- **Discounts:** 2 resources. DiscountVoucherResource, DiscountParentResource +- **Email:** 3 resources. EmailSenderResource, EmailExtractorEmailsResource, EmailExtractorCompareResource +- **EmergencyContacts:** 3 resources. EmergencyContactGroupResource, EmergencyContactStudentResource, EmergencyContactResource +- **Events:** 3 resources. EventChargeResource, EventResource, EventStudentChargeResource +- **Exams:** 1 resources. ExamDraftResource +- **Expenses:** 2 resources. ExpenseResource, ExpenseStaffResource +- **ExtraCharges:** 3 resources. ExtraChargeInvoiceOptionResource, ExtraChargeResource, ExtraChargeParentOptionResource +- **Families:** 7 resources. FamilyPaymentResource, FamilyInvoiceResource, FamilySearchItemResource, FamilyResource, FamilyGuardianResource, FamilyStudentResource, FamilyEmergencyContactResource +- **Fees:** 6 resources. FeeRefundResource, FeeFamilyBalanceResource, ChargeActionResource, ChargeListResource, FeeTuitionBreakdownResource, FeeTuitionTotalResource +- **Files:** 1 resources. FileMetaResource +- **Finance:** 9 resources. FinancialReportResource, FinancialSummaryResource, FinancialExpenseSummaryResource, FinancialInvoiceResource, FinancialPaymentResource, FinancialRefundResource, FinancialUnpaidParentResource, FinancialDiscountResource, FinancialReimbursementSummaryResource +- **Frontend:** 6 resources. LandingPageResource, ContactSubmissionResource, FrontendPageResource, FrontendUserResource, ProfileIconResource, PageContentResource +- **Grading:** 3 resources. BelowSixtyStudentResource, GradingScoreResource, HomeworkTrackingTeacherResource +- **Incidents:** 4 resources. IncidentStudentOptionResource, IncidentAnalysisStudentResource, IncidentResource, IncidentGradeResource +- **Inventory:** 5 resources. InventoryItemResource, InventoryCategoryResource, InventoryMovementResource, SupplierResource, SupplyCategoryResource +- **Invoices:** 2 resources. InvoiceManagementParentResource, InvoiceResource +- **Messaging:** 3 resources. MessageResource, MessageCollection, RecipientResource +- **Notifications:** 2 resources. UserNotificationResource, NotificationResource +- **Parents:** 4 resources. ParentEmergencyContactResource, ParentAttendanceReportResource, ParentStudentResource, ParentAttendanceResource +- **Payments:** 4 resources. PaymentNotificationLogResource, PaymentTransactionResource, PaypalTransactionResource, PaymentResource +- **Preferences:** 3 resources. PreferencesListResource, PreferencesCollection, PreferencesResource +- **Promotions:** 4 resources. LevelProgressionResource, PromotionAuditLogResource, PromotionReminderResource, StudentPromotionResource +- **PurchaseOrders:** 2 resources. PurchaseOrderResource, PurchaseOrderItemResource +- **Refunds:** 1 resources. RefundResource +- **Reimbursements:** 5 resources. ReimbursementRecipientResource, ReimbursementExpenseResource, ReimbursementBatchResource, ReimbursementResource, ReimbursementUnderProcessingItemResource +- **Reports:** 8 resources. LateSlipLogResource, StickerStudentResource, StickerPresetResource, StickerClassSectionResource, ReportCardStudentMetaResource, ReportCardAcknowledgementResource, ReportCardClassSectionResource, ReportCardCompletenessStudentResource +- **Roles:** 4 resources. RolePermissionResource, RoleResource, UserWithRolesResource, PermissionResource +- **Root:** 1 resources. TeacherSubmissionRowResource +- **SchoolIds:** 1 resources. SchoolIdResource +- **Scores:** 3 resources. ScorePredictorStudentResource, ScoreCommentResource, ScoreStudentResource +- **Security:** 2 resources. IpBanCollection, IpBanResource +- **Semesters:** 2 resources. SemesterResolveResource, SemesterRangeResource +- **Settings:** 5 resources. PolicyResource, SchoolCalendarEventResource, SettingsResource, ConfigurationResource, SchoolCalendarEventDetailResource +- **Staff:** 2 resources. StaffCollection, StaffResource +- **Students:** 4 resources. StudentAssignmentResource, StudentRemovedResource, StudentClassSectionResource, StudentScoreCardRowResource +- **Subjects:** 2 resources. SubjectCurriculumResource, SubjectClassResource +- **Support:** 3 resources. ContactMessageResource, SupportRequestResource, SupportRequestCollection +- **System:** 4 resources. DashboardRouteResource, NavItemResource, HealthStatusResource, NavBuilderDataResource +- **Teachers:** 4 resources. TeacherAbsenceResource, TeacherStudentResource, TeacherClassResource, TeacherAssignmentResource +- **Ui:** 1 resources. UiStyleResource +- **Users:** 2 resources. LoginActivityResource, UserWithRolesResource +- **Utilities:** 1 resources. PhoneFormatResource +- **Whatsapp:** 5 resources. WhatsappParentContactResource, WhatsappGroupLinkResource, WhatsappClassSectionParentResource, WhatsappGroupLinkCollection, WhatsappClassSectionContactResource + +## Appendix E: Implementation Fix Tickets + +These tickets are the plan’s mandatory implementation layer. Each one should become a tracked issue with tests before code changes begin. + +### Ticket P0-001: Payment file access hardening + +**Problem:** Filename-driven file serving can allow users to request files without proving access to the payment record. + +**Implementation:** + +- Change the endpoint contract from `{filename}` to `{payment}` or `{payment}/file`. +- Load the payment with invoice/family context. +- Authorize using a policy or gate before resolving file path. +- Resolve file path from the stored payment record only. +- Keep basename/path traversal protection as defense-in-depth, not as the primary access control. +- Log download attempts with actor, payment, result, and source IP where available. + +**Tests:** + +- finance/admin success; +- owning parent success if business rules allow it; +- unrelated parent forbidden; +- teacher/staff forbidden unless explicitly allowed; +- guessed filename forbidden; +- traversal filename rejected; +- missing file returns `404` without leaking storage path. + +### Ticket P0-002: Manual payment edit transaction safety + +**Problem:** Payment edit and invoice recalculation must not be split across unprotected operations. + +**Implementation:** + +- Wrap edit, invoice lookup, balance recompute, payment update, and audit insert in one transaction. +- Lock payment and invoice rows before recalculation. +- Recalculate after mutation inside the same transaction. +- Enforce no-overpayment and valid method/status transitions. +- Write before/after audit data. + +**Tests:** + +- successful edit updates invoice balance; +- rejected edit leaves payment and invoice unchanged; +- two concurrent edits do not corrupt balance; +- audit row contains actor and before/after values. + +### Ticket P0-003: Student school ID generation + +**Problem:** `max(id) + 1` style generation is race-prone. + +**Implementation:** + +- Create the student first, then derive school ID from the persisted ID, or use a database-backed sequence. +- Add a unique constraint to `students.school_id`. +- Save school ID inside the same transaction. +- Add retry behavior for collision. + +**Tests:** + +- normal create assigns expected school ID format; +- duplicate school ID violates database constraint; +- concurrent create does not produce duplicates; +- rollback does not leave orphaned related records. + +### Ticket P0-004: Scanner service extraction and idempotency + +**Problem:** Scanner logic is too large for a controller and mixes validation, lookup, mutation, late-slip behavior, logging, and response formatting. + +**Implementation:** + +- Add `ScannerRequest`. +- Create `ScannerService` as the orchestration entry point. +- Extract `BadgeLookupService`, `StudentScanService`, `StaffScanService`, `LateArrivalService`, `AttendanceScanLogger`, and `ScannerResponseFactory`. +- Put attendance mutations inside one transaction. +- Add duplicate-scan/idempotency protection. + +**Tests:** + +- valid student scan; +- valid staff scan; +- invalid badge; +- duplicate scan; +- late arrival; +- semester/date boundary; +- scan log written exactly once per accepted mutation. + +### Ticket P0-005: Role and permission mutation authorization + +**Problem:** Role/permission mutations have high blast radius and must not rely on casual controller checks. + +**Implementation:** + +- Define canonical role/permission controllers. +- Mark duplicate root/auth controllers as canonical, shim, deprecated, or accidental duplicate. +- Route only to canonical controllers. +- Use a policy/gate for every mutation. +- Log actor, target, old state, and new state. + +**Tests:** + +- super-admin/admin allowed according to policy; +- lower-role forbidden; +- user cannot mutate own privilege unless explicitly allowed; +- deprecated/shim routes cannot bypass policy. + +### Ticket P0-006: Bulk communication safety + +**Problem:** Bulk send behavior can accidentally spam, duplicate, or target the wrong recipients. + +**Implementation:** + +- Require preview/dry-run before send. +- Canonicalize and deduplicate recipients. +- Apply opt-outs/preferences. +- Log send attempts, failures, and retries. +- Separate message composition from delivery. + +**Tests:** + +- preview count equals eligible send count; +- duplicate guardians collapse; +- opted-out recipients are excluded; +- failed sends are logged and retryable; +- wrong-role sender cannot bulk send. + +### Ticket P0-007: Refund/payment/invoice audit completeness + +**Problem:** Financial state must be reconstructable after the fact. “Trust me, it updated” is not an audit strategy, it is a confession. + +**Implementation:** + +- Standardize audit fields across payments, invoices, refunds, discounts, reimbursements, and external sync. +- Include actor, target, amount, old state, new state, source, and idempotency key. +- Ensure reports use the same canonical ledger/balance behavior as API reads. + +**Tests:** + +- each financial mutation creates audit data; +- reports reconcile with API totals; +- repeated external sync does not double-apply; +- failed mutation does not write misleading audit success. + +## Appendix E: Notable Review Queues + +### Raw SQL review queue + +- `app/Services/Finance/FinancialSummaryService.php`: 28 matches +- `app/Services/Grading/GradingOverviewService.php`: 11 matches +- `app/Services/Finance/FinancialReportService.php`: 10 matches +- `app/Models/User.php`: 7 matches +- `app/Models/AttendanceData.php`: 6 matches +- `app/Services/Refunds/RefundOverpaymentService.php`: 6 matches +- `app/Services/Reports/ReportCards/ReportCardService.php`: 6 matches +- `app/Services/AttendanceTracking/ViolationRuleEngineService.php`: 5 matches +- `app/Services/AttendanceTracking/AttendanceCaseQueryService.php`: 4 matches +- `app/Services/Grading/GradingBelowSixtyService.php`: 4 matches +- `app/Services/Grading/HomeworkTrackingService.php`: 4 matches +- `app/Models/Payment.php`: 3 matches +- `app/Services/Attendance/AttendanceQueryService.php`: 3 matches +- `app/Services/Inventory/InventoryItemService.php`: 3 matches +- `app/Services/Inventory/InventoryMovementService.php`: 3 matches +- `app/Services/Payments/PaymentMissedCheckService.php`: 3 matches +- `app/Services/Scores/ScoreDashboardService.php`: 3 matches +- `app/Services/Scores/ScorePredictorDataService.php`: 3 matches +- `app/Models/Invoice.php`: 2 matches +- `app/Models/Role.php`: 2 matches +- `app/Models/TeacherClass.php`: 2 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersAdminService.php`: 2 matches +- `app/Services/Attendance/AttendanceDailySummaryService.php`: 2 matches +- `app/Services/AttendanceTracking/AttendancePendingViolationService.php`: 2 matches +- `app/Services/Families/FamilyQueryService.php`: 2 matches +- `app/Services/Finance/FinancialPaymentService.php`: 2 matches +- `app/Services/Promotions/PromotionQueryService.php`: 2 matches +- `app/Services/Refunds/RefundPayoutService.php`: 2 matches +- `app/Services/Refunds/RefundQueryService.php`: 2 matches +- `app/Services/Staff/StaffQueryService.php`: 2 matches +- `app/Services/Whatsapp/WhatsappInviteBundleService.php`: 2 matches +- `app/Models/AdditionalCharge.php`: 1 matches +- `app/Models/AttendanceRecord.php`: 1 matches +- `app/Models/AttendanceTracking.php`: 1 matches +- `app/Models/Project.php`: 1 matches +- `app/Models/RoleNavItem.php`: 1 matches +- `app/Models/StaffAttendance.php`: 1 matches +- `app/Models/StudentAllergy.php`: 1 matches +- `app/Models/StudentMedicalCondition.php`: 1 matches +- `app/Models/WhatsappGroupMembership.php`: 1 matches +- ... 19 more files + +### Direct request access review queue + +- `app/Http/Controllers/Api/AttendanceTracking/AttendanceTrackingController.php`: 16 matches +- `app/Http/Controllers/Api/Attendance/AttendanceCommentTemplateController.php`: 15 matches +- `app/Http/Controllers/Api/Communication/CommunicationController.php`: 12 matches +- `app/Http/Controllers/Api/Badges/BadgeController.php`: 9 matches +- `app/Http/Controllers/Api/Email/BroadcastEmailController.php`: 9 matches +- `app/Http/Controllers/Api/ExtraCharges/ExtraChargesController.php`: 9 matches +- `app/Http/Controllers/Api/Students/StudentController.php`: 9 matches +- `app/Http/Controllers/Api/Attendance/StaffAttendanceApiController.php`: 8 matches +- `app/Http/Controllers/Api/Attendance/EarlyDismissalsController.php`: 7 matches +- `app/Http/Controllers/Api/ClassPreparation/ClassPreparationController.php`: 7 matches +- `app/Http/Controllers/Api/Attendance/TeacherAttendanceApiController.php`: 5 matches +- `app/Http/Controllers/Api/Certificates/CertificateController.php`: 5 matches +- `app/Http/Controllers/Api/Reports/ReportCardsController.php`: 5 matches +- `app/Http/Controllers/Api/CompetitionScores/CompetitionScoresController.php`: 4 matches +- `app/Http/Controllers/Api/Finance/ReimbursementController.php`: 4 matches +- `app/Http/Controllers/Api/PrintRequests/PrintRequestsController.php`: 4 matches +- `app/Http/Controllers/Api/Administrator/AdministratorEnrollmentController.php`: 3 matches +- `app/Http/Controllers/Api/Assignment/AssignmentApiController.php`: 3 matches +- `app/Http/Controllers/Api/Finance/InvoiceController.php`: 3 matches +- `app/Http/Controllers/Api/Finance/PaymentManualController.php`: 3 matches +- `app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php`: 3 matches +- `app/Http/Controllers/Api/Scores/ScoreCommentController.php`: 3 matches +- `app/Http/Controllers/Api/Scores/ScoreController.php`: 3 matches +- `app/Services/Administrator/AdministratorAbsenceService.php`: 3 matches +- `app/Http/Controllers/Api/Administrator/AdministratorNotificationController.php`: 2 matches +- `app/Http/Controllers/Api/Attendance/AdminAttendanceApiController.php`: 2 matches +- `app/Http/Controllers/Api/Auth/AuthSessionController.php`: 2 matches +- `app/Http/Controllers/Api/Auth/RegisterController.php`: 2 matches +- `app/Http/Controllers/Api/Classes/ClassController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PaymentController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PaymentTransactionController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PurchaseOrderController.php`: 2 matches +- `app/Http/Controllers/Api/Incidents/IncidentController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/FinalController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/HomeworkController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/MidtermController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/ParticipationController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/ProjectController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/QuizController.php`: 2 matches +- `app/Services/Administrator/TeacherSubmissionNotificationService.php`: 2 matches +- ... 10 more files + +### File operation review queue + +- `app/Services/Reimbursements/ReimbursementEmailService.php`: 5 matches +- `app/Http/Controllers/Api/Students/StudentController.php`: 3 matches +- `app/Services/Badges/BadgePdfService.php`: 3 matches +- `app/ThirdParty/fpdf/fpdf.php`: 3 matches +- `app/Http/Controllers/Api/ClassProgress/ClassProgressController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/ReimbursementController.php`: 2 matches +- `app/Services/Payments/PaymentManualService.php`: 2 matches +- `app/Services/PrintRequests/PrintRequestsPortalService.php`: 2 matches +- `app/Services/System/ConfigUpdateService.php`: 2 matches +- `app/Services/Whatsapp/WhatsappInviteEmailService.php`: 2 matches +- `app/Http/Controllers/Api/Attendance/EarlyDismissalsController.php`: 1 matches +- `app/Http/Controllers/Api/Finance/FinancialController.php`: 1 matches +- `app/Http/Controllers/Api/Finance/PaypalTransactionsController.php`: 1 matches +- `app/Http/Controllers/Api/PrintRequests/PrintRequestsController.php`: 1 matches +- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches +- `app/Services/Finance/FinancialChartService.php`: 1 matches +- `app/Services/Parents/ParentAttendanceReportService.php`: 1 matches +- `app/Services/Reimbursements/ReimbursementFileService.php`: 1 matches + +### Queue/dispatch review queue + +- `app/Services/Promotions/PromotionReminderService.php`: 2 matches +- `app/Console/Commands/DeleteUnverifiedUsersCommand.php`: 1 matches +- `app/Services/Administrator/AdministratorEnrollmentEventService.php`: 1 matches +- `app/Services/Grading/GradingBelowSixtyService.php`: 1 matches +- `app/Services/Notifications/NotificationTriggerService.php`: 1 matches +- `app/Services/Whatsapp/WhatsappInviteNotificationService.php`: 1 matches +- `app/Services/Whatsapp/WhatsappInviteService.php`: 1 matches + +### Legacy compatibility review queue + +- `app/Services/Parents/ParentAttendanceReportService.php`: 4 matches +- `app/Config/Database.php`: 3 matches +- `app/Helpers/ci_helpers.php`: 3 matches +- `app/Http/Controllers/Api/Attendance/AttendanceCommentTemplateController.php`: 3 matches +- `app/Http/Controllers/Api/Auth/RegisterController.php`: 3 matches +- `app/Http/Controllers/Api/BaseApiController.php`: 3 matches +- `app/Http/Controllers/Api/Core/BaseApiController.php`: 2 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersAdminService.php`: 2 matches +- `app/Services/AttendanceTracking/AttendanceTrackingService.php`: 2 matches +- `app/Services/Auth/ApiLoginSecurityService.php`: 2 matches +- `app/Services/Auth/CodeIgniterApiRegistrationService.php`: 2 matches +- `app/Services/Discounts/DiscountApplyService.php`: 2 matches +- `app/Services/ExtraCharges/ExtraChargesChargeService.php`: 2 matches +- `app/Services/Payments/PaymentManualService.php`: 2 matches +- `app/Http/Controllers/Api/Auth/AuthController.php`: 1 matches +- `app/Http/Controllers/Api/Auth/AuthSessionController.php`: 1 matches +- `app/Http/Controllers/Api/CiRequestAdapter.php`: 1 matches +- `app/Http/Controllers/Api/Core/CiRequestAdapter.php`: 1 matches +- `app/Http/Controllers/Api/System/HealthController.php`: 1 matches +- `app/Http/Controllers/Api/Utilities/ProofreadController.php`: 1 matches +- `app/Http/Middleware/EnsureClassProgressTeacherPortalAccess.php`: 1 matches +- `app/Http/Middleware/EnsureParentProgressAccess.php`: 1 matches +- `app/Http/Middleware/EnsurePrintRequestsAdminAccess.php`: 1 matches +- `app/Http/Middleware/EnsurePrintRequestsTeacherAccess.php`: 1 matches +- `app/Http/Middleware/TeacherPortalAuthenticate.php`: 1 matches +- `app/Http/Requests/Admin/SaveCompetitionScoresRequest.php`: 1 matches +- `app/Http/Requests/Admin/StoreCompetitionWinnerRequest.php`: 1 matches +- `app/Http/Requests/Admin/UpdateCompetitionWinnerRequest.php`: 1 matches +- `app/Models/CiDatabase.php`: 1 matches +- `app/Models/User.php`: 1 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersDomain.php`: 1 matches +- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches +- `app/Services/Auth/AuthSessionService.php`: 1 matches +- `app/Services/BadgeScan/BadgeScanService.php`: 1 matches +- `app/Services/Docs/DocsCatalogService.php`: 1 matches +- `app/Services/Parents/AuthorizedUsersManagementService.php`: 1 matches +- `app/Services/Parents/ParentProgressQueryService.php`: 1 matches +- `app/Services/Parents/ParentReportCardService.php`: 1 matches +- `app/Services/Parents/PrimaryParentUserResolver.php`: 1 matches +- `app/Services/PrintRequests/PrintRequestsPortalService.php`: 1 matches +- ... 1 more files diff --git a/docs/controller_plan.md b/docs/controller_plan.md new file mode 100644 index 00000000..bc1231fd --- /dev/null +++ b/docs/controller_plan.md @@ -0,0 +1,2093 @@ +# API Controller Plan + +Generated from the uploaded `Api(1).zip` controller tree. This is a controller-by-controller implementation and hardening plan, not a routing map, because no route file was included. Yes, apparently we are deriving architecture from controllers now, because civilization is fragile. + +- Controller files found: **124** +- Scope: `Api/**/*.php` files ending in `Controller.php` +- Default standard for every controller: validate with FormRequest or explicit validator, keep business logic in services, return consistent JSON envelopes, enforce auth/permissions, log failures without PII, and cover endpoints with feature tests. + +## Global cleanup plan + +1. **Normalize namespaces and duplicates.** There are root controllers and module controllers with overlapping names, especially `BaseApiController`, `RolePermissionController`, `RoleSwitcherController`, `StatsController`, and `UserController`. Decide which are canonical and deprecate the rest. +2. **Make controllers thin.** Anything doing calculations, scans, finance state changes, reporting, or multi-table writes belongs in a service/action class. +3. **Standardize response shape.** Use one success/error format, predictable status codes, and resource classes for payloads. +4. **Permission matrix.** For each endpoint, define roles allowed, ownership rules, and school/tenant scoping. Write denied-path tests first, because hope is not access control. +5. **Audit mutating operations.** Store actor, before/after, timestamp, and reason for attendance, finance, grades, family/student/staff changes. +6. **Test by risk.** Finance, auth, attendance, grading, and mass communication get transaction/idempotency/authorization tests before cosmetic endpoints. + +## Table of contents + +- [Administrator](#administrator) (8) +- [Assignment](#assignment) (1) +- [Attendance](#attendance) (6) +- [AttendanceTracking](#attendancetracking) (1) +- [Auth](#auth) (7) +- [BadgeScan](#badgescan) (1) +- [Badges](#badges) (1) +- [Certificates](#certificates) (1) +- [ClassPreparation](#classpreparation) (1) +- [ClassProgress](#classprogress) (1) +- [Classes](#classes) (1) +- [Communication](#communication) (1) +- [CompetitionScores](#competitionscores) (1) +- [Core](#core) (1) +- [Discounts](#discounts) (1) +- [Documentation](#documentation) (2) +- [Email](#email) (3) +- [Exams](#exams) (1) +- [Expenses](#expenses) (1) +- [ExtraCharges](#extracharges) (1) +- [Family](#family) (2) +- [Finance](#finance) (14) +- [Frontend](#frontend) (4) +- [Grading](#grading) (2) +- [Incidents](#incidents) (1) +- [Inventory](#inventory) (5) +- [Messaging](#messaging) (2) +- [Notifications](#notifications) (1) +- [Parents](#parents) (5) +- [PrintRequests](#printrequests) (1) +- [Public](#public) (1) +- [Reports](#reports) (4) +- [Root](#root) (6) +- [Scores](#scores) (9) +- [Settings](#settings) (6) +- [Staff](#staff) (3) +- [Students](#students) (1) +- [Subjects](#subjects) (1) +- [Support](#support) (2) +- [System](#system) (9) +- [Ui](#ui) (1) +- [Users](#users) (1) +- [Utilities](#utilities) (2) + +## Administrator + +### AdministratorAbsenceController +**File:** `Api/Administrator/AdministratorAbsenceController.php` +**Purpose:** manage school identity and operations workflow for administrator absence. +**Public methods:** `index()`, `store(Request $request)` +**Detected dependencies:** Services: `AdministratorAbsenceService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission. + +### AdministratorDashboardController +**File:** `Api/Administrator/AdministratorDashboardController.php` +**Purpose:** manage school identity and operations workflow for administrator dashboard. +**Public methods:** `metrics()`, `userSearch(Request $request)` +**Detected dependencies:** Services: `AdministratorDashboardService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### AdministratorEnrollmentController +**File:** `Api/Administrator/AdministratorEnrollmentController.php` +**Purpose:** manage school identity and operations workflow for administrator enrollment. +**Public methods:** `index(Request $request)`, `newStudents()`, `updateStatuses(Request $request)` +**Detected dependencies:** Services: `AdministratorEnrollmentService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### AdministratorNotificationController +**File:** `Api/Administrator/AdministratorNotificationController.php` +**Purpose:** manage school identity and operations workflow for administrator notification. +**Public methods:** `alerts()`, `saveAlerts(Request $request)`, `printRecipients()`, `savePrintRecipients(Request $request)` +**Detected dependencies:** Services: `AdministratorNotificationService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### AdministratorPromotionController +**File:** `Api/Administrator/AdministratorPromotionController.php` +**Purpose:** manage school identity and operations workflow for administrator promotion. +**Public methods:** `index(AdminListPromotionsRequest $request)`, `show(int $promotionId)`, `summary(AdminListPromotionsRequest $request)`, `evaluate(EvaluateEligibilityRequest $request)`, `updateStatus(UpdatePromotionStatusRequest $request, int $promotionId)`, `setDeadline(SetEnrollmentDeadlineRequest $request, ?int $promotionId = null)`, `sendReminder(SendReminderRequest $request, int $promotionId)`, `dispatchScheduledReminders()`, `reminders(int $promotionId)`, `audit(int $promotionId)`, `expireDeadlines()`, `adminCompleteEnrollment(ParentEnrollmentStepRequest $request, int $promotionId)`, `levelProgressions()`, `upsertLevelProgression(UpsertLevelProgressionRequest $request)`, `seedLevelProgressions()` +**Detected dependencies:** Services: `LevelProgressionService`, `PromotionAuditService`, `PromotionEligibilityService`, `PromotionEnrollmentService`, `PromotionQueryService`, `PromotionReminderService`, `PromotionStatusService` | Requests: `AdminListPromotionsRequest`, `EvaluateEligibilityRequest`, `ParentEnrollmentStepRequest`, `SendReminderRequest`, `SetEnrollmentDeadlineRequest`, `UpdatePromotionStatusRequest`, `UpsertLevelProgressionRequest` | Resources: `LevelProgressionResource`, `PromotionAuditLogResource`, `PromotionReminderResource`, `StudentPromotionResource` | Models: `PromotionAuditLog`, `PromotionReminderLog`, `StudentPromotionRecord` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- This controller is large enough to hide bugs. Split orchestration from business logic before it becomes archaeology. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record. + +### AdministratorTeacherSubmissionController +**File:** `Api/Administrator/AdministratorTeacherSubmissionController.php` +**Purpose:** manage school identity and operations workflow for administrator teacher submission. +**Public methods:** `index()`, `notify(Request $request)` +**Detected dependencies:** Services: `AdministratorTeacherSubmissionService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### EmergencyContactController +**File:** `Api/Administrator/EmergencyContactController.php` +**Purpose:** manage school identity and operations workflow for emergency contact. +**Public methods:** `index(Request $request)`, `show(EmergencyContactParentRequest $request, int $contactId)`, `update(EmergencyContactUpdateRequest $request, int $contactId)`, `destroy(EmergencyContactParentRequest $request, int $contactId)` +**Detected dependencies:** Services: `EmergencyContactCrudService`, `EmergencyContactDirectoryService` | Requests: `EmergencyContactParentRequest`, `EmergencyContactUpdateRequest` | Resources: `EmergencyContactGroupResource`, `EmergencyContactResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### TeacherClassAssignmentController +**File:** `Api/Administrator/TeacherClassAssignmentController.php` +**Purpose:** manage school identity and operations workflow for teacher class assignment. +**Public methods:** `index(TeacherAssignmentListRequest $request)`, `store(TeacherAssignmentStoreRequest $request)`, `destroy(TeacherAssignmentDeleteRequest $request)` +**Detected dependencies:** Services: `TeacherAssignmentService` | Requests: `TeacherAssignmentDeleteRequest`, `TeacherAssignmentListRequest`, `TeacherAssignmentStoreRequest` | Resources: `TeacherAssignmentResource`, `TeacherClassResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; delete success, already deleted, protected record. + +## Assignment + +### AssignmentApiController +**File:** `Api/Assignment/AssignmentApiController.php` +**Purpose:** serve assignment api API responsibilities. +**Public methods:** `index(Request $request)`, `store(Request $request)`, `classAssignmentData()` +**Detected dependencies:** Services: `AssignmentService` | Resources: `AssignmentOverviewResource`, `AssignmentSectionResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission. + +## Attendance + +### AdminAttendanceApiController +**File:** `Api/Attendance/AdminAttendanceApiController.php` +**Purpose:** manage attendance workflow for admin attendance api. +**Public methods:** `dailyData(Request $request)`, `updateManagement(UpdateAttendanceManagementRequest $request)`, `addEntry(AdminAddAttendanceEntryRequest $request)` +**Detected dependencies:** Services: `AttendanceQueryService`, `AttendanceService` | Requests: `AdminAddAttendanceEntryRequest`, `UpdateAttendanceManagementRequest` | Resources: `DailyAttendanceResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### AttendanceCommentTemplateController +**File:** `Api/Attendance/AttendanceCommentTemplateController.php` +**Purpose:** manage attendance workflow for attendance comment template. +**Public methods:** `bootstrapUrls()`, `index(Request $request)`, `listData(Request $request)`, `show(int $id)`, `store(Request $request)`, `update(Request $request, int $id)`, `destroy(int $id)`, `legacySave(Request $request)`, `legacyDelete(Request $request)` +**Detected dependencies:** Services: `ApplicationUrlService`, `AttendanceCommentTemplateService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### EarlyDismissalsController +**File:** `Api/Attendance/EarlyDismissalsController.php` +**Purpose:** manage attendance workflow for early dismissals. +**Public methods:** `index(Request $request)`, `studentOptions()`, `store(Request $request)`, `uploadSignature(Request $request)` +**Detected dependencies:** Models: `Configuration`, `EarlyDismissalSignature` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission. + +### LateSlipLogsController +**File:** `Api/Attendance/LateSlipLogsController.php` +**Purpose:** manage attendance workflow for late slip logs. +**Public methods:** `index(LateSlipLogIndexRequest $request)`, `show(int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `LateSlipLogCommandService`, `LateSlipLogQueryService` | Requests: `LateSlipLogIndexRequest` | Resources: `LateSlipLogCollection`, `LateSlipLogResource` | Models: `LateSlipLog` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; delete success, already deleted, protected record. + +### StaffAttendanceApiController +**File:** `Api/Attendance/StaffAttendanceApiController.php` +**Purpose:** manage attendance workflow for staff attendance api. +**Public methods:** `monthData(Request $request)`, `admins(Request $request)`, `saveAdmins(SaveAdminAttendanceRequest $request)`, `saveCell(SaveStaffAttendanceCellRequest $request)`, `monthCsv(Request $request)` +**Detected dependencies:** Services: `StaffAttendanceService` | Requests: `SaveAdminAttendanceRequest`, `SaveStaffAttendanceCellRequest` | Resources: `AdminAttendanceResource`, `StaffMonthResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### TeacherAttendanceApiController +**File:** `Api/Attendance/TeacherAttendanceApiController.php` +**Purpose:** manage attendance workflow for teacher attendance api. +**Public methods:** `grid(Request $request)`, `form(Request $request)`, `submit(TeacherSubmitAttendanceRequest $request)` +**Detected dependencies:** Services: `AttendanceQueryService`, `AttendanceService` | Requests: `TeacherSubmitAttendanceRequest` | Resources: `TeacherAttendanceFormResource`, `TeacherGridResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission. + +## AttendanceTracking + +### AttendanceTrackingController +**File:** `Api/AttendanceTracking/AttendanceTrackingController.php` +**Purpose:** manage attendance workflow for attendance tracking. +**Public methods:** `pendingViolations(Request $request)`, `notifiedViolations(Request $request)`, `studentCase(int $studentId, Request $request)`, `record(Request $request)`, `sendAutoEmails(Request $request)`, `compose(Request $request)`, `sendManualEmail(Request $request)`, `parentsInfo(Request $request)`, `saveNotificationNote(Request $request)` +**Detected dependencies:** Services: `AttendanceTrackingService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Auth + +### AuthController +**File:** `Api/Auth/AuthController.php` +**Purpose:** handle authentication/authorization workflow for auth. +**Public methods:** `login(Request $request, ApiLoginSecurityService $security)`, `refresh(Request $request)`, `me()`, `logout(Request $request)` +**Detected dependencies:** Services: `ApiLoginSecurityService` | Models: `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: happy path, unauthorized path, invalid input, service exception; role matrix: allowed, denied, expired session. + +### AuthSessionController +**File:** `Api/Auth/AuthSessionController.php` +**Purpose:** handle authentication/authorization workflow for auth session. +**Public methods:** `loginMask(Request $request)`, `login(LoginSessionRequest $request)`, `logout(Request $request)`, `selectRole(Request $request)`, `setRole(SetRoleSessionRequest $request)` +**Detected dependencies:** Services: `ApplicationUrlService`, `ApiLoginSecurityService`, `AuthSessionService` | Requests: `LoginSessionRequest`, `SetRoleSessionRequest` | Models: `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- This controller is large enough to hide bugs. Split orchestration from business logic before it becomes archaeology. +- Feature tests: happy path, unauthorized path, invalid input, service exception; role matrix: allowed, denied, expired session. + +### IpBanController +**File:** `Api/Auth/IpBanController.php` +**Purpose:** handle authentication/authorization workflow for ip ban. +**Public methods:** `index(IpBanIndexRequest $request)`, `show(int $id)`, `ban(IpBanRequest $request)`, `unban(IpUnbanRequest $request)` +**Detected dependencies:** Services: `IpBanCommandService`, `IpBanQueryService` | Requests: `IpBanIndexRequest`, `IpBanRequest`, `IpUnbanRequest` | Resources: `IpBanCollection`, `IpBanResource` | Models: `IpAttempt` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; role matrix: allowed, denied, expired session. + +### RegisterController +**File:** `Api/Auth/RegisterController.php` +**Purpose:** handle authentication/authorization workflow for register. +**Public methods:** `captcha()`, `store(Request $request)` +**Detected dependencies:** Services: `CodeIgniterApiRegistrationService`, `RegistrationCaptchaService`, `RegistrationService` | Resources: `RegisterResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: create/submit validation, happy path, duplicate submission; role matrix: allowed, denied, expired session. + +### RolePermissionController +**File:** `Api/Auth/RolePermissionController.php` +**Purpose:** handle authentication/authorization workflow for role permission. +**Public methods:** `roles(RoleListRequest $request)`, `showRole(int $roleId)`, `storeRole(RoleStoreRequest $request)`, `updateRole(RoleUpdateRequest $request, int $roleId)`, `deleteRole(int $roleId)`, `users(UserRoleListRequest $request)`, `assignRoles(AssignUserRolesRequest $request, int $userId)`, `permissions()`, `showPermission(int $permissionId)`, `storePermission(PermissionStoreRequest $request)`, `updatePermission(PermissionUpdateRequest $request, int $permissionId)`, `deletePermission(int $permissionId)`, `rolePermissions(int $roleId)`, `updateRolePermissions(RolePermissionUpdateRequest $request, int $roleId)` +**Detected dependencies:** Services: `PermissionCrudService`, `RoleAssignmentService`, `RoleCrudService`, `RolePermissionService`, `RoleQueryService` | Requests: `AssignUserRolesRequest`, `PermissionStoreRequest`, `PermissionUpdateRequest`, `RoleListRequest`, `RolePermissionUpdateRequest`, `RoleStoreRequest`, `RoleUpdateRequest`, `UserRoleListRequest` | Resources: `PermissionResource`, `RolePermissionResource`, `RoleResource`, `UserWithRolesResource` | Models: `Permission`, `Role` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: update authorization, partial payload, concurrency/transaction rollback; role matrix: allowed, denied, expired session. + +### RoleSwitcherController +**File:** `Api/Auth/RoleSwitcherController.php` +**Purpose:** handle authentication/authorization workflow for role switcher. +**Public methods:** `index()`, `switch(RoleSwitchRequest $request)` +**Detected dependencies:** Services: `RoleSwitchService` | Requests: `RoleSwitchRequest` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; role matrix: allowed, denied, expired session. + +### SessionTimeoutController +**File:** `Api/Auth/SessionTimeoutController.php` +**Purpose:** handle authentication/authorization workflow for session timeout. +**Public methods:** `getTimeoutConfig()`, `checkTimeout(Request $request)`, `pingActivity(Request $request)` +**Detected dependencies:** Services: `ApplicationUrlService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: happy path, unauthorized path, invalid input, service exception; role matrix: allowed, denied, expired session. + +## BadgeScan + +### BadgeScanController +**File:** `Api/BadgeScan/BadgeScanController.php` +**Purpose:** serve badge scan API responsibilities. +**Public methods:** `scan(Request $request)`, `logs()` +**Detected dependencies:** Services: `BadgeScanService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Badges + +### BadgeController +**File:** `Api/Badges/BadgeController.php` +**Purpose:** serve badge API responsibilities. +**Public methods:** `generatePdf(Request $request)`, `printStatus(Request $request)`, `logPrint(Request $request)`, `formData(Request $request)` +**Detected dependencies:** Services: `BadgeFormDataService`, `BadgePdfService`, `BadgePrintLogService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Certificates + +### CertificateController +**File:** `Api/Certificates/CertificateController.php` +**Purpose:** serve certificate API responsibilities. +**Public methods:** `formOptions(Request $request)`, `generate(Request $request)` +**Detected dependencies:** Services: `CertificatePdfService` | Models: `Configuration` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## ClassPreparation + +### ClassPreparationController +**File:** `Api/ClassPreparation/ClassPreparationController.php` +**Purpose:** serve class preparation API responsibilities. +**Public methods:** `index(ClassPreparationIndexRequest $request)`, `markPrinted(ClassPreparationMarkPrintedRequest $request)`, `saveAdjustments(ClassPreparationAdjustmentRequest $request)`, `print(ClassPreparationPrintRequest $request)`, `stickerCounts(Request $request)`, `studentsByClass(Request $request, int $classSectionId)` +**Detected dependencies:** Services: `ClassRosterService`, `StickerCountService`, `ClassPreparationService` | Requests: `ClassPreparationAdjustmentRequest`, `ClassPreparationIndexRequest`, `ClassPreparationMarkPrintedRequest`, `ClassPreparationPrintRequest` | Resources: `ClassPreparationPrintResource`, `ClassPreparationResultResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +## ClassProgress + +### ClassProgressController +**File:** `Api/ClassProgress/ClassProgressController.php` +**Purpose:** serve class progress API responsibilities. +**Public methods:** `meta(ClassProgressMetaRequest $request)`, `legacySubmitForm(ClassProgressMetaRequest $request)`, `index(ClassProgressIndexRequest $request)`, `store(ClassProgressStoreRequest $request)`, `show(ClassProgressReport $class_progress)`, `update(ClassProgressUpdateRequest $request, ClassProgressReport $class_progress)`, `destroy(ClassProgressReport $class_progress)`, `downloadAttachment(int $attachment)`, `downloadLegacyAttachment(ClassProgressReport $class_progress)` +**Detected dependencies:** Services: `ClassProgressAttachmentService`, `ClassProgressMetaService`, `ClassProgressMutationService`, `ClassProgressQueryService` | Requests: `ClassProgressIndexRequest`, `ClassProgressMetaRequest`, `ClassProgressStoreRequest`, `ClassProgressUpdateRequest` | Resources: `ClassProgressGroupCollection`, `ClassProgressReportResource`, `ClassProgressShowResource` | Models: `ClassProgressAttachment`, `ClassProgressReport`, `Configuration`, `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Classes + +### ClassController +**File:** `Api/Classes/ClassController.php` +**Purpose:** serve class API responsibilities. +**Public methods:** `index(ClassSectionIndexRequest $request)`, `show(ClassSection $classSection)`, `store(ClassSectionStoreRequest $request)`, `update(ClassSectionUpdateRequest $request, ClassSection $classSection)`, `destroy(ClassSection $classSection)`, `attendance(Request $request, int $classSectionId)`, `seedDefaults()` +**Detected dependencies:** Services: `ClassAttendanceService`, `ClassSectionCommandService`, `ClassSectionQueryService`, `ClassSectionSeedService` | Requests: `ClassSectionIndexRequest`, `ClassSectionStoreRequest`, `ClassSectionUpdateRequest` | Resources: `ClassAttendanceResource`, `ClassSectionCollection`, `ClassSectionResource` | Models: `ClassSection` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Communication + +### CommunicationController +**File:** `Api/Communication/CommunicationController.php` +**Purpose:** serve communication API responsibilities. +**Public methods:** `options()`, `families(int $studentId)`, `guardians(int $familyId)`, `preview(Request $request)`, `send(Request $request)` +**Detected dependencies:** Services: `CommunicationFamilyService`, `CommunicationPreviewService`, `CommunicationSendService`, `CommunicationStudentService`, `CommunicationTemplateService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## CompetitionScores + +### CompetitionScoresController +**File:** `Api/CompetitionScores/CompetitionScoresController.php` +**Purpose:** manage academic scoring/grading workflow for competition scores. +**Public methods:** `index(Request $request)`, `edit(Request $request, int $id)`, `save(Request $request, int $id)` +**Detected dependencies:** Services: `CompetitionScoresContextService`, `CompetitionScoresQueryService`, `CompetitionScoresRosterService`, `CompetitionScoresSaveService` | Models: `Competition` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission. + +## Core + +### BaseApiController +**File:** `Api/Core/BaseApiController.php` +**Purpose:** shared API response, validation, auth, and compatibility foundation. +**Public methods:** _No public endpoint methods detected._ +**Detected dependencies:** Models: `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- This controller is large enough to hide bugs. Split orchestration from business logic before it becomes archaeology. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Discounts + +### DiscountController +**File:** `Api/Discounts/DiscountController.php` +**Purpose:** serve discount API responsibilities. +**Public methods:** `options()`, `apply(ApplyDiscountVoucherRequest $request)`, `listVouchers()`, `storeVoucher(StoreDiscountVoucherRequest $request)`, `updateVoucher(UpdateDiscountVoucherRequest $request, int $id)`, `showVoucher(int $id)`, `deleteVoucher(int $id)` +**Detected dependencies:** Services: `DiscountApplyService`, `DiscountContextService`, `DiscountParentService`, `DiscountVoucherService` | Requests: `ApplyDiscountVoucherRequest`, `StoreDiscountVoucherRequest`, `UpdateDiscountVoucherRequest` | Resources: `DiscountParentResource`, `DiscountVoucherResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Documentation + +### ApiDocsAdminController +**File:** `Api/Documentation/ApiDocsAdminController.php` +**Purpose:** serve api docs admin API responsibilities. +**Public methods:** `index()`, `public()` +**Detected dependencies:** Services: `ApiDocsService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### DocsCatalogController +**File:** `Api/Documentation/DocsCatalogController.php` +**Purpose:** serve docs catalog API responsibilities. +**Public methods:** `index(Request $request)`, `ui()`, `swagger()`, `swaggerMergedJson()` +**Detected dependencies:** Services: `DocsCatalogService`, `OpenApiRouteExporter` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +## Email + +### BroadcastEmailController +**File:** `Api/Email/BroadcastEmailController.php` +**Purpose:** serve broadcast email API responsibilities. +**Public methods:** `options()`, `send(Request $request)`, `uploadImage(Request $request)` +**Detected dependencies:** Services: `BroadcastEmailComposerService`, `BroadcastEmailDispatchService`, `BroadcastEmailImageService`, `BroadcastEmailRecipientService`, `BroadcastEmailSenderOptionsService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### EmailController +**File:** `Api/Email/EmailController.php` +**Purpose:** serve email API responsibilities. +**Public methods:** `senders()`, `send(EmailSendRequest $request)` +**Detected dependencies:** Services: `EmailAttachmentService`, `EmailDispatchService`, `EmailSenderOptionsService` | Requests: `EmailSendRequest` | Resources: `EmailSenderResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### EmailExtractorController +**File:** `Api/Email/EmailExtractorController.php` +**Purpose:** serve email extractor API responsibilities. +**Public methods:** `emails()`, `compare(EmailExtractorCompareRequest $request)` +**Detected dependencies:** Services: `EmailExtractorService` | Requests: `EmailExtractorCompareRequest` | Resources: `EmailExtractorCompareResource`, `EmailExtractorEmailsResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Exams + +### ExamDraftController +**File:** `Api/Exams/ExamDraftController.php` +**Purpose:** serve exam draft API responsibilities. +**Public methods:** `teacherIndex()`, `teacherStore(ExamDraftTeacherStoreRequest $request)`, `adminIndex()`, `adminUploadLegacy(ExamDraftAdminLegacyRequest $request)`, `adminReview(ExamDraftAdminReviewRequest $request)` +**Detected dependencies:** Services: `ExamDraftAdminService`, `ExamDraftTeacherService` | Requests: `ExamDraftAdminLegacyRequest`, `ExamDraftAdminReviewRequest`, `ExamDraftTeacherStoreRequest` | Resources: `ExamDraftResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Expenses + +### ExpenseController +**File:** `Api/Expenses/ExpenseController.php` +**Purpose:** serve expense API responsibilities. +**Public methods:** `options()`, `index()`, `show(int $id)`, `store(StoreExpenseRequest $request)`, `update(UpdateExpenseRequest $request, int $id)`, `updateStatus(UpdateExpenseStatusRequest $request, int $id)` +**Detected dependencies:** Services: `ExpenseContextService`, `ExpenseQueryService`, `ExpenseReceiptService`, `ExpenseRetailorService`, `ExpenseStaffService`, `ExpenseStatusService`, `ExpenseWriteService` | Requests: `StoreExpenseRequest`, `UpdateExpenseRequest`, `UpdateExpenseStatusRequest` | Resources: `ExpenseResource`, `ExpenseStaffResource` | Models: `Expense` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback. + +## ExtraCharges + +### ExtraChargesController +**File:** `Api/ExtraCharges/ExtraChargesController.php` +**Purpose:** manage finance workflow for extra charges, with money-state integrity as the main risk. +**Public methods:** `list(Request $request)`, `options(Request $request)`, `parentOptions(Request $request)`, `invoicesForParent(Request $request)`, `store(StoreExtraChargeRequest $request)`, `update(UpdateExtraChargeRequest $request, int $id)`, `void(int $id)`, `reverse(int $id)` +**Detected dependencies:** Services: `ExtraChargesChargeService`, `ExtraChargesContextService`, `ExtraChargesInvoiceService`, `ExtraChargesListService`, `ExtraChargesMetaService`, `ExtraChargesParentService` | Requests: `StoreExtraChargeRequest`, `UpdateExtraChargeRequest` | Resources: `ExtraChargeInvoiceOptionResource`, `ExtraChargeParentOptionResource`, `ExtraChargeResource` | Models: `AdditionalCharge` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; idempotency and ledger/audit consistency. + +## Family + +### FamilyAdminController +**File:** `Api/Family/FamilyAdminController.php` +**Purpose:** manage school identity and operations workflow for family admin. +**Public methods:** `index(FamilyAdminIndexRequest $request)`, `search(FamilyAdminSearchRequest $request)`, `card(FamilyAdminCardRequest $request)`, `composeEmail(FamilyComposeEmailRequest $request)` +**Detected dependencies:** Services: `FamilyNotificationService`, `FamilyQueryService` | Requests: `FamilyAdminCardRequest`, `FamilyAdminIndexRequest`, `FamilyAdminSearchRequest`, `FamilyComposeEmailRequest` | Resources: `FamilyResource`, `FamilySearchItemResource` | Models: `Configuration` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### FamilyController +**File:** `Api/Family/FamilyController.php` +**Purpose:** manage school identity and operations workflow for family. +**Public methods:** `familiesByStudent(FamiliesByStudentRequest $request, int $studentId)`, `guardiansByFamily(GuardiansByFamilyRequest $request, int $familyId)`, `bootstrap(FamilyBootstrapRequest $request)`, `attachSecondByUser(FamilyAttachSecondByUserRequest $request)`, `attachSecondByEmail(FamilyAttachSecondByEmailRequest $request)`, `setPrimaryHome(FamilySetPrimaryHomeRequest $request)`, `setGuardianFlags(FamilySetGuardianFlagsRequest $request)`, `unlinkGuardian(FamilyUnlinkGuardianRequest $request)`, `unlinkStudent(FamilyUnlinkStudentRequest $request)`, `importSecondParentsFromLegacy(FamilyImportLegacyRequest $request)` +**Detected dependencies:** Services: `FamilyMutationService`, `FamilyQueryService` | Requests: `FamiliesByStudentRequest`, `FamilyAttachSecondByEmailRequest`, `FamilyAttachSecondByUserRequest`, `FamilyBootstrapRequest`, `FamilyImportLegacyRequest`, `FamilySetGuardianFlagsRequest`, `FamilySetPrimaryHomeRequest`, `FamilyUnlinkGuardianRequest`… | Resources: `FamilyGuardianResource`, `FamilyResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Finance + +### ChargeController +**File:** `Api/Finance/ChargeController.php` +**Purpose:** manage finance workflow for charge, with money-state integrity as the main risk. +**Public methods:** `index(ChargeListRequest $request)`, `storeExtra(StoreExtraChargeRequest $request)`, `storeEvent(StoreEventChargeRequest $request)`, `cancelExtra(int $id)`, `applyExtra(ApplyExtraChargeRequest $request, int $id)`, `cancelEvent(Request $request, int $id)`, `markEventPaid(MarkEventChargePaidRequest $request, int $id)` +**Detected dependencies:** Services: `ChargeService` | Requests: `ApplyExtraChargeRequest`, `ChargeListRequest`, `MarkEventChargePaidRequest`, `StoreEventChargeRequest`, `StoreExtraChargeRequest` | Resources: `ChargeActionResource`, `ChargeListResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; idempotency and ledger/audit consistency. + +### FeeCalculationController +**File:** `Api/Finance/FeeCalculationController.php` +**Purpose:** manage finance workflow for fee calculation, with money-state integrity as the main risk. +**Public methods:** `refund(FeeRefundRequest $request)`, `tuitionTotal(FeeTuitionTotalRequest $request)`, `tuitionBreakdown(FeeTuitionBreakdownRequest $request)`, `familyBalance(FeeFamilyBalanceRequest $request)` +**Detected dependencies:** Services: `BalanceCalculationService`, `FeeRefundCalculatorService`, `FeeStudentFeeService`, `TuitionCalculationService` | Requests: `FeeFamilyBalanceRequest`, `FeeRefundRequest`, `FeeTuitionBreakdownRequest`, `FeeTuitionTotalRequest` | Resources: `FeeFamilyBalanceResource`, `FeeRefundResource`, `FeeTuitionBreakdownResource`, `FeeTuitionTotalResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: happy path, unauthorized path, invalid input, service exception; idempotency and ledger/audit consistency. + +### FinancialController +**File:** `Api/Finance/FinancialController.php` +**Purpose:** manage finance workflow for financial, with money-state integrity as the main risk. +**Public methods:** `report(FinancialReportRequest $request)`, `summary(FinancialSummaryRequest $request)`, `unpaidParents(FinancialUnpaidParentsRequest $request)`, `downloadCsv(FinancialReportRequest $request)`, `downloadPdf(FinancialReportRequest $request)` +**Detected dependencies:** Services: `FinancialPdfReportService`, `FinancialReportService`, `FinancialSchoolYearService`, `FinancialSummaryService`, `FinancialUnpaidParentsService` | Requests: `FinancialReportRequest`, `FinancialSummaryRequest`, `FinancialUnpaidParentsRequest` | Resources: `FinancialReportResource`, `FinancialSummaryResource`, `FinancialUnpaidParentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: happy path, unauthorized path, invalid input, service exception; idempotency and ledger/audit consistency. + +### InvoiceController +**File:** `Api/Finance/InvoiceController.php` +**Purpose:** manage finance workflow for invoice, with money-state integrity as the main risk. +**Public methods:** `management(InvoiceManagementRequest $request)`, `generate(Request $request)`, `byParent(InvoiceParentRequest $request, int $parentId)`, `parentPayment(InvoiceParentRequest $request)`, `updateStatus(InvoiceStatusRequest $request, int $invoiceId)`, `unpaid()`, `pdf(int $invoiceId)` +**Detected dependencies:** Services: `InvoiceGenerationService`, `InvoiceManagementService`, `InvoicePaymentService`, `InvoicePdfService` | Requests: `InvoiceManagementRequest`, `InvoiceParentRequest`, `InvoiceStatusRequest` | Resources: `InvoiceManagementParentResource`, `InvoiceResource` | Models: `Invoice` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception; idempotency and ledger/audit consistency. + +### PaymentController +**File:** `Api/Finance/PaymentController.php` +**Purpose:** manage finance workflow for payment, with money-state integrity as the main risk. +**Public methods:** `store(Request $request)`, `byParent(PaymentByParentRequest $request, int $parentId)`, `updateBalance(Request $request, int $paymentId)` +**Detected dependencies:** Services: `PaymentBalanceService`, `PaymentLookupService`, `PaymentPlanService` | Requests: `PaymentByParentRequest` | Resources: `PaymentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: create/submit validation, happy path, duplicate submission; idempotency and ledger/audit consistency. + +### PaymentEventChargesController +**File:** `Api/Finance/PaymentEventChargesController.php` +**Purpose:** manage finance workflow for payment event charges, with money-state integrity as the main risk. +**Public methods:** `index(PaymentEventChargesListRequest $request)`, `store(Request $request)`, `enrolledStudents(PaymentEventChargesListRequest $request, int $parentId)` +**Detected dependencies:** Services: `PaymentEventChargesService` | Requests: `PaymentEventChargesListRequest` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; idempotency and ledger/audit consistency. + +### PaymentManualController +**File:** `Api/Finance/PaymentManualController.php` +**Purpose:** manage finance workflow for payment manual, with money-state integrity as the main risk. +**Public methods:** `search(Request $request)`, `suggest(Request $request)`, `record(PaymentManualUpdateRequest $request, int $invoiceId)`, `edit(PaymentManualEditRequest $request, int $paymentId)`, `file(Request $request, string $filename)` +**Detected dependencies:** Services: `PaymentManualService` | Requests: `PaymentManualEditRequest`, `PaymentManualUpdateRequest` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception; idempotency and ledger/audit consistency. + +### PaymentNotificationController +**File:** `Api/Finance/PaymentNotificationController.php` +**Purpose:** manage finance workflow for payment notification, with money-state integrity as the main risk. +**Public methods:** `index(PaymentNotificationListRequest $request)`, `send(PaymentNotificationSendRequest $request)` +**Detected dependencies:** Services: `PaymentNotificationService` | Requests: `PaymentNotificationListRequest`, `PaymentNotificationSendRequest` | Resources: `PaymentNotificationLogResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; idempotency and ledger/audit consistency. + +### PaymentTransactionController +**File:** `Api/Finance/PaymentTransactionController.php` +**Purpose:** manage finance workflow for payment transaction, with money-state integrity as the main risk. +**Public methods:** `store(Request $request)`, `byPayment(int $paymentId)`, `updateStatus(Request $request, string $transactionId)` +**Detected dependencies:** Services: `PaymentTransactionService` | Resources: `PaymentTransactionResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: create/submit validation, happy path, duplicate submission; idempotency and ledger/audit consistency. + +### PaypalPaymentController +**File:** `Api/Finance/PaypalPaymentController.php` +**Purpose:** manage finance workflow for paypal payment, with money-state integrity as the main risk. +**Public methods:** `redirect()`, `create(int $paymentId)`, `execute(PaypalExecuteRequest $request)`, `cancel()` +**Detected dependencies:** Services: `PaypalPaymentService` | Requests: `PaypalExecuteRequest` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: create/submit validation, happy path, duplicate submission; idempotency and ledger/audit consistency. + +### PaypalTransactionsController +**File:** `Api/Finance/PaypalTransactionsController.php` +**Purpose:** manage finance workflow for paypal transactions, with money-state integrity as the main risk. +**Public methods:** `index(PaypalTransactionsListRequest $request)`, `downloadCsv(PaypalTransactionsListRequest $request)` +**Detected dependencies:** Services: `PaypalTransactionsService` | Requests: `PaypalTransactionsListRequest` | Resources: `PaypalTransactionResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; idempotency and ledger/audit consistency. + +### PurchaseOrderController +**File:** `Api/Finance/PurchaseOrderController.php` +**Purpose:** manage finance workflow for purchase order, with money-state integrity as the main risk. +**Public methods:** `index(PurchaseOrderIndexRequest $request)`, `options()`, `show(int $id)`, `store(Request $request)`, `receive(Request $request, int $id)`, `cancel(int $id)` +**Detected dependencies:** Services: `PurchaseOrderCreateService`, `PurchaseOrderQueryService`, `PurchaseOrderReceiveService`, `PurchaseOrderStatusService` | Requests: `PurchaseOrderIndexRequest` | Resources: `PurchaseOrderItemResource`, `PurchaseOrderResource` | Models: `PurchaseOrder` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; idempotency and ledger/audit consistency. + +### RefundController +**File:** `Api/Finance/RefundController.php` +**Purpose:** manage finance workflow for refund, with money-state integrity as the main risk. +**Public methods:** `index(RefundIndexRequest $request)`, `show(int $refundId)`, `store(RefundStoreRequest $request)`, `update(RefundDecisionRequest $request, int $refundId)`, `destroy(int $refundId)`, `approve(int $refundId)`, `reject(RefundRejectRequest $request, int $refundId)`, `recordPayment(RefundPaymentRequest $request, int $refundId)`, `recalculateOverpayments(RefundRecalculateRequest $request)`, `parentBalances(int $parentId)` +**Detected dependencies:** Services: `RefundDecisionService`, `RefundOverpaymentService`, `RefundPayoutService`, `RefundQueryService`, `RefundRequestService`, `RefundSummaryService` | Requests: `RefundDecisionRequest`, `RefundIndexRequest`, `RefundPaymentRequest`, `RefundRecalculateRequest`, `RefundRejectRequest`, `RefundStoreRequest` | Resources: `RefundResource` | Models: `Configuration` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record; idempotency and ledger/audit consistency. + +### ReimbursementController +**File:** `Api/Finance/ReimbursementController.php` +**Purpose:** manage finance workflow for reimbursement, with money-state integrity as the main risk. +**Public methods:** `underProcessing(ReimbursementUnderProcessingRequest $request)`, `markDonation(Request $request)`, `createBatch(Request $request)`, `updateBatchAssignment(ReimbursementBatchAssignmentRequest $request)`, `lockBatch(ReimbursementBatchLockRequest $request)`, `uploadBatchAdminFile(ReimbursementBatchAdminFileRequest $request)`, `serveAdminCheckFile(FileNameRequest $request, string $name, string $mode = 'inline')`, `index(ReimbursementIndexRequest $request)`, `sendBatchEmail(ReimbursementBatchEmailRequest $request)`, `export(ReimbursementExportRequest $request)`, `exportBatch(ReimbursementExportBatchRequest $request)`, `store(Request $request)`, `process(ReimbursementProcessRequest $request)`, `reimbursedExpenses()`, `update(Request $request, int $id)` +**Detected dependencies:** Services: `FileServeService`, `ReimbursementBatchAssignmentService`, `ReimbursementBatchService`, `ReimbursementContextService`, `ReimbursementCrudService`, `ReimbursementDonationService`, `ReimbursementEmailService`, `ReimbursementExportService`… | Requests: `FileNameRequest`, `ReimbursementBatchAdminFileRequest`, `ReimbursementBatchAssignmentRequest`, `ReimbursementBatchEmailRequest`, `ReimbursementBatchLockRequest`, `ReimbursementExportBatchRequest`, `ReimbursementExportRequest`, `ReimbursementIndexRequest`… | Resources: `ReimbursementBatchResource`, `ReimbursementExpenseResource`, `ReimbursementRecipientResource`, `ReimbursementResource`, `ReimbursementUnderProcessingItemResource` | Models: `Reimbursement`, `ReimbursementBatch` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; idempotency and ledger/audit consistency. + +## Frontend + +### FrontendController +**File:** `Api/Frontend/FrontendController.php` +**Purpose:** serve frontend API responsibilities. +**Public methods:** `index()`, `facility()`, `team()`, `callToAction()`, `testimonial()`, `notFound()`, `fetchUser()` +**Detected dependencies:** Services: `FrontendPageService` | Resources: `FrontendPageResource`, `FrontendUserResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### InfoIconController +**File:** `Api/Frontend/InfoIconController.php` +**Purpose:** serve info icon API responsibilities. +**Public methods:** `profileIcon()` +**Detected dependencies:** Services: `ProfileIconService` | Resources: `ProfileIconResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### LandingPageController +**File:** `Api/Frontend/LandingPageController.php` +**Purpose:** serve landing page API responsibilities. +**Public methods:** `index(LandingTeacherRequest $request)`, `teacher(LandingTeacherRequest $request)`, `parent()`, `administrator()`, `admin()`, `student()`, `guest()` +**Detected dependencies:** Services: `LandingPageService` | Requests: `LandingTeacherRequest` | Resources: `LandingPageResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### PageController +**File:** `Api/Frontend/PageController.php` +**Purpose:** serve page API responsibilities. +**Public methods:** `privacyPolicy()`, `termsOfService()`, `helpCenter()`, `submitContact(ContactSubmitRequest $request)` +**Detected dependencies:** Services: `ContactSubmissionService`, `StaticPageService` | Requests: `ContactSubmitRequest` | Resources: `ContactSubmissionResource`, `PageContentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Grading + +### GradingController +**File:** `Api/Grading/GradingController.php` +**Purpose:** manage academic scoring/grading workflow for grading. +**Public methods:** `overview(GradingOverviewRequest $request)`, `show(GradingScoreShowRequest $request, string $type, int $classSectionId, int $studentId)`, `update(GradingScoreUpdateRequest $request)`, `toggleLock(GradingLockRequest $request)`, `lockAll(GradingLockAllRequest $request)`, `refresh(GradingRefreshRequest $request)`, `placement(PlacementRequest $request)`, `updatePlacementLevel(PlacementLevelRequest $request)`, `updatePlacementLevels(PlacementLevelsRequest $request)`, `createPlacementBatch(PlacementBatchRequest $request)`, `showPlacementBatch(int $batchId)`, `updatePlacementBatch(PlacementBatchUpdateRequest $request, int $batchId)`, `belowSixty(BelowSixtyListRequest $request)`, `belowSixtyEmail(BelowSixtyEmailRequest $request)`, `sendBelowSixtyEmail(BelowSixtySendRequest $request)`, `updateBelowSixtyStatus(BelowSixtyStatusRequest $request)`, `belowSixtyMeeting(BelowSixtyMeetingRequest $request)`, `saveBelowSixtyMeeting(BelowSixtyMeetingSaveRequest $request)` +**Detected dependencies:** Services: `GradingBelowSixtyService`, `GradingLockService`, `GradingOverviewService`, `GradingPlacementService`, `GradingRefreshService`, `GradingScoreService` | Requests: `BelowSixtyEmailRequest`, `BelowSixtyMeetingRequest`, `BelowSixtyMeetingSaveRequest`, `BelowSixtySendRequest`, `BelowSixtyStatusRequest`, `BelowSixtyListRequest`, `GradingLockAllRequest`, `GradingLockRequest`… | Resources: `BelowSixtyStudentResource`, `GradingScoreResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: show success, missing record, unauthorized record; update authorization, partial payload, concurrency/transaction rollback. + +### HomeworkTrackingController +**File:** `Api/Grading/HomeworkTrackingController.php` +**Purpose:** manage academic scoring/grading workflow for homework tracking. +**Public methods:** `index(HomeworkTrackingRequest $request)` +**Detected dependencies:** Services: `HomeworkTrackingService` | Requests: `HomeworkTrackingRequest` | Resources: `HomeworkTrackingTeacherResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +## Incidents + +### IncidentController +**File:** `Api/Incidents/IncidentController.php` +**Purpose:** serve incident API responsibilities. +**Public methods:** `current()`, `formMeta()`, `history(IncidentListRequest $request)`, `processed(IncidentListRequest $request)`, `analysis(IncidentListRequest $request)`, `studentsByGrade(int $gradeId)`, `store(Request $request)`, `updateState(IncidentStateRequest $request, int $incidentId)`, `close(Request $request, int $incidentId)`, `cancel(IncidentCancelRequest $request, int $incidentId)` +**Detected dependencies:** Services: `CurrentIncidentService`, `IncidentAnalysisService`, `IncidentHistoryService` | Requests: `IncidentCancelRequest`, `IncidentCloseRequest`, `IncidentListRequest`, `IncidentStateRequest` | Resources: `IncidentAnalysisStudentResource`, `IncidentGradeResource`, `IncidentResource`, `IncidentStudentOptionResource` | Models: `Configuration` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- Feature tests: create/submit validation, happy path, duplicate submission. + +## Inventory + +### InventoryCategoryController +**File:** `Api/Inventory/InventoryCategoryController.php` +**Purpose:** provide CRUD API endpoints for inventory category. +**Public methods:** `index(InventoryCategoryIndexRequest $request)`, `store(InventoryCategoryStoreRequest $request)`, `update(InventoryCategoryUpdateRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `InventoryCategoryService` | Requests: `InventoryCategoryIndexRequest`, `InventoryCategoryStoreRequest`, `InventoryCategoryUpdateRequest` | Resources: `InventoryCategoryResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### InventoryController +**File:** `Api/Inventory/InventoryController.php` +**Purpose:** serve inventory API responsibilities. +**Public methods:** `index(InventoryItemIndexRequest $request)`, `show(int $id)`, `store(InventoryItemStoreRequest $request)`, `update(InventoryItemUpdateRequest $request, int $id)`, `destroy(int $id)`, `audit(InventoryAuditRequest $request, int $id)`, `adjust(InventoryAdjustRequest $request, int $id)`, `summary(string $type)`, `summaryAll()`, `teacherDistribution(InventoryTeacherDistributionRequest $request)`, `teacherDistributionStore(InventoryTeacherDistributionStoreRequest $request)` +**Detected dependencies:** Services: `InventoryItemService`, `InventorySummaryService`, `InventoryTeacherDistributionService` | Requests: `InventoryAdjustRequest`, `InventoryAuditRequest`, `InventoryItemIndexRequest`, `InventoryItemStoreRequest`, `InventoryItemUpdateRequest`, `InventoryTeacherDistributionRequest`, `InventoryTeacherDistributionStoreRequest` | Resources: `InventoryItemResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### InventoryMovementController +**File:** `Api/Inventory/InventoryMovementController.php` +**Purpose:** serve inventory movement API responsibilities. +**Public methods:** `index(InventoryMovementIndexRequest $request)`, `store(InventoryMovementStoreRequest $request)`, `update(InventoryMovementUpdateRequest $request, int $id)`, `destroy(int $id)`, `bulkDelete(InventoryMovementBulkDeleteRequest $request)` +**Detected dependencies:** Services: `InventoryMovementService` | Requests: `InventoryMovementBulkDeleteRequest`, `InventoryMovementIndexRequest`, `InventoryMovementStoreRequest`, `InventoryMovementUpdateRequest` | Resources: `InventoryMovementResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### SupplierController +**File:** `Api/Inventory/SupplierController.php` +**Purpose:** provide CRUD API endpoints for supplier. +**Public methods:** `index(SupplierIndexRequest $request)`, `store(SupplierStoreRequest $request)`, `update(SupplierUpdateRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `SupplierService` | Requests: `SupplierIndexRequest`, `SupplierStoreRequest`, `SupplierUpdateRequest` | Resources: `SupplierResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### SupplyCategoryController +**File:** `Api/Inventory/SupplyCategoryController.php` +**Purpose:** provide CRUD API endpoints for supply category. +**Public methods:** `index()`, `store(SupplyCategoryStoreRequest $request)`, `update(SupplyCategoryUpdateRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `SupplyCategoryService` | Requests: `SupplyCategoryStoreRequest`, `SupplyCategoryUpdateRequest` | Resources: `SupplyCategoryResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Messaging + +### MessagesController +**File:** `Api/Messaging/MessagesController.php` +**Purpose:** serve messages API responsibilities. +**Public methods:** `index(MessageIndexRequest $request)`, `inbox(MessageIndexRequest $request)`, `sent(MessageIndexRequest $request)`, `drafts(MessageIndexRequest $request)`, `trash(MessageIndexRequest $request)`, `show(int $id)`, `store(MessageSendRequest $request)`, `receive()`, `recipients(string $type)`, `update(MessageUpdateRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `MessageCommandService`, `MessageQueryService`, `MessageRecipientService` | Requests: `MessageIndexRequest`, `MessageSendRequest`, `MessageUpdateRequest` | Resources: `MessageCollection`, `MessageResource`, `RecipientResource` | Models: `Message` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### WhatsappController +**File:** `Api/Messaging/WhatsappController.php` +**Purpose:** serve whatsapp API responsibilities. +**Public methods:** `index(WhatsappLinkIndexRequest $request)`, `show(int $linkId)`, `store(WhatsappLinkStoreRequest $request)`, `update(WhatsappLinkUpdateRequest $request, int $linkId)`, `destroy(int $linkId)`, `parentContacts(WhatsappParentContactsRequest $request)`, `parentContactsByClass(WhatsappParentContactsByClassRequest $request)`, `sendInvites(WhatsappInviteSendRequest $request)`, `updateMembership(WhatsappMembershipUpdateRequest $request)` +**Detected dependencies:** Services: `WhatsappContactService`, `WhatsappContextService`, `WhatsappInviteService`, `WhatsappLinkService`, `WhatsappMembershipService` | Requests: `WhatsappInviteSendRequest`, `WhatsappLinkIndexRequest`, `WhatsappLinkStoreRequest`, `WhatsappLinkUpdateRequest`, `WhatsappMembershipUpdateRequest`, `WhatsappParentContactsByClassRequest`, `WhatsappParentContactsRequest` | Resources: `WhatsappClassSectionContactResource`, `WhatsappGroupLinkCollection`, `WhatsappGroupLinkResource`, `WhatsappParentContactResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Notifications + +### NotificationController +**File:** `Api/Notifications/NotificationController.php` +**Purpose:** serve notification API responsibilities. +**Public methods:** `index(NotificationIndexRequest $request)`, `show(int $notificationId)`, `store(NotificationSendRequest $request)`, `update(NotificationUpdateRequest $request, int $notificationId)`, `destroy(int $notificationId)`, `restore(int $notificationId)`, `markRead(int $notificationId)`, `active(NotificationActiveRequest $request)`, `deleted(NotificationDeletedRequest $request)` +**Detected dependencies:** Services: `NotificationActiveService`, `NotificationDeletedService`, `NotificationManagementService`, `NotificationReadService`, `NotificationSendService`, `NotificationShowService`, `NotificationUserListService` | Requests: `NotificationActiveRequest`, `NotificationDeletedRequest`, `NotificationIndexRequest`, `NotificationSendRequest`, `NotificationUpdateRequest` | Resources: `NotificationResource`, `UserNotificationResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Parents + +### AuthorizedUserInviteController +**File:** `Api/Parents/AuthorizedUserInviteController.php` +**Purpose:** handle authentication/authorization workflow for authorized user invite. +**Public methods:** `confirm(Request $request)`, `setPasswordForm(Request $request, int $authorizedUserId)`, `savePassword(Request $request, int $authorizedUserId)` +**Detected dependencies:** Services: `AuthorizedUsersManagementService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception; role matrix: allowed, denied, expired session. + +### AuthorizedUsersController +**File:** `Api/Parents/AuthorizedUsersController.php` +**Purpose:** handle authentication/authorization workflow for authorized users. +**Public methods:** `index()`, `show(int $id)`, `store(StoreAuthorizedUserRequest $request)`, `update(UpdateAuthorizedUserRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `AuthorizedUsersManagementService` | Requests: `StoreAuthorizedUserRequest`, `UpdateAuthorizedUserRequest` | Models: `AuthorizedUser` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record; role matrix: allowed, denied, expired session. + +### ParentAttendanceReportController +**File:** `Api/Parents/ParentAttendanceReportController.php` +**Purpose:** manage attendance workflow for parent attendance report. +**Public methods:** `form()`, `submit(ParentAttendanceReportSubmitRequest $request)`, `list(ParentAttendanceReportListRequest $request)`, `checkExisting(ParentAttendanceReportCheckRequest $request)`, `update(ParentAttendanceReportUpdateRequest $request, int $reportId)` +**Detected dependencies:** Services: `ParentAttendanceReportService` | Requests: `ParentAttendanceReportSubmitRequest`, `ParentAttendanceReportListRequest`, `ParentAttendanceReportCheckRequest`, `ParentAttendanceReportUpdateRequest` | Resources: `ParentAttendanceReportResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback. + +### ParentController +**File:** `Api/Parents/ParentController.php` +**Purpose:** manage school identity and operations workflow for parent. +**Public methods:** `attendance(ParentAttendanceRequest $request)`, `invoices(ParentInvoiceRequest $request)`, `enrollments(ParentEnrollmentRequest $request)`, `updateEnrollments(ParentEnrollmentActionRequest $request)`, `registration()`, `storeRegistration(ParentRegistrationRequest $request)`, `updateStudent(ParentStudentUpdateRequest $request, int $studentId)`, `deleteStudent(int $studentId)`, `emergencyContacts()`, `storeEmergencyContact(ParentEmergencyContactRequest $request)`, `updateEmergencyContact(ParentEmergencyContactRequest $request, int $contactId)`, `profile()`, `updateProfile(ParentProfileUpdateRequest $request)`, `events()`, `updateParticipation(ParentEventParticipationRequest $request)` +**Detected dependencies:** Services: `ParentAttendanceService`, `ParentEmergencyContactService`, `ParentEnrollmentService`, `ParentEventParticipationService`, `ParentInvoiceService`, `ParentProfileService`, `ParentRegistrationService` | Requests: `ParentAttendanceRequest`, `ParentEnrollmentActionRequest`, `ParentEnrollmentRequest`, `ParentEmergencyContactRequest`, `ParentEventParticipationRequest`, `ParentInvoiceRequest`, `ParentProfileUpdateRequest`, `ParentRegistrationRequest`… | Resources: `ParentAttendanceResource`, `ParentEmergencyContactResource`, `ParentStudentResource`, `InvoiceResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### ParentPromotionController +**File:** `Api/Parents/ParentPromotionController.php` +**Purpose:** manage school identity and operations workflow for parent promotion. +**Public methods:** `overview(ParentPromotionOverviewRequest $request)`, `show(int $promotionId)`, `start(int $promotionId)`, `updateSteps(ParentEnrollmentStepRequest $request, int $promotionId)`, `submit(int $promotionId)` +**Detected dependencies:** Services: `PromotionEnrollmentService`, `PromotionQueryService` | Requests: `ParentEnrollmentStepRequest`, `ParentPromotionOverviewRequest` | Resources: `StudentPromotionResource` | Models: `Student`, `StudentPromotionRecord` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission. + +## PrintRequests + +### PrintRequestsController +**File:** `Api/PrintRequests/PrintRequestsController.php` +**Purpose:** serve print requests API responsibilities. +**Public methods:** `teacher()`, `admin()`, `store(Request $request)`, `teacherUpdate(Request $request, int $id)`, `adminStatus(Request $request, int $id)`, `destroy(int $id)`, `copy(int $id)`, `handCopy(Request $request)`, `download(int $id)` +**Detected dependencies:** Services: `PrintRequestsPortalService` | Models: `PrintRequest`, `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: create/submit validation, happy path, duplicate submission; delete success, already deleted, protected record. + +## Public + +### PublicWinnersController +**File:** `Api/Public/PublicWinnersController.php` +**Purpose:** serve public winners API responsibilities. +**Public methods:** `competitionIndex()`, `competitionShow(int $id)` +**Detected dependencies:** Services: `PublicWinnersPortalService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Reports + +### FilesController +**File:** `Api/Reports/FilesController.php` +**Purpose:** serve files API responsibilities. +**Public methods:** `receipt(FileNameRequest $request, string $name)`, `reimb(FileNameRequest $request, string $name)`, `earlyDismissalSignature(FileNameRequest $request, string $name)`, `examDraftTeacher(FileNameRequest $request, string $name)`, `examDraftFinal(FileNameRequest $request, string $name)` +**Detected dependencies:** Services: `ExamDraftDownloadNameService`, `FileServeService` | Requests: `FileNameRequest` | Resources: `FileMetaResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### ReportCardsController +**File:** `Api/Reports/ReportCardsController.php` +**Purpose:** serve report cards API responsibilities. +**Public methods:** `meta(ReportCardMetaRequest $request)`, `completeness(ReportCardCompletenessRequest $request)`, `acknowledgement(Request $request)`, `studentReport(ReportCardPdfRequest $request, int $studentId)`, `classReport(ReportCardPdfRequest $request, int $classSectionId)` +**Detected dependencies:** Services: `ReportCardService` | Requests: `ReportCardCompletenessRequest`, `ReportCardMetaRequest`, `ReportCardPdfRequest` | Resources: `ReportCardAcknowledgementResource`, `ReportCardClassSectionResource`, `ReportCardCompletenessStudentResource`, `ReportCardStudentMetaResource` | Models: `Configuration` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### SlipPrinterController +**File:** `Api/Reports/SlipPrinterController.php` +**Purpose:** serve slip printer API responsibilities. +**Public methods:** `print(SlipPrintRequest $request)`, `preview(SlipPreviewRequest $request)`, `logs(SlipLogListRequest $request)`, `reprint(SlipReprintRequest $request)` +**Detected dependencies:** Services: `SlipPrinterService` | Requests: `SlipLogListRequest`, `SlipPreviewRequest`, `SlipPrintRequest`, `SlipReprintRequest` | Resources: `LateSlipLogResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### StickersController +**File:** `Api/Reports/StickersController.php` +**Purpose:** serve stickers API responsibilities. +**Public methods:** `formData(StickerFormDataRequest $request)`, `studentsByClass(StickerStudentsByClassRequest $request)`, `print(StickerPrintRequest $request)` +**Detected dependencies:** Services: `StickerPresetService`, `StickerPrintService`, `StickerQueryService` | Requests: `StickerFormDataRequest`, `StickerPrintRequest`, `StickerStudentsByClassRequest` | Resources: `StickerClassSectionResource`, `StickerPresetResource`, `StickerStudentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Root + +### BaseApiController +**File:** `Api/BaseApiController.php` +**Purpose:** shared API response, validation, auth, and compatibility foundation. +**Public methods:** _No public endpoint methods detected._ +**Detected dependencies:** Models: `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- This controller is large enough to hide bugs. Split orchestration from business logic before it becomes archaeology. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### RolePermissionController +**File:** `Api/RolePermissionController.php` +**Purpose:** handle authentication/authorization workflow for role permission. +**Public methods:** `roles(RoleListRequest $request)`, `showRole(int $roleId)`, `storeRole(RoleStoreRequest $request)`, `updateRole(RoleUpdateRequest $request, int $roleId)`, `deleteRole(int $roleId)`, `users(UserRoleListRequest $request)`, `assignRoles(AssignUserRolesRequest $request, int $userId)`, `permissions()`, `showPermission(int $permissionId)`, `storePermission(PermissionStoreRequest $request)`, `updatePermission(PermissionUpdateRequest $request, int $permissionId)`, `deletePermission(int $permissionId)`, `rolePermissions(int $roleId)`, `updateRolePermissions(RolePermissionUpdateRequest $request, int $roleId)` +**Detected dependencies:** Services: `PermissionCrudService`, `RoleAssignmentService`, `RoleCrudService`, `RolePermissionService`, `RoleQueryService` | Requests: `AssignUserRolesRequest`, `PermissionStoreRequest`, `PermissionUpdateRequest`, `RoleListRequest`, `RolePermissionUpdateRequest`, `RoleStoreRequest`, `RoleUpdateRequest`, `UserRoleListRequest` | Resources: `PermissionResource`, `RolePermissionResource`, `RoleResource`, `UserWithRolesResource` | Models: `Permission`, `Role` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: update authorization, partial payload, concurrency/transaction rollback; role matrix: allowed, denied, expired session. + +### RoleSwitcherController +**File:** `Api/RoleSwitcherController.php` +**Purpose:** handle authentication/authorization workflow for role switcher. +**Public methods:** `index()`, `switch(RoleSwitchRequest $request)` +**Detected dependencies:** Services: `RoleSwitchService` | Requests: `RoleSwitchRequest` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; role matrix: allowed, denied, expired session. + +### ScannerController +**File:** `Api/ScannerController.php` +**Purpose:** serve scanner API responsibilities. +**Public methods:** `process(Request $request)` +**Detected dependencies:** Models: `AttendanceData`, `AttendanceDay`, `AttendanceRecord`, `Configuration`, `CurrentFlag`, `LateSlipLog`, `Payment`, `SemesterScore`… + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: create/submit validation, happy path, duplicate submission. + +### StatsController +**File:** `Api/StatsController.php` +**Purpose:** provide CRUD API endpoints for stats. +**Public methods:** `index()` +**Detected dependencies:** Models: `Stats` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### UserController +**File:** `Api/UserController.php` +**Purpose:** serve user API responsibilities. +**Public methods:** `index(UserListRequest $request)`, `store(UserStoreRequest $request)`, `update(UserUpdateRequest $request, int $userId)`, `destroy(int $userId)`, `loginActivity(LoginActivityRequest $request)` +**Detected dependencies:** Services: `LoginActivityService`, `UserListService`, `UserManagementService` | Requests: `LoginActivityRequest`, `UserListRequest`, `UserStoreRequest`, `UserUpdateRequest` | Resources: `LoginActivityResource`, `UserWithRolesResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Scores + +### FinalController +**File:** `Api/Scores/FinalController.php` +**Purpose:** manage academic scoring/grading workflow for final. +**Public methods:** `index(Request $request)`, `update(ScoreUpdateRequest $request)`, `bySchoolYear(Request $request)` +**Detected dependencies:** Services: `ExamScoreService`, `SemesterScoreService` | Requests: `ScoreUpdateRequest` | Resources: `ScoreStudentResource` | Models: `Student` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### HomeworkController +**File:** `Api/Scores/HomeworkController.php` +**Purpose:** manage academic scoring/grading workflow for homework. +**Public methods:** `index(Request $request)`, `update(ScoreUpdateRequest $request)`, `addColumn(ScoreAddColumnRequest $request)`, `bySchoolYear(Request $request)` +**Detected dependencies:** Services: `HomeworkScoreService`, `SemesterScoreService` | Requests: `ScoreAddColumnRequest`, `ScoreUpdateRequest` | Resources: `ScoreStudentResource` | Models: `Student` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### MidtermController +**File:** `Api/Scores/MidtermController.php` +**Purpose:** manage academic scoring/grading workflow for midterm. +**Public methods:** `index(Request $request)`, `update(ScoreUpdateRequest $request)`, `bySchoolYear(Request $request)` +**Detected dependencies:** Services: `ExamScoreService`, `SemesterScoreService` | Requests: `ScoreUpdateRequest` | Resources: `ScoreStudentResource` | Models: `Student` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### ParticipationController +**File:** `Api/Scores/ParticipationController.php` +**Purpose:** manage academic scoring/grading workflow for participation. +**Public methods:** `index(Request $request)`, `update(ScoreUpdateRequest $request)`, `bySchoolYear(Request $request)` +**Detected dependencies:** Services: `ParticipationScoreService`, `SemesterScoreService` | Requests: `ScoreUpdateRequest` | Resources: `ScoreStudentResource` | Models: `Student` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### ProjectController +**File:** `Api/Scores/ProjectController.php` +**Purpose:** manage academic scoring/grading workflow for project. +**Public methods:** `index(Request $request)`, `update(ScoreUpdateRequest $request)`, `addColumn(ScoreAddColumnRequest $request)`, `bySchoolYear(Request $request)` +**Detected dependencies:** Services: `ProjectScoreService`, `SemesterScoreService` | Requests: `ScoreAddColumnRequest`, `ScoreUpdateRequest` | Resources: `ScoreStudentResource` | Models: `Student` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### QuizController +**File:** `Api/Scores/QuizController.php` +**Purpose:** manage academic scoring/grading workflow for quiz. +**Public methods:** `index(Request $request)`, `update(ScoreUpdateRequest $request)`, `addColumn(ScoreAddColumnRequest $request)`, `bySchoolYear(Request $request)` +**Detected dependencies:** Services: `QuizScoreService`, `SemesterScoreService` | Requests: `ScoreAddColumnRequest`, `ScoreUpdateRequest` | Resources: `ScoreStudentResource` | Models: `Student` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +### ScoreCommentController +**File:** `Api/Scores/ScoreCommentController.php` +**Purpose:** manage academic scoring/grading workflow for score comment. +**Public methods:** `index(ScoreCommentListRequest $request)`, `store(ScoreCommentSaveRequest $request)`, `update(ScoreCommentUpdateRequest $request)` +**Detected dependencies:** Services: `ScoreCommentService` | Requests: `ScoreCommentListRequest`, `ScoreCommentSaveRequest`, `ScoreCommentUpdateRequest` | Resources: `ScoreCommentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback. + +### ScoreController +**File:** `Api/Scores/ScoreController.php` +**Purpose:** manage academic scoring/grading workflow for score. +**Public methods:** `overview(ScoreOverviewRequest $request)`, `lock(ScoreLockRequest $request)`, `studentScores(ScoreStudentRequest $request)` +**Detected dependencies:** Services: `ScoreDashboardService` | Requests: `ScoreLockRequest`, `ScoreOverviewRequest`, `ScoreStudentRequest` | Resources: `ScoreStudentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### ScorePredictorController +**File:** `Api/Scores/ScorePredictorController.php` +**Purpose:** manage academic scoring/grading workflow for score predictor. +**Public methods:** `index(ScorePredictorRequest $request)` +**Detected dependencies:** Services: `ScorePredictorService` | Requests: `ScorePredictorRequest` | Resources: `ScorePredictorStudentResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Validate file type, size, storage path, and access ownership. +- Generated documents need reproducible inputs and predictable naming. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +## Settings + +### ConfigurationAdminController +**File:** `Api/Settings/ConfigurationAdminController.php` +**Purpose:** serve configuration admin API responsibilities. +**Public methods:** `index()`, `store(ConfigurationStoreRequest $request)`, `update(ConfigurationUpdateRequest $request, int $id)`, `destroy(int $id)`, `getByKey(string $configKey)` +**Detected dependencies:** Services: `ConfigurationService` | Requests: `ConfigurationStoreRequest`, `ConfigurationUpdateRequest` | Resources: `ConfigurationResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### EventController +**File:** `Api/Settings/EventController.php` +**Purpose:** serve event API responsibilities. +**Public methods:** `index(EventIndexRequest $request)`, `show(int $eventId)`, `store(EventStoreRequest $request)`, `update(EventUpdateRequest $request, int $eventId)`, `destroy(int $eventId)`, `charges(EventChargeIndexRequest $request)`, `updateCharges(EventChargeUpdateRequest $request, int $eventId)`, `studentsWithCharges(EventStudentsWithChargesRequest $request)` +**Detected dependencies:** Services: `EventCategoryService`, `EventChargeQueryService`, `EventChargeService`, `EventListService`, `EventManagementService`, `EventStudentChargeService` | Requests: `EventChargeIndexRequest`, `EventChargeUpdateRequest`, `EventIndexRequest`, `EventStoreRequest`, `EventStudentsWithChargesRequest`, `EventUpdateRequest` | Resources: `EventChargeResource`, `EventResource`, `EventStudentChargeResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Money operations must be idempotent, auditable, and transaction-safe. +- Never trust client-calculated totals; recompute server-side. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### PolicyController +**File:** `Api/Settings/PolicyController.php` +**Purpose:** serve policy API responsibilities. +**Public methods:** `school(PolicyShowRequest $request)`, `picture(PolicyShowRequest $request)` +**Detected dependencies:** Services: `PolicyContentService` | Requests: `PolicyShowRequest` | Resources: `PolicyResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### PreferencesController +**File:** `Api/Settings/PreferencesController.php` +**Purpose:** serve preferences API responsibilities. +**Public methods:** `index(PreferencesIndexRequest $request)`, `show()`, `showForUser(int $userId)`, `store(PreferencesUpsertRequest $request)`, `updateForUser(PreferencesUpsertRequest $request, int $userId)`, `destroy(int $userId)` +**Detected dependencies:** Services: `PreferencesCommandService`, `PreferencesQueryService` | Requests: `PreferencesIndexRequest`, `PreferencesUpsertRequest` | Resources: `PreferencesCollection`, `PreferencesResource` | Models: `Preferences` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; delete success, already deleted, protected record. + +### SchoolCalendarController +**File:** `Api/Settings/SchoolCalendarController.php` +**Purpose:** serve school calendar API responsibilities. +**Public methods:** `options(SchoolCalendarOptionsRequest $request)`, `index(SchoolCalendarIndexRequest $request)`, `teacherCalendarLegacy(SchoolCalendarIndexRequest $request)`, `show(int $eventId)`, `store(SchoolCalendarStoreRequest $request)`, `update(SchoolCalendarUpdateRequest $request, int $eventId)`, `destroy(int $eventId)` +**Detected dependencies:** Services: `SchoolCalendarContextService`, `SchoolCalendarFormatterService`, `SchoolCalendarMeetingService`, `SchoolCalendarMutationService`, `SchoolCalendarQueryService` | Requests: `SchoolCalendarIndexRequest`, `SchoolCalendarOptionsRequest`, `SchoolCalendarStoreRequest`, `SchoolCalendarUpdateRequest` | Resources: `SchoolCalendarEventDetailResource`, `SchoolCalendarEventResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Mutating endpoints need request validation, service-layer ownership, and database transactions where multiple rows change. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### SettingsController +**File:** `Api/Settings/SettingsController.php` +**Purpose:** provide CRUD API endpoints for settings. +**Public methods:** `index()`, `update(SettingsUpdateRequest $request)` +**Detected dependencies:** Services: `SettingsService` | Requests: `SettingsUpdateRequest` | Resources: `SettingsResource` | Models: `Setting` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; update authorization, partial payload, concurrency/transaction rollback. + +## Staff + +### StaffController +**File:** `Api/Staff/StaffController.php` +**Purpose:** manage school identity and operations workflow for staff. +**Public methods:** `index(StaffIndexRequest $request)`, `show(int $id)`, `store(StaffStoreRequest $request)`, `update(StaffUpdateRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `StaffCommandService`, `StaffQueryService` | Requests: `StaffIndexRequest`, `StaffStoreRequest`, `StaffUpdateRequest` | Resources: `StaffCollection`, `StaffResource` | Models: `Staff` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +### TeacherController +**File:** `Api/Staff/TeacherController.php` +**Purpose:** manage school identity and operations workflow for teacher. +**Public methods:** `classes(TeacherClassViewRequest $request)`, `switchClass(TeacherSwitchClassRequest $request)`, `absenceForm()`, `submitAbsence(TeacherAbsenceSubmitRequest $request)` +**Detected dependencies:** Services: `TeacherAbsenceService`, `TeacherDashboardService` | Requests: `TeacherAbsenceSubmitRequest`, `TeacherClassViewRequest`, `TeacherSwitchClassRequest` | Resources: `TeacherAbsenceResource`, `TeacherClassResource`, `TeacherStudentResource` | Models: `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### TimeOffNotificationController +**File:** `Api/Staff/TimeOffNotificationController.php` +**Purpose:** manage school identity and operations workflow for time off notification. +**Public methods:** `notify(string $token)` +**Detected dependencies:** Services: `EmailDispatchService`, `StaffTimeOffLinkService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Students + +### StudentController +**File:** `Api/Students/StudentController.php` +**Purpose:** manage school identity and operations workflow for student. +**Public methods:** `assignments(StudentAssignmentListRequest $request)`, `index(Request $request)`, `scoreCardSelectable(Request $request)`, `show(int $studentId)`, `store(Request $request)`, `assignClass(StudentAssignClassRequest $request)`, `removeClass(StudentRemoveClassRequest $request)`, `removed(StudentAssignmentListRequest $request)`, `setActive(StudentSetActiveRequest $request)`, `autoDistribute(StudentAutoDistributeRequest $request)`, `promotionTotals(StudentPromotionTotalsRequest $request)`, `update(StudentUpdateRequest $request, int $studentId)`, `destroy(int $studentId)`, `classes(Request $request, int $studentId)`, `assignClassForStudent(Request $request, int $studentId)`, `removeClassForStudent(int $studentId, int $classSectionId)`, `promote(Request $request, int $studentId)`, `attendance(Request $request, int $studentId)`, `incidents(Request $request, int $studentId)`, `scores(Request $request, int $studentId)`, `notes(int $studentId)`, `parents(int $studentId)`, `emergencyContacts(int $studentId)`, `addEmergencyContact(Request $request, int $studentId)`, `updateEmergencyContact(Request $request, int $studentId, int $contactId)`, `updateBadgeScan(Request $request, int $studentId)`, `uploadPhoto(Request $request, int $studentId)`, `photo(int $studentId)`, `scoreCard(int $studentId)` +**Detected dependencies:** Services: `StudentAssignmentService`, `StudentAutoDistributionService`, `StudentDirectoryService`, `StudentProfileService`, `StudentScoreCardService`, `StudentStatusService` | Requests: `StudentAssignClassRequest`, `StudentAssignmentListRequest`, `StudentAutoDistributeRequest`, `StudentPromotionTotalsRequest`, `StudentRemoveClassRequest`, `StudentSetActiveRequest`, `StudentUpdateRequest` | Resources: `StudentAssignmentResource`, `StudentClassSectionResource`, `StudentRemovedResource`, `StudentScoreCardRowResource` | Models: `AttendanceRecord`, `ClassSection`, `EmergencyContact`, `Incident`, `SemesterScore`, `Student`, `StudentClass`, `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Attendance changes need actor, timestamp, school term, and edit history. +- Define conflict behavior for duplicate scans or same-day edits. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Subjects + +### SubjectCurriculumController +**File:** `Api/Subjects/SubjectCurriculumController.php` +**Purpose:** provide CRUD API endpoints for subject curriculum. +**Public methods:** `index()`, `show(int $id)`, `store(SubjectCurriculumStoreRequest $request)`, `update(SubjectCurriculumUpdateRequest $request, int $id)`, `destroy(int $id)` +**Detected dependencies:** Services: `SubjectCurriculumService` | Requests: `SubjectCurriculumStoreRequest`, `SubjectCurriculumUpdateRequest` | Resources: `SubjectClassResource`, `SubjectCurriculumResource` | Models: `SubjectCurriculum` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Support + +### ContactController +**File:** `Api/Support/ContactController.php` +**Purpose:** serve contact API responsibilities. +**Public methods:** `send(ContactSendRequest $request)` +**Detected dependencies:** Services: `ContactMessageService` | Requests: `ContactSendRequest` | Resources: `ContactMessageResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### SupportController +**File:** `Api/Support/SupportController.php` +**Purpose:** serve support API responsibilities. +**Public methods:** `index(SupportRequestIndexRequest $request)`, `store(SupportRequestStoreRequest $request)`, `teacher()` +**Detected dependencies:** Services: `SupportRequestService` | Requests: `SupportRequestIndexRequest`, `SupportRequestStoreRequest` | Resources: `SupportRequestCollection`, `SupportRequestResource` | Models: `SupportRequest` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; create/submit validation, happy path, duplicate submission. + +## System + +### AccessDeniedController +**File:** `Api/System/AccessDeniedController.php` +**Purpose:** serve access denied API responsibilities. +**Public methods:** `accessDenied()` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### DashboardController +**File:** `Api/System/DashboardController.php` +**Purpose:** serve dashboard API responsibilities. +**Public methods:** `route()` +**Detected dependencies:** Services: `DashboardRouteService` | Resources: `DashboardRouteResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### DashboardRedirectController +**File:** `Api/System/DashboardRedirectController.php` +**Purpose:** serve dashboard redirect API responsibilities. +**Public methods:** `dashboard()` +**Detected dependencies:** Services: `ApplicationUrlService`, `DashboardRouteService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### DatabaseHealthController +**File:** `Api/System/DatabaseHealthController.php` +**Purpose:** provide CRUD API endpoints for database health. +**Public methods:** `index()` +**Detected dependencies:** Services: `DatabaseHealthService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### HealthController +**File:** `Api/System/HealthController.php` +**Purpose:** provide CRUD API endpoints for health. +**Public methods:** `index()` +**Detected dependencies:** Services: `HealthCheckService` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +### NavBuilderController +**File:** `Api/System/NavBuilderController.php` +**Purpose:** serve nav builder API responsibilities. +**Public methods:** `menu()`, `data()`, `store(NavItemStoreRequest $request)`, `destroy(int $id)`, `reorder(NavItemReorderRequest $request)` +**Detected dependencies:** Services: `NavBuilderService`, `NavbarService` | Requests: `NavItemReorderRequest`, `NavItemStoreRequest` | Resources: `NavBuilderDataResource`, `NavItemResource` | Models: `NavItem` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: create/submit validation, happy path, duplicate submission; delete success, already deleted, protected record. + +### SchoolIdController +**File:** `Api/System/SchoolIdController.php` +**Purpose:** serve school id API responsibilities. +**Public methods:** `assign(SchoolIdAssignRequest $request)`, `generateStudent()`, `generateUser()` +**Detected dependencies:** Services: `SchoolIdAssignmentService`, `SchoolIdGenerationService` | Requests: `SchoolIdAssignRequest` | Resources: `SchoolIdResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### SemesterRangeController +**File:** `Api/System/SemesterRangeController.php` +**Purpose:** serve semester range API responsibilities. +**Public methods:** `schoolYearRange(SchoolYearRangeRequest $request)`, `semesterRange(SemesterRangeRequest $request)`, `normalize(SemesterNormalizeRequest $request)`, `resolve(SemesterResolveRequest $request)` +**Detected dependencies:** Services: `SemesterRangeService` | Requests: `SchoolYearRangeRequest`, `SemesterNormalizeRequest`, `SemesterRangeRequest`, `SemesterResolveRequest` | Resources: `SemesterRangeResource`, `SemesterResolveResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### StatsController +**File:** `Api/System/StatsController.php` +**Purpose:** provide CRUD API endpoints for stats. +**Public methods:** `index()` +**Detected dependencies:** Models: `Stats` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Rate-limit sends and record delivery state; retries must not spam families into oblivion. +- Sanitize templates and recipient selection. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping. + +## Ui + +### UiController +**File:** `Api/Ui/UiController.php` +**Purpose:** serve ui API responsibilities. +**Public methods:** `style(UiStyleRequest $request)` +**Detected dependencies:** Services: `UiStyleService` | Requests: `UiStyleRequest` | Resources: `UiStyleResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +## Users + +### UserController +**File:** `Api/Users/UserController.php` +**Purpose:** serve user API responsibilities. +**Public methods:** `index(UserListRequest $request)`, `store(UserStoreRequest $request)`, `show(int $userId)`, `update(UserUpdateRequest $request, int $userId)`, `destroy(int $userId)`, `loginActivity(LoginActivityRequest $request)` +**Detected dependencies:** Services: `LoginActivityService`, `UserListService`, `UserManagementService` | Requests: `LoginActivityRequest`, `UserListRequest`, `UserStoreRequest`, `UserUpdateRequest` | Resources: `LoginActivityResource`, `UserWithRolesResource` | Models: `User` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Authorization boundaries are the product, not decoration. Test forbidden paths first. +- Avoid leaking whether accounts, roles, or sessions exist unless intended. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: list/filter pagination, empty result, invalid filter, tenant scoping; show success, missing record, unauthorized record; create/submit validation, happy path, duplicate submission; update authorization, partial payload, concurrency/transaction rollback; delete success, already deleted, protected record. + +## Utilities + +### PhoneFormatterController +**File:** `Api/Utilities/PhoneFormatterController.php` +**Purpose:** serve phone formatter API responsibilities. +**Public methods:** `format(PhoneFormatRequest $request)` +**Detected dependencies:** Services: `PhoneFormatterService` | Requests: `PhoneFormatRequest` | Resources: `PhoneFormatResource` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Keep validation in existing FormRequest classes; check required fields, enum values, date ranges, IDs, file constraints, and cross-field rules. +- Keep controller as orchestration only; move rules/calculation/query composition into the detected service layer and unit-test those services directly. +- Scope every query by school/tenant and role. Humans love accidental data leaks. +- Protect PII in logs, exports, and error payloads. +- Feature tests: happy path, unauthorized path, invalid input, service exception. + +### ProofreadController +**File:** `Api/Utilities/ProofreadController.php` +**Purpose:** serve proofread API responsibilities. +**Public methods:** `check(Request $request)` + +**Plan** +- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape. +- Add dedicated FormRequest classes where this still uses raw `Request`; inline validation is a trap wearing a tiny fake mustache. +- Extract business logic into service/action classes if the controller currently queries models or mutates state directly. +- Feature tests: happy path, unauthorized path, invalid input, service exception. diff --git a/docs/modular_plans/.DS_Store b/docs/modular_plans/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ace80cd155c22adc26326bcaf30931492d9756a3 GIT binary patch literal 10244 zcmeHMOK=oL818=(pvMsyLU=pu$Rb2YicJhrL~*l8EEDoTHjpPQvpWMBnaqTp*-bDN zD_+zRv^;6~Do^e3c9EaH$1@k#D7>qrqH z5FrpD5FrpD5Fs!d5Ww$jR;VIm)J6zI2t)`>A;8`bI#wo=p_~+wzdEqtDFDiHRP%y; z%mcWO9?E1WCxzs$7*k{q5V}H`Vt{bRd7YV~Oonn&Na0RExDyChhA=|`zB>Bp+?+sC z$f%7Fh!D6O0hYUKn6n!skM-jGeTaDY$FlhxN|ywf+mB(JAtPi6ZG9ZqwmM!e>v&m= z!icw!)$?JQS>)`fKN3cMH#_3kevn9<1*xoj&fIx)9#!a`^pH224ve7Sr;Pjn8+Ci0 zlP&d)>~7l{&8U@4o*NjpYvs9vZCYqD*kik42UBe+E@5WbVhd@-JCk792I;5vS>NkCB6 zQ-a|05(M%!iZWm8?du;H+>=q&f^Y4#93!xcRN-smCKp^vL3#^W`%u9S4y$oW#S+?@ zxJ=dKgC_2=!!ubxlh0_{n)Q?pFnv?r!d9piZDTb$7~MYZIDE=PEk1(ZeGm_da8))p zP+2v1IY!oULe;HXQMJ9NC^j4_??_U45mfi)yy0QojxW?&a|@;FCwtl2?S>z8jacr~ zQ#H3z+V2k;d8=y_Pio1dgHrxMqMo_5n0DahIUrqYG_8+?YBWvD#C@+^zM?|w)^=0% zH2SEvTeOiI_$dgA(0J)o#*-UFH~yik^B#veo=gaJr4Ums`)1Zif}}_r*^AsiOpcJp z$#djQa-6(HPLNaNEcudrM}8zfk)O#gsKad?5@_f?d=`2mY|<4V3b^3xn$`w{e}&j>TkI{HFa#oK`)){i#fw-GL2lE zCj1;-dcHY%mDRCb$Rlg)0(%9UOB`0`F~-m{%=&sI9#iKa)5LI{QWaC@BFn^ZW2`2o zN=R-oOvLIGwG62%bKlLe8bt*v23wS^idv2&7Q<~yQc(%MR>ZI=))G@0Bk8}zjg#aw zIfvZ%9=Y)svVy`g(2)}fXn<{yghptF7U+Z>a5to(8}>j3_Hk}F;DQH-AP?injQd~` z?nh=Eg-75~c!Kle8RW+c@FKhfFT*Qv9Nva^;5~SsGvyR~3SYptmz@31>1Q8)o!Qwh zrt_}jxd$*xiCxndh(-|t5dskc5dskc5dyOjfim$>I=laGx%%(_v+>cRXNnMr5cr1> zfb!;aa|(l9?H_q|*REsThm{p(Hz_1{!G>SQqvY4|IAGWDRalvAc(K6y$xt^bBzH#} X?v7I2=Kohe21NOPl>h%<^Z&mAzWeTu literal 0 HcmV?d00001 diff --git a/docs/modular_plans/app_project_plan_global_modular_islamic.md b/docs/modular_plans/app_project_plan_global_modular_islamic.md new file mode 100644 index 00000000..d2298a58 --- /dev/null +++ b/docs/modular_plans/app_project_plan_global_modular_islamic.md @@ -0,0 +1,2308 @@ +# App Project Implementation Plan + + +# Islamic Sunday School Alignment Update + +This plan now treats the extension domain as **Islamic Sunday School**, not a generic or church-oriented Sunday School. + +The reusable core remains `SchoolCore`. Islamic Sunday School behavior belongs in `IslamicSundaySchool` through contracts, policies, resolvers, read models, and extension profile services. + +Core must stay neutral. It must not contain Islamic Sunday School-specific concepts such as Qur'an level, Arabic level, halaqa, masjid family profile, volunteer team, imam/admin notes, Jumu'ah/program session, or Islamic studies track. Those belong in the extension layer. + +Preferred namespace: + +```text +App\Domain\IslamicSundaySchool +``` + +Legacy wording using `SundaySchool` should be treated as a migration target and renamed to `IslamicSundaySchool` as code is touched. + +--- +Generated: 2026-05-29 + +## 1. Scope and Readout + +This plan is based on the uploaded `app/` project slice. The zip contains the Laravel-style application layer, not the full repository. That means routes, migrations, config outside `app/`, composer metadata, tests, CI, frontend assets, and deployment files were not available unless embedded in this directory. So the plan avoids pretending the missing pieces magically exist, a level of honesty software planning could use more often. + +### Inventory + +- Real project files inspected: **1184** +- PHP files inspected: **1183** +- Approximate PHP LOC: **103,161** +- Controllers: **129** +- Models: **133** +- Services: **386** +- Form requests: **298** +- API resources: **167** +- Middleware: **12** +- Console commands: **14** +- Policies: **10** + + +## 2. Project Thesis + +The app is already organized around a service-heavy backend: controllers orchestrate, request classes validate, resources shape responses, and services carry domain logic. That is the right direction. The weak point is not that the code lacks structure. The weak point is that the project is broad enough for rules to drift across domains unless the boundaries are enforced deliberately. + +The plan should therefore optimize for correctness and regression safety, not cosmetic refactors. Refactoring without tests here would be performance art with a stack trace. + + + +## 3. Main Architecture Plan + +### Target shape + +- Controllers stay thin: authorize, validate, call one service action, return one resource/response. +- Services own business rules and transactions. +- Form requests own validation and request normalization. +- Resources own response shape and avoid leaking internal model structure. +- Policies/Gates own permission checks. +- Events/listeners own async or side-effect workflows, especially communications. +- Console commands remain operational entry points only, not hidden domain logic. + +### Global school core with domain extensions + +The service layer must be redesigned as a reusable school platform, not as a Islamic Sunday School application with reusable-looking class names. A name like `StudentService` is not modular if it silently assumes masjid/community terms, semester rules, ministry roles, Islamic Sunday School attendance, or a single grading model. That is just hardcoding wearing a blazer. + +Target architecture: + +```text +app/ + Domain/ + SchoolCore/ + Identity/ + Students/ + Guardians/ + Staff/ + Enrollment/ + Attendance/ + Academics/ + Finance/ + Communication/ + Files/ + Reporting/ + Authorization/ + IslamicSundaySchool/ + Attendance/ + Classes/ + Scripture/ + MinistryRoles/ + LiturgicalCalendar/ + Extensions/ + Shared/ + Contracts/ + DTOs/ + ValueObjects/ + Events/ + Exceptions/ + Support/ +``` + +The `SchoolCore` domain defines generic behavior that any school system can use: students, guardians, staff, enrollment, attendance, classes, grades, invoices, payments, files, communication, and reporting. The `IslamicSundaySchool` domain may extend or configure those behaviors, but it must not leak Islamic Sunday School-specific rules backward into the core. + +Required dependency direction: + +```text +Controllers -> Application Services -> Domain Contracts -> Infrastructure +IslamicSundaySchool -> SchoolCore +SchoolCore -X-> IslamicSundaySchool +``` + +The core must never import from `IslamicSundaySchool`. If that rule is broken, the platform is not modular; it is a themed monolith pretending to be reusable because humans enjoy labels. + +### Service modularity rules + +- Services must expose use-case actions, not generic god-methods. Prefer `RecordPaymentAction`, `EnrollStudentAction`, `MarkAttendanceAction`, `PromoteStudentAction` over giant services with unrelated methods. +- Core services must depend on contracts/interfaces for school-specific rules. Examples: `AttendancePolicy`, `AcademicCalendarProvider`, `GradeScalePolicy`, `TuitionPolicy`, `StudentIdentifierGenerator`, `CommunicationPreferencePolicy`. +- Islamic Sunday School behavior must be implemented as concrete policies/configuration/extensions plugged into those contracts. +- Domain concepts must use neutral names in the core: `ClassGroup`, `AcademicTerm`, `Session`, `Guardian`, `StaffMember`, `AttendanceOccurrence`, `Learner`, `Program`. Islamic Sunday School-specific aliases can exist in the extension layer. +- Every service must declare whether it is `Core`, `Extension`, `Infrastructure`, or `LegacyShim`. +- A service may not read raw request data, return HTTP responses, or know controller/resource classes. That belongs at the API boundary. +- A service may not call unrelated modules directly when a domain event or contract is the safer boundary. Finance should not directly decide messaging behavior; it should emit `PaymentRecorded` and let communication listeners handle notifications. +- All module-specific defaults must come from configuration or policy classes, not hardcoded assumptions. + +### Inheritance and extension strategy + +Use inheritance sparingly. The Islamic Sunday School concept should inherit from the global project only where the base behavior is stable and narrow. For business rules, prefer composition through policy contracts. Inheritance looks elegant until the third override turns it into a family curse. + +Allowed: + +```php +interface AttendancePolicy +{ + public function resolveStatus(AttendanceContext $context): AttendanceDecision; +} + +final class StandardSchoolAttendancePolicy implements AttendancePolicy {} +final class IslamicSundaySchoolAttendancePolicy implements AttendancePolicy {} +``` + +Acceptable but limited: + +```php +abstract class BaseAttendanceService +{ + final public function mark(AttendanceCommand $command): AttendanceResult + { + // shared transaction, audit, idempotency, persistence orchestration + } + + abstract protected function policy(): AttendancePolicy; +} + +final class IslamicSundaySchoolAttendanceService extends BaseAttendanceService +{ + protected function policy(): AttendancePolicy + { + return app(IslamicSundaySchoolAttendancePolicy::class); + } +} +``` + +Forbidden: + +```php +class CoreAttendanceService +{ + public function mark($student, $date) + { + if ($student->islamic_sunday_school_class_id) { + // Islamic Sunday School-specific logic inside core. No. + } + } +} +``` + +### Multi-school reliability model + +To make the app usable by any school system, every major record must be scoped to a school, program, or tenant boundary. The plan must verify this before refactoring services, because beautiful modular code that leaks one school’s data to another is still garbage, only now with namespaces. + +Required checks: + +- Define canonical scope fields: `school_id`, `program_id`, `tenant_id`, or equivalent. +- Every query in core services must apply the correct scope through a shared `SchoolContext`. +- Policies must verify both actor permission and school/program ownership. +- Background jobs, reports, exports, file downloads, and notifications must carry the same context explicitly. +- Add tests proving cross-school isolation for students, guardians, staff, payments, attendance, grades, files, and messages. + +### Service package boundaries + +Each major service package must have four layers: + +1. `Contracts`: interfaces and extension points. +2. `Application`: use-case services/actions and transaction orchestration. +3. `Domain`: value objects, decisions, rules, events, exceptions. +4. `Infrastructure`: Eloquent repositories, storage, mail/SMS providers, external adapters. + +Controllers may use Application services only. Application services may use Domain and Contracts. Infrastructure implements Contracts. Domain must not depend on Laravel HTTP, controllers, requests, or resources. + + +### Non-negotiable rules + +- No money-changing action without an explicit transaction, audit trail, idempotency check, and test. +- No attendance, score, promotion, or enrollment mutation without actor tracking and date boundary tests. +- No file endpoint without MIME, size, storage path, authorization, and download-name tests. +- No communication endpoint without recipient preview, opt-out logic, deduplication, and send-log tests. +- No direct request parsing in controllers where a FormRequest already exists or should exist. +- No raw SQL without parameter binding review and a test proving the query behavior. +- No core service may import or reference a Islamic Sunday School namespace, table-specific shortcut, or Islamic Sunday School-specific concept. +- No reusable service is complete until it has a contract, DTO/value object input, authorization boundary, transaction rule, audit rule, and cross-school isolation test. + + +### Critical Implementation Review Queue + +These items override ordinary module cleanup. Do not spend time prettifying controllers while these can still leak data, corrupt money, or create irreversible school records. Charming architectural theater can wait. + +#### P0: Must review before feature work + +1. **Payment file access authorization** + - Replace filename-only download access with payment-id-based access. + - Load the payment/invoice/family context before resolving any file path. + - Authorize the current actor against the payment record, not against a guessed filename. + - Resolve the file path only from the stored payment record. + - Return `403` for unauthorized access and `404` for missing/unknown files. + - Required tests: finance/admin can download, unrelated parent cannot download, teacher cannot download, guessed filename cannot download, traversal-style filename fails. + +2. **Manual payment edit transaction safety** + - Wrap payment edit and invoice recalculation in one database transaction. + - Lock the payment row and linked invoice row with `lockForUpdate()` or equivalent. + - Recompute balance inside the lock. + - Reject edits that overpay, violate payment method rules, or create invalid invoice state. + - Store before/after audit details with actor ID. + - Required tests: concurrent edit, overpayment rejection, audit creation, invoice balance consistency. + +3. **Student school ID race condition** + - Remove pre-insert `max(id) + 1` generation. + - Create the student first inside a transaction. + - Generate `school_id` from the persisted student ID or a dedicated sequence. + - Add a unique database constraint on `students.school_id`. + - Add retry behavior for rare collisions. + - Required tests: two concurrent student creations cannot produce duplicate school IDs. + +4. **Scanner attendance transaction and idempotency** + - Split scanner orchestration out of the controller. + - Wrap all attendance mutations from one scan in a single transaction. + - Add an idempotency key based on badge/student/staff, scan date, station, and scan window. + - Prevent duplicate late slips, duplicate scan logs, and double attendance counts. + - Required tests: duplicate scan, late scan, staff scan, student scan, invalid badge, semester boundary. + +5. **Role and permission mutation authorization** + - Map every role/permission mutation route to a policy or gate. + - Add wrong-role and wrong-owner negative tests. + - Log actor, target, old role/permission state, and new state. + +6. **Bulk communication recipient safety** + - Require preview/dry-run before bulk send. + - Deduplicate recipients by canonical user/contact identity. + - Respect opt-out and communication preferences. + - Store send logs and failure states. + - Required tests: preview count matches send count, duplicate recipients collapse, opted-out recipients excluded. + +7. **Refund/payment/invoice audit completeness** + - Every mutation must record actor, target, amount, old state, new state, source endpoint/job, and idempotency key where applicable. + - Reports must reconcile against the same canonical ledger behavior as API reads. + +8. **Core/extension boundary enforcement** + - Create a `SchoolCore` service boundary and a separate `IslamicSundaySchool` extension boundary. + - Move reusable behavior into core contracts/actions. + - Move Islamic Sunday School-specific assumptions into policies/configuration/listeners. + - Add a static dependency check that fails if `SchoolCore` imports `IslamicSundaySchool`. + - Required tests: standard school attendance policy works without Sunday rules, Islamic Sunday School policy overrides only extension points, cross-school data isolation holds. + +9. **School context and tenant/program isolation** + - Introduce a `SchoolContext` or equivalent immutable context object. + - Require context in every core service command. + - Apply context to repositories, policies, files, jobs, reports, and notifications. + - Required tests: actor from School A cannot read or mutate School B students, payments, files, attendance, reports, or messages. + +### Module Acceptance Standard + +A module is not considered hardened unless: + +- every public endpoint has a permission rule; +- every mutation has an audit actor; +- every money, date, file, or message operation has edge-case tests; +- every response shape is documented or represented by an API Resource; +- every side effect is logged; +- every async/send action has retry and dedupe behavior; +- every legacy fallback is documented, quarantined, or removed; +- every controller-level validator has either been moved to a FormRequest or explicitly marked as temporary legacy behavior. +- every core service has been classified as reusable school-core behavior or extension-specific behavior; +- every extension-specific behavior is isolated behind a policy, configuration object, event listener, or adapter; +- every query and mutation has explicit school/program/tenant context; +- every module has at least one cross-school isolation test. + + +## 4. Evidence-Based Risk Notes + +These are not accusations; they are where bugs usually crawl out wearing a tiny hat. + +- **Raw SQL / raw query usage:** 59 files, 166 matches. +- **Direct request input access:** 50 files, 194 matches. +- **File operation endpoints:** 18 files, 34 matches. +- **Email or messaging behavior:** 62 files, 192 matches. +- **Auth/Gate/authorization usage:** 325 files, 482 matches. +- **Explicit DB transactions:** 48 files, 72 matches. +- **CodeIgniter compatibility surface:** 41 files, 62 matches. +- **Queued or dispatched work:** 7 files, 8 matches. +- **Cache-dependent behavior:** 5 files, 12 matches. + + +Review priority should follow blast radius: auth, finance, payments, attendance, grading, promotions, messaging, files, then lower-risk CRUD. + + + +## 5. Delivery Phases + +### Phase 0: Baseline and Guardrails + +- Add a project map document describing module ownership, service boundaries, and route ownership. +- Add static analysis to CI: PHPStan or Larastan, Pint/PHP-CS-Fixer, and a dead-code detector if practical. +- Add a minimal smoke test suite covering auth, health checks, and one representative CRUD module. +- Create fixtures/factories for User, Student, Family, Enrollment, Invoice, Payment, AttendanceRecord, Score, and Staff. +- Freeze API response contracts for critical endpoints with JSON snapshot tests. + +### Phase 1: Security and Access Control + +- Inventory every controller method and map required role/permission/policy. +- Build an endpoint authorization matrix with actor role, resource type, ownership boundary, action, policy/gate/middleware, and required negative tests. +- Confirm every mutation endpoint uses authorization before business logic. +- Normalize role switching/session timeout behavior and log security-relevant events. +- Review IP ban, login attempts, password reset cleanup, registration captcha, and auth session flows. +- Add negative tests proving unauthorized roles cannot read or mutate cross-family, cross-student, cross-staff, payment, invoice, file, role, or message data. +- Treat “authenticated” as insufficient for any financial, student, attendance, role, file, or communication mutation. Logged in is not allowed; it is merely present, like a bug report with no reproduction steps. + +### Phase 2: Financial Correctness + +- Define canonical money rules: rounding, currency precision, refund state machine, invoice adjustment rules, and payment reconciliation. +- Decide whether money is stored as integer cents or strict fixed-decimal values; do not use floating-point arithmetic for persistent financial state. +- Wrap invoice/payment/refund/discount/reimbursement mutations in transactions and audit logs. +- Lock invoice/payment/refund rows during balance-changing edits. +- Add idempotency rules to PayPal sync, payment notifications, manual payments, refunds, and invoice generation. +- Replace filename-driven payment file access with record-driven, authorized access. +- Build reconciliation tests: invoice total = tuition + fees + event charges + extras - discounts - refunds - payments. +- Add report consistency tests so PDFs, dashboard totals, and API totals cannot disagree like three humans in a meeting. + +### Phase 3: Student Lifecycle Correctness + +- Model the lifecycle from registration/enrollment through attendance, grading, report cards, and promotion. +- Add date boundary tests for semesters, attendance windows, class assignment windows, grading locks, and promotion deadlines. +- Centralize student/family visibility checks. +- Make promotion eligibility deterministic and explainable through audit logs. +- Add regression tests for edge cases: missing scores, below-60 notifications, class transfers, inactive students, deleted/unverified users. + +### Phase 4: Communications Reliability + +- Standardize recipient resolution for Email, Messaging, Notifications, WhatsApp, and BroadcastEmail. +- Require preview/dry-run paths for bulk sends. +- Add send logs, dedupe keys, failure states, and retry strategy. +- Separate composition from delivery. +- Test opt-outs, guardian/family recipient selection, teacher/staff targeting, and notification cleanup. + +### Phase 5: Operations and Reporting + +- Review PDF generation paths for badges, certificates, finance reports, report cards, slips, stickers, and print requests. +- Validate all file downloads and upload paths. +- Add operational health endpoints for database, config, cleanup scheduler, and time-sensitive jobs. +- Add runbooks for cleanup commands, payment sync, attendance publishing, and notification dispatch. + +### Phase 6: Documentation and API Contracts + +- Generate OpenAPI output from route definitions, once routes are included. +- Document each module: owner, purpose, inputs, outputs, permissions, side effects, and failure modes. +- Document legacy compatibility areas explicitly, especially CodeIgniter adapters and helper shims. +- Add API examples for primary user flows: login, role switch, parent dashboard, attendance submission, invoice payment, grading submission. + + + +## 5A. Modular Platform Refactor Plan + +This section converts the app from a Sunday-school-shaped backend into a reusable school platform with a Islamic Sunday School implementation layered on top. Do this incrementally. A big-bang rewrite would be a bonfire with sprint ceremonies. + +### Phase A: Classify services + +Create a service inventory with these labels: + +- `Core`: reusable for any school. +- `IslamicSundaySchoolExtension`: specific to Islamic Sunday School rules, religious calendar, ministry roles, Islamic Sunday School attendance, scripture/curriculum assumptions, masjid-family/community structures, or parish-specific reporting. +- `Infrastructure`: storage, Eloquent, mail, SMS/WhatsApp, PDF, exports, payment gateways, QR/scanner hardware. +- `LegacyShim`: compatibility wrapper pending removal. + +Acceptance criteria: + +- Every service has a classification. +- No `Core` service contains Islamic Sunday School-specific vocabulary or table assumptions. +- Duplicate services are marked canonical/shim/deprecated. +- CI/static check prevents new dependencies from `SchoolCore` to `IslamicSundaySchool`. + +### Phase B: Introduce core commands and DTOs + +Replace array-shaped service calls with typed command objects. Arrays are flexible, which is another word for “bugs can hide anywhere.” + +Examples: + +```php +final readonly class EnrollStudentCommand +{ + public function __construct( + public SchoolContext $context, + public ActorId $actorId, + public StudentProfileData $student, + public GuardianDataCollection $guardians, + public EnrollmentProgramId $programId, + ) {} +} +``` + +Acceptance criteria: + +- High-risk actions use command objects: payments, enrollment, attendance, promotion, grading, messaging, file access. +- Commands include `SchoolContext` and `ActorId`. +- Services return result DTOs, not HTTP responses. + +### Phase C: Extract policy contracts + +Create extension contracts for behavior likely to differ across school types: + +```text +AttendancePolicy +AcademicCalendarProvider +GradeScalePolicy +PromotionPolicy +TuitionPolicy +PaymentAllocationPolicy +StudentIdentifierGenerator +GuardianRelationshipPolicy +CommunicationPreferencePolicy +ReportCardTemplateProvider +FileAccessPolicy +``` + +Acceptance criteria: + +- Core services call contracts, not Islamic Sunday School-specific classes. +- Islamic Sunday School supplies concrete implementations. +- A basic non-Sunday `StandardSchool` implementation can run core tests. + +### Phase D: Split domain modules + +Refactor toward these stable core modules: + +```text +SchoolCore\Identity +SchoolCore\Students +SchoolCore\Guardians +SchoolCore\Staff +SchoolCore\Enrollment +SchoolCore\Attendance +SchoolCore\Academics +SchoolCore\Finance +SchoolCore\Communication +SchoolCore\Files +SchoolCore\Reporting +SchoolCore\Authorization +``` + +Islamic Sunday School-specific modules should live separately: + +```text +IslamicSundaySchool\Attendance +IslamicSundaySchool\Classes +IslamicSundaySchool\Curriculum +IslamicSundaySchool\MinistryRoles +IslamicSundaySchool\FamilyMasjidProfile +IslamicSundaySchool\Reports +``` + +Acceptance criteria: + +- Core modules can be tested without booting Islamic Sunday School-specific providers. +- Islamic Sunday School modules depend on core contracts/actions. +- Shared events are neutral: `StudentEnrolled`, `AttendanceMarked`, `PaymentRecorded`, not `SundayStudentCheckedIn`. + +### Phase E: Add cross-school isolation tests + +For every reusable module, add tests for: + +- School A actor cannot access School B records. +- Reports filter by context. +- Files cannot be guessed across schools. +- Background jobs preserve context. +- Notifications send only to recipients in context. + +This is not optional. Multi-school systems fail here first, then everyone acts surprised, as if databases spontaneously developed opinions. + +### Phase F: Introduce extension registration + +Use a service provider or module registry to bind school-type implementations: + +```php +final class IslamicSundaySchoolServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(AttendancePolicy::class, IslamicSundaySchoolAttendancePolicy::class); + $this->app->bind(AcademicCalendarProvider::class, IslamicSundaySchoolCalendarProvider::class); + $this->app->bind(StudentIdentifierGenerator::class, IslamicSundaySchoolStudentIdentifierGenerator::class); + } +} +``` + +Acceptance criteria: + +- Extension bindings are centralized. +- Core defaults exist for generic school behavior. +- Tests can swap policy implementations without changing core services. + +### Phase G: Migration strategy + +Do not rewrite everything at once. Use strangler-style migration: + +1. Pick one high-risk module: Attendance or Finance. +2. Define core contracts and commands. +3. Wrap legacy service behind the new contract if needed. +4. Add tests against the contract. +5. Move Islamic Sunday School-specific logic into an extension policy. +6. Replace controller calls with the new application action. +7. Delete or quarantine the old path after route parity is proven. + +Success metric: a generic school implementation can run the same service tests with different policies. + +## 6. Module-by-Module Plan + +Each module gets the same discipline: define ownership, confirm validation, confirm authorization, isolate service logic, test happy paths and failures, document side effects. + + + +### Admin + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 3 requests, 5 resources. + +**Services:** CompetitionWinnersDomain, CompetitionWinnersAdminService +**Requests:** StoreCompetitionWinnerRequest, UpdateCompetitionWinnerRequest, SaveCompetitionScoresRequest +**Resources:** PrintRecipientsResource, TeacherSubmissionReportResource, AdminNotificationAlertsResource, ProgressGroupResource, ProgressReportDetailResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Administrator + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 8 controllers, 18 services, 5 requests, 0 resources. + +**Controllers:** AdministratorAbsenceController, AdministratorDashboardController, AdministratorEnrollmentController, AdministratorNotificationController, AdministratorPromotionController, AdministratorTeacherSubmissionController, EmergencyContactController, TeacherClassAssignmentController +**Services:** AdministratorUserSearchService, AdministratorAbsenceService, AdministratorDashboardService, AdministratorMetricsService, AdministratorEnrollmentStatusService, AdministratorEnrollmentEventService, AdministratorNotificationService, AdminNotificationSubjectService, TeacherSubmissionSupportService, AdministratorSharedService, TeacherSubmissionNotificationService, TeacherSubmissionReportService ... +**Requests:** SavePrintRecipientsRequest, SaveAdminNotificationSubjectsRequest, SubmitAdministratorAbsenceRequest, UpdateEnrollmentStatusesRequest, SendTeacherSubmissionNotificationsRequest +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Api + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 0 services, 4 requests, 0 resources. + +**Requests:** SaveAdminNotificationSubjectsRequest, IndexAdminProgressRequest, SendTeacherSubmissionNotificationsRequest, SavePrintNotificationRecipientsRequest +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### ApiRoot + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 7 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController +**Plan:** +- Quarantine legacy/root controllers and define canonical replacements for duplicate controller names. +- Split `ScannerController` into a FormRequest, scanner orchestration service, badge lookup service, student scan service, staff scan service, late-arrival service, scan logger, and response factory. +- Add transaction boundaries and idempotency around scanner attendance mutations. +- Define whether `BaseApiController`, `CiRequestAdapter`, root role controllers, and namespaced role controllers are canonical or shims. +- Ensure shim classes contain no business logic. +- Add feature tests for scanner flows, role switching, stats visibility, and user visibility. + +#### Scanner refactor acceptance criteria + +- One public scan endpoint delegates to one scanner service action. +- All scan input is validated through a dedicated FormRequest. +- A duplicate scan within the configured duplicate window does not double-count attendance or create duplicate late-slip records. +- Student and staff scan paths have separate service-level tests. +- Scan logs are written once per accepted mutation and include actor/station/source context. + +### Assignment + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 5 services, 2 requests, 2 resources. + +**Controllers:** AssignmentApiController +**Services:** AssignmentSectionService, AssignmentMetaService, AssignmentService, AssignmentContextService, AssignmentDataLoaderService +**Requests:** StoreAssignmentRequest, StoreStudentAssignmentRequest +**Resources:** AssignmentOverviewResource, AssignmentSectionResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Attendance + +**Priority:** P1 Student lifecycle +**Detected surface:** 6 controllers, 16 services, 7 requests, 7 resources. + +**Controllers:** AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController +**Services:** SemesterRangeService, TeacherAttendanceSubmissionService, AttendanceAutoPublishJobService, AttendanceAutoPublishService, LateSlipLogQueryService, AttendanceConsequenceService, AttendanceRecordSyncService, AttendanceDailySummaryService, AttendanceService, StudentAttendanceWriterService, LateSlipLogCommandService, AttendanceSummaryRebuildService ... +**Requests:** SaveStaffAttendanceCellRequest, UpdateAttendanceManagementRequest, LateSlipLogIndexRequest, TeacherSubmitAttendanceRequest, SaveAdminAttendanceRequest, TeacherUpdateGridRequest, AdminAddAttendanceEntryRequest +**Resources:** DailyAttendanceResource, AdminAttendanceResource, LateSlipLogCollection, LateSlipLogResource, TeacherGridResource, StaffMonthResource, TeacherAttendanceFormResource +**Plan:** +- Lock down date and semester boundary behavior before changing implementation. +- Test teacher/admin/parent visibility separately. +- Ensure auto-publish, notification, late slip, early dismissal, scanner scan, and violation rules are deterministic. +- Record who changed attendance, when, station/source context when relevant, and why. +- Move scan-driven attendance mutations into transactional services shared by scanner and attendance modules where appropriate. +- Add idempotency tests for repeated scanner submissions and repeated auto-publish attempts. + +### AttendanceCommentTemplate + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 0 services, 2 requests, 0 resources. + +**Requests:** StoreAttendanceCommentTemplateRequest, UpdateAttendanceCommentTemplateRequest +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### AttendanceTracking + +**Priority:** P1 Student lifecycle +**Detected surface:** 1 controllers, 12 services, 5 requests, 0 resources. + +**Controllers:** AttendanceTrackingController +**Services:** AttendanceNotificationLogService, AttendanceViolationStudentResolverService, AttendanceNotificationWorkflowService, AttendanceTrackingService, ViolationRuleEngineService, AttendanceMailerService, AttendanceParentLookupService, AttendanceCommunicationSupportService, AttendanceEmailComposerService, AttendancePendingViolationService, AttendanceCaseQueryService, DefaultAttendanceMailerService +**Requests:** RecordAttendanceTrackingRequest, ComposeAttendanceEmailRequest, SendAttendanceManualEmailRequest, ParentsInfoRequest, SaveAttendanceNotificationNoteRequest +**Plan:** +- Lock down date and semester boundary behavior before changing implementation. +- Test teacher/admin/parent visibility separately. +- Ensure auto-publish, notification, late slip, early dismissal, and violation rules are deterministic. +- Record who changed attendance, when, and why. + +### Auth + +**Priority:** P0 Security/Foundation +**Detected surface:** 7 controllers, 9 services, 3 requests, 1 resources. + +**Controllers:** AuthController, AuthSessionController, IpBanController, RegisterController, RolePermissionController, RoleSwitcherController, SessionTimeoutController +**Services:** RegistrationCaptchaService, PermissionCheckService, CodeIgniterApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService +**Requests:** RegisterRequest, SetRoleSessionRequest, LoginSessionRequest +**Resources:** RegisterResource +**Plan:** +- Map every endpoint to required auth state, role, and permission. +- Test login throttling, IP bans, password reset cleanup, session timeout, role switching, and registration captcha. +- Confirm security logs include actor, IP, user agent, outcome, and reason. +- Reject role changes that create privilege escalation or stale-session leaks. + +### BadgeScan + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** BadgeScanController +**Services:** BadgeScanService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Badges + +**Priority:** P2 Operations +**Detected surface:** 1 controllers, 7 services, 3 requests, 0 resources. + +**Controllers:** BadgeController +**Services:** BadgeTextFormatter, BadgeStudentLookupService, BadgeFormDataService, BadgePdfService, BadgeUserLookupService, BadgeService, BadgePrintLogService +**Requests:** BadgePrintStatusRequest, GenerateBadgePdfRequest, LogBadgePrintRequest +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Billing + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 0 requests, 0 resources. + +**Services:** BalanceCalculationService, BillingTotalsService, ChargeService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### BroadcastEmail + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 5 services, 0 requests, 0 resources. + +**Services:** BroadcastEmailComposerService, BroadcastEmailRecipientService, BroadcastEmailDispatchService, BroadcastEmailImageService, BroadcastEmailSenderOptionsService +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Certificates + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** CertificateController +**Services:** CertificatePdfService +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### ClassPrep + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 0 requests, 0 resources. + +**Services:** ClassRosterService, StickerCountService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### ClassPreparation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 9 services, 4 requests, 2 resources. + +**Controllers:** ClassPreparationController +**Services:** ClassPreparationAdjustmentWriterService, ClassPreparationCalculatorService, ClassPreparationLogService, ClassPreparationAdjustmentService, ClassPreparationContextService, ClassPreparationService, ClassPreparationPrintService, ClassPreparationRosterService, ClassPreparationInventoryService +**Requests:** ClassPreparationMarkPrintedRequest, ClassPreparationPrintRequest, ClassPreparationIndexRequest, ClassPreparationAdjustmentRequest +**Resources:** ClassPreparationPrintResource, ClassPreparationResultResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### ClassProgress + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 5 services, 5 requests, 4 resources. + +**Controllers:** ClassProgressController +**Services:** ClassProgressRuleService, ClassProgressAttachmentService, ClassProgressQueryService, ClassProgressMetaService, ClassProgressMutationService +**Requests:** ClassProgressStoreRequest, ClassProgressMetaRequest, ClassProgressIndexRequest, ClassProgressFormRequest, ClassProgressUpdateRequest +**Resources:** ClassProgressGroupCollection, ClassProgressAttachmentResource, ClassProgressShowResource, ClassProgressReportResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### ClassSections + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 0 requests, 0 resources. + +**Services:** ClassSectionCommandService, ClassAttendanceService, ClassSectionSeedService, ClassSectionQueryService +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Classes + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 0 services, 3 requests, 4 resources. + +**Controllers:** ClassController +**Requests:** ClassSectionUpdateRequest, ClassSectionStoreRequest, ClassSectionIndexRequest +**Resources:** ClassSectionCollection, ClassSectionResource, ClassAttendanceResource, ClassAttendanceStudentResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Communication + +**Priority:** P1 Communications +**Detected surface:** 1 controllers, 6 services, 0 requests, 0 resources. + +**Controllers:** CommunicationController +**Services:** CommunicationFamilyService, CommunicationSendService, CommunicationTemplateService, CommunicationPreviewService, CommunicationStudentService, CommunicationLogService +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### CompetitionScores + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 0 requests, 0 resources. + +**Controllers:** CompetitionScoresController +**Services:** CompetitionScoresRosterService, CompetitionScoresSaveService, CompetitionScoresContextService, CompetitionScoresQueryService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Core + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** BaseApiController, CiRequestAdapter +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Dashboard + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** DashboardRouteService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Discounts + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 5 services, 3 requests, 2 resources. + +**Controllers:** DiscountController +**Services:** DiscountParentService, DiscountApplyService, DiscountInvoiceService, DiscountVoucherService, DiscountContextService +**Requests:** UpdateDiscountVoucherRequest, ApplyDiscountVoucherRequest, StoreDiscountVoucherRequest +**Resources:** DiscountVoucherResource, DiscountParentResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Docs + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 0 requests, 0 resources. + +**Services:** DocsCatalogService, ApiDocsService, OpenApiRouteExporter +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Documentation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** ApiDocsAdminController, DocsCatalogController +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Email + +**Priority:** P1 Communications +**Detected surface:** 3 controllers, 5 services, 2 requests, 3 resources. + +**Controllers:** BroadcastEmailController, EmailController, EmailExtractorController +**Services:** EmailAttachmentService, EmailExtractorService, EmailProfileService, EmailDispatchService, EmailSenderOptionsService +**Requests:** EmailExtractorCompareRequest, EmailSendRequest +**Resources:** EmailSenderResource, EmailExtractorEmailsResource, EmailExtractorCompareResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### EmergencyContacts + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 2 requests, 3 resources. + +**Services:** EmergencyContactDirectoryService, EmergencyContactCrudService +**Requests:** EmergencyContactParentRequest, EmergencyContactUpdateRequest +**Resources:** EmergencyContactGroupResource, EmergencyContactStudentResource, EmergencyContactResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Events + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 6 services, 6 requests, 3 resources. + +**Services:** EventChargeService, EventStudentChargeService, EventCategoryService, EventListService, EventChargeQueryService, EventManagementService +**Requests:** EventIndexRequest, EventUpdateRequest, EventStoreRequest, EventStudentsWithChargesRequest, EventChargeUpdateRequest, EventChargeIndexRequest +**Resources:** EventChargeResource, EventResource, EventStudentChargeResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Exams + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 3 requests, 1 resources. + +**Controllers:** ExamDraftController +**Services:** ExamDraftTeacherService, ExamDraftAdminService, ExamDraftConfigService, ExamDraftFileService +**Requests:** ExamDraftTeacherStoreRequest, ExamDraftAdminLegacyRequest, ExamDraftAdminReviewRequest +**Resources:** ExamDraftResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Expenses + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 7 services, 3 requests, 2 resources. + +**Controllers:** ExpenseController +**Services:** ExpenseQueryService, ExpenseStaffService, ExpenseRetailorService, ExpenseReceiptService, ExpenseWriteService, ExpenseContextService, ExpenseStatusService +**Requests:** UpdateExpenseRequest, StoreExpenseRequest, UpdateExpenseStatusRequest +**Resources:** ExpenseResource, ExpenseStaffResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### ExtraCharges + +**Priority:** P0 Financial correctness +**Detected surface:** 1 controllers, 6 services, 2 requests, 3 resources. + +**Controllers:** ExtraChargesController +**Services:** ExtraChargesMetaService, ExtraChargesInvoiceService, ExtraChargesParentService, ExtraChargesChargeService, ExtraChargesContextService, ExtraChargesListService +**Requests:** UpdateExtraChargeRequest, StoreExtraChargeRequest +**Resources:** ExtraChargeInvoiceOptionResource, ExtraChargeResource, ExtraChargeParentOptionResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Families + +**Priority:** P1 Student lifecycle +**Detected surface:** 0 controllers, 4 services, 14 requests, 7 resources. + +**Services:** FamilyNotificationService, FamilyFinanceService, FamilyMutationService, FamilyQueryService +**Requests:** FamilyImportLegacyRequest, FamilyUnlinkStudentRequest, FamilySetPrimaryHomeRequest, FamilyAdminCardRequest, FamiliesByStudentRequest, FamilyBootstrapRequest, FamilyAttachSecondByEmailRequest, FamilyAdminSearchRequest ... +**Resources:** FamilyPaymentResource, FamilyInvoiceResource, FamilySearchItemResource, FamilyResource, FamilyGuardianResource, FamilyStudentResource, FamilyEmergencyContactResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Family + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** FamilyAdminController, FamilyController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Fees + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 6 services, 2 requests, 6 resources. + +**Services:** FeeConfigService, TuitionCalculationService, FeeRefundCalculatorService, FeeGradeService, FeeRefundDetailService, FeeStudentFeeService +**Requests:** FeeTuitionTotalRequest, FeeRefundRequest +**Resources:** FeeRefundResource, FeeFamilyBalanceResource, ChargeActionResource, ChargeListResource, FeeTuitionBreakdownResource, FeeTuitionTotalResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Files + +**Priority:** P2 Operations +**Detected surface:** 0 controllers, 2 services, 1 requests, 1 resources. + +**Services:** FileServeService, ExamDraftDownloadNameService +**Requests:** FileNameRequest +**Resources:** FileMetaResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Finance + +**Priority:** P0 Financial correctness +**Detected surface:** 14 controllers, 8 services, 12 requests, 9 resources. + +**Controllers:** ChargeController, FeeCalculationController, FinancialController, InvoiceController, PaymentController, PaymentEventChargesController, PaymentManualController, PaymentNotificationController, PaymentTransactionController, PaypalPaymentController ... +**Services:** FinancialPdfReportService, FinancialSchoolYearService, FinancialPaymentService, FinancialReportService, FinancialSummaryService, FinancialChartService, FinancialDonationRecipientService, FinancialUnpaidParentsService +**Requests:** FinancialUnpaidParentsRequest, FeeTuitionTotalRequest, ChargeListRequest, FinancialReportRequest, FinancialSummaryRequest, MarkEventChargePaidRequest, FeeTuitionBreakdownRequest, StoreExtraChargeRequest ... +**Resources:** FinancialReportResource, FinancialSummaryResource, FinancialExpenseSummaryResource, FinancialInvoiceResource, FinancialPaymentResource, FinancialRefundResource, FinancialUnpaidParentResource, FinancialDiscountResource ... +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Harden payment file access before any broader finance refactor: no filename-only authorization, no arbitrary file resolution, no unaudited downloads. +- Lock affected invoice/payment/refund/reimbursement rows during edits and recalculations. +- Normalize all finance responses through resources so dashboards, APIs, reports, and PDFs do not compute separate truths, because apparently one truth was not complicated enough. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +#### Finance P0 acceptance criteria + +- Manual payment create/edit/delete and invoice recalculation run inside transactions. +- Payment edits create before/after audit records. +- Payment file downloads are authorized by payment/invoice ownership or finance role. +- Wrong-role and wrong-owner tests exist for invoices, payments, refunds, reimbursements, and downloadable files. +- All finance mutation tests assert final ledger/invoice balance, not just HTTP status. + +### Frontend + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 4 controllers, 9 services, 2 requests, 6 resources. + +**Controllers:** FrontendController, InfoIconController, LandingPageController, PageController +**Services:** LandingPageTeacherSummaryService, LandingPageRoleService, LandingPageParentDashboardService, LandingPageService, StaticPageService, FrontendPageService, ContactSubmissionService, LandingPageContextService, ProfileIconService +**Requests:** LandingTeacherRequest, ContactSubmitRequest +**Resources:** LandingPageResource, ContactSubmissionResource, FrontendPageResource, FrontendUserResource, ProfileIconResource, PageContentResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Grading + +**Priority:** P1 Student lifecycle +**Detected surface:** 2 controllers, 9 services, 18 requests, 3 resources. + +**Controllers:** GradingController, HomeworkTrackingController +**Services:** BelowSixtyEmailService, GradingLockService, GradingOverviewService, GradingPlacementService, HomeworkTrackingService, GradingScoreService, GradingBelowSixtyService, HomeworkTrackingCalendarService, GradingRefreshService +**Requests:** BelowSixtyListRequest, BelowSixtySendRequest, GradingLockAllRequest, BelowSixtyMeetingRequest, PlacementLevelsRequest, GradingRefreshRequest, GradingScoreShowRequest, HomeworkTrackingRequest ... +**Resources:** BelowSixtyStudentResource, GradingScoreResource, HomeworkTrackingTeacherResource +**Plan:** +- Centralize score formulas and missing-score behavior. +- Add golden test cases for semester score, quiz, homework, project, participation, final/midterm, and prediction risk calculations. +- Prove grading locks block writes but not allowed reads. +- Verify below-60 communication and parent visibility rules. + +### Incidents + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 4 services, 5 requests, 4 resources. + +**Controllers:** IncidentController +**Services:** CurrentIncidentService, IncidentHistoryService, IncidentLookupService, IncidentAnalysisService +**Requests:** IncidentCancelRequest, IncidentCloseRequest, IncidentStoreRequest, IncidentListRequest, IncidentStateRequest +**Resources:** IncidentStudentOptionResource, IncidentAnalysisStudentResource, IncidentResource, IncidentGradeResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Inventory + +**Priority:** P2 Operations +**Detected surface:** 5 controllers, 8 services, 19 requests, 5 resources. + +**Controllers:** InventoryCategoryController, InventoryController, InventoryMovementController, SupplierController, SupplyCategoryController +**Services:** InventorySummaryService, InventoryCategoryService, InventoryItemService, InventoryContextService, SupplierService, InventoryMovementService, SupplyCategoryService, InventoryTeacherDistributionService +**Requests:** InventoryItemIndexRequest, SupplierUpdateRequest, InventoryCategoryStoreRequest, InventoryTeacherDistributionRequest, InventoryItemUpdateRequest, InventoryItemStoreRequest, InventoryTeacherDistributionStoreRequest, InventoryCategoryUpdateRequest ... +**Resources:** InventoryItemResource, InventoryCategoryResource, InventoryMovementResource, SupplierResource, SupplyCategoryResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Invoices + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 8 services, 4 requests, 2 resources. + +**Services:** InvoiceGradeService, InvoiceConfigService, InvoicePaymentService, InvoiceTuitionService, InvoiceManagementService, InvoicePdfService, InvoiceService, InvoiceGenerationService +**Requests:** InvoiceStatusRequest, InvoiceManagementRequest, InvoiceParentRequest, InvoiceGenerateRequest +**Resources:** InvoiceManagementParentResource, InvoiceResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Messaging + +**Priority:** P1 Communications +**Detected surface:** 2 controllers, 3 services, 3 requests, 3 resources. + +**Controllers:** MessagesController, WhatsappController +**Services:** MessageRecipientService, MessageCommandService, MessageQueryService +**Requests:** MessageSendRequest, MessageIndexRequest, MessageUpdateRequest +**Resources:** MessageResource, MessageCollection, RecipientResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Navigation + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 0 requests, 0 resources. + +**Services:** NavBuilderService, NavbarService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### NonApi + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 3 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** Controller, DocsController, TeacherCalendarPageController +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Notifications + +**Priority:** P1 Communications +**Detected surface:** 1 controllers, 12 services, 5 requests, 2 resources. + +**Controllers:** NotificationController +**Services:** NotificationDispatchService, NotificationRecipientService, NotificationShowService, NotificationManagementService, NotificationReadService, NotificationUserListService, NotificationCleanupService, UserNotificationDispatchService, NotificationTriggerService, NotificationSendService, NotificationActiveService, NotificationDeletedService +**Requests:** NotificationSendRequest, NotificationActiveRequest, NotificationDeletedRequest, NotificationUpdateRequest, NotificationIndexRequest +**Resources:** UserNotificationResource, NotificationResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + +### Parents + +**Priority:** P1 Student lifecycle +**Detected surface:** 5 controllers, 14 services, 16 requests, 4 resources. + +**Controllers:** AuthorizedUserInviteController, AuthorizedUsersController, ParentAttendanceReportController, ParentController, ParentPromotionController +**Services:** ParentEventParticipationService, ParentRegistrationService, PrimaryParentUserResolver, ParentAttendanceReportCalendarService, ParentAttendanceService, AuthorizedUsersManagementService, ParentEnrollmentService, ParentInvoiceService, ParentProgressQueryService, ParentAttendanceReportService, ParentReportCardService, ParentConfigService ... +**Requests:** ParentAttendanceReportUpdateRequest, ParentAttendanceReportListRequest, ParentAttendanceReportSubmitRequest, ParentEmergencyContactRequest, UpdateAuthorizedUserRequest, ParentAttendanceReportCheckRequest, ParentProfileUpdateRequest, ParentInvoiceRequest ... +**Resources:** ParentEmergencyContactResource, ParentAttendanceReportResource, ParentStudentResource, ParentAttendanceResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Payments + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 14 services, 15 requests, 4 resources. + +**Services:** PaymentNotificationDispatchService, PaymentMissedCheckService, PaymentManualService, PaymentLookupService, PaymentTestNotificationService, PaypalPaymentSyncService, PaymentBalanceService, PaypalPaymentService, PaymentTransactionService, PaymentEnrollmentEventService, PaymentNotificationService, PaymentPlanService ... +**Requests:** PaymentManualSearchRequest, PaymentEventChargesListRequest, PaymentNotificationSendRequest, PaymentNotificationListRequest, PaymentCreateRequest, PaypalTransactionsListRequest, PaymentManualEditRequest, PaymentEventChargesStoreRequest ... +**Resources:** PaymentNotificationLogResource, PaymentTransactionResource, PaypalTransactionResource, PaymentResource +**Plan:** +- Define one source of truth for payment state transitions, balance calculations, file handling, and notification dispatch. +- Wrap manual payment edits and invoice recalculation in one transaction with row locks. +- Replace filename-only check-file downloads with payment-record-based downloads and authorization. +- Add idempotency keys for PayPal sync, notification dispatch, manual payment creation, and retry flows. +- Store audit trails for payment create/edit/delete, refund application, missed-check updates, and external transaction sync. +- Add reconciliation tests across API, reports, dashboards, and PDFs. + +#### PaymentManualService hardening checklist + +- `recordPayment()` and `editPayment()` use the same transaction/audit/recalculation rules. +- `serveCheckFile()` cannot be called with only a user-supplied filename; it must resolve files from a payment record. +- Upload validation covers extension, MIME, size, storage path, and scan-friendly safe names. +- Tests cover unrelated parent access, unrelated staff access, valid finance/admin access, guessed filename, missing file, and duplicate edit attempts. + +### Phone + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PhoneFormatterService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Policy + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PolicyContentService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Preferences + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 3 services, 2 requests, 3 resources. + +**Services:** PreferencesCommandService, PreferencesQueryService, PreferencesOptionsService +**Requests:** PreferencesIndexRequest, PreferencesUpsertRequest +**Resources:** PreferencesListResource, PreferencesCollection, PreferencesResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### PrintRequests + +**Priority:** P2 Operations +**Detected surface:** 1 controllers, 1 services, 0 requests, 0 resources. + +**Controllers:** PrintRequestsController +**Services:** PrintRequestsPortalService +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Promotions + +**Priority:** P1 Student lifecycle +**Detected surface:** 0 controllers, 7 services, 8 requests, 4 resources. + +**Services:** PromotionStatusService, PromotionEnrollmentService, PromotionReminderService, LevelProgressionService, PromotionAuditService, PromotionQueryService, PromotionEligibilityService +**Requests:** SendReminderRequest, ParentPromotionOverviewRequest, AdminListPromotionsRequest, EvaluateEligibilityRequest, UpdatePromotionStatusRequest, ParentEnrollmentStepRequest, SetEnrollmentDeadlineRequest, UpsertLevelProgressionRequest +**Resources:** LevelProgressionResource, PromotionAuditLogResource, PromotionReminderResource, StudentPromotionResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Public + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 0 services, 0 requests, 0 resources. + +**Controllers:** PublicWinnersController +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### PublicWinners + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 0 requests, 0 resources. + +**Services:** PublicWinnersPortalService +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### PurchaseOrders + +**Priority:** P2 Operations +**Detected surface:** 0 controllers, 4 services, 3 requests, 2 resources. + +**Services:** PurchaseOrderStatusService, PurchaseOrderReceiveService, PurchaseOrderCreateService, PurchaseOrderQueryService +**Requests:** PurchaseOrderIndexRequest, PurchaseOrderStoreRequest, PurchaseOrderReceiveRequest +**Resources:** PurchaseOrderResource, PurchaseOrderItemResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Refunds + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 9 services, 6 requests, 1 resources. + +**Services:** RefundSummaryService, RefundInvoiceAdjustmentService, RefundPolicyService, RefundPayoutService, RefundRequestService, RefundQueryService, RefundOverpaymentService, RefundDecisionService, RefundNotificationService +**Requests:** RefundStoreRequest, RefundPaymentRequest, RefundDecisionRequest, RefundRecalculateRequest, RefundIndexRequest, RefundRejectRequest +**Resources:** RefundResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Reimbursements + +**Priority:** P0 Financial correctness +**Detected surface:** 0 controllers, 11 services, 13 requests, 5 resources. + +**Services:** ReimbursementFileService, ReimbursementBatchAssignmentService, ReimbursementContextService, ReimbursementExportService, ReimbursementLookupService, ReimbursementEmailService, ReimbursementRecipientService, ReimbursementBatchService, ReimbursementQueryService, ReimbursementDonationService, ReimbursementCrudService +**Requests:** ReimbursementBatchAdminFileRequest, ReimbursementUpdateRequest, ReimbursementBatchCreateRequest, ReimbursementBatchEmailRequest, ReimbursementProcessRequest, ReimbursementExportBatchRequest, ReimbursementIndexRequest, ReimbursementExportRequest ... +**Resources:** ReimbursementRecipientResource, ReimbursementExpenseResource, ReimbursementBatchResource, ReimbursementResource, ReimbursementUnderProcessingItemResource +**Plan:** +- Define one source of truth for monetary calculations and rounding. +- Require transactions around every mutation that changes balance, invoice state, refund state, payment state, or reimbursement status. +- Add audit logs and idempotency keys for external payment/payment-notification flows. +- Build reconciliation tests across API, reports, dashboards, and PDFs. + +### Reports + +**Priority:** P2 Operations +**Detected surface:** 4 controllers, 9 services, 11 requests, 8 resources. + +**Controllers:** FilesController, ReportCardsController, SlipPrinterController, StickersController +**Services:** SlipPrinterFormatterService, SlipPrinterPdfService, SlipPrinterService, SlipPrinterConfigService, StickerPrintService, StickerPresetService, StickerQueryService, StickerContextService, ReportCardService +**Requests:** SlipPreviewRequest, SlipLogListRequest, SlipPrintRequest, SlipReprintRequest, StickerStudentsByClassRequest, StickerPrintRequest, StickerFormDataRequest, ReportCardCompletenessRequest ... +**Resources:** LateSlipLogResource, StickerStudentResource, StickerPresetResource, StickerClassSectionResource, ReportCardStudentMetaResource, ReportCardAcknowledgementResource, ReportCardClassSectionResource, ReportCardCompletenessStudentResource +**Plan:** +- Review upload/download/PDF generation permissions. +- Validate file type, file size, generated names, and storage paths. +- Add tests for inventory movement consistency and purchase-order state transitions where applicable. +- Make printable outputs reproducible from stable data snapshots. + +### Roles + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 8 services, 9 requests, 4 resources. + +**Services:** RolePermissionService, RoleDashboardService, RoleCrudService, RoleAssignmentService, RoleSwitchService, RoleStaffService, PermissionCrudService, RoleQueryService +**Requests:** AssignUserRolesRequest, RolePermissionUpdateRequest, UserRoleListRequest, PermissionUpdateRequest, PermissionStoreRequest, RoleSwitchRequest, RoleStoreRequest, RoleUpdateRequest ... +**Resources:** RolePermissionResource, RoleResource, UserWithRolesResource, PermissionResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Root + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 8 services, 1 requests, 1 resources. + +**Services:** FeeCalculationService, SemesterRangeService, ApplicationUrlService, SchoolIdService, AssignmentService, AttendanceCommentTemplateService, PhoneFormatterService, EmailService +**Requests:** ApiFormRequest +**Resources:** TeacherSubmissionRowResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### School + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 0 requests, 0 resources. + +**Services:** AccountEventService, SemesterSelectionService, EnrollmentEventService, PaymentEventService +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### SchoolIds + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 2 services, 1 requests, 1 resources. + +**Services:** SchoolIdAssignmentService, SchoolIdGenerationService +**Requests:** SchoolIdAssignRequest +**Resources:** SchoolIdResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Scores + +**Priority:** P1 Student lifecycle +**Detected surface:** 9 controllers, 16 services, 10 requests, 3 resources. + +**Controllers:** FinalController, HomeworkController, MidtermController, ParticipationController, ProjectController, QuizController, ScoreCommentController, ScoreController, ScorePredictorController +**Services:** ParticipationScoreService, QuizCalculator, QuizScoreService, ScoreCommentService, ScoreDashboardService, HomeworkCalculator, SemesterScoreService, ScorePredictorRiskService, ProjectScoreService, HomeworkScoreService, ScoreTermService, ProjectCalculator ... +**Requests:** ScoreCommentSaveRequest, ScorePredictorRequest, ScoreLockRequest, ScoreUpdateRequest, ScoreOverviewRequest, ScoreStudentRequest, ScoreCommentListRequest, ScoreClassRequest ... +**Resources:** ScorePredictorStudentResource, ScoreCommentResource, ScoreStudentResource +**Plan:** +- Centralize score formulas and missing-score behavior. +- Add golden test cases for semester score, quiz, homework, project, participation, final/midterm, and prediction risk calculations. +- Prove grading locks block writes but not allowed reads. +- Verify below-60 communication and parent visibility rules. + +### Security + +**Priority:** P0 Security/Foundation +**Detected surface:** 0 controllers, 3 services, 3 requests, 2 resources. + +**Services:** IpBanCommandService, IpBanQueryService, Pbkdf2Hasher +**Requests:** IpBanIndexRequest, IpUnbanRequest, IpBanRequest +**Resources:** IpBanCollection, IpBanResource +**Plan:** +- Map every endpoint to required auth state, role, and permission. +- Test login throttling, IP bans, password reset cleanup, session timeout, role switching, and registration captcha. +- Confirm security logs include actor, IP, user agent, outcome, and reason. +- Reject role changes that create privilege escalation or stale-session leaks. + +### Semesters + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 1 services, 4 requests, 2 resources. + +**Services:** SemesterConfigService +**Requests:** SchoolYearRangeRequest, SemesterResolveRequest, SemesterNormalizeRequest, SemesterRangeRequest +**Resources:** SemesterResolveResource, SemesterRangeResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Settings + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 6 controllers, 8 services, 8 requests, 5 resources. + +**Controllers:** ConfigurationAdminController, EventController, PolicyController, PreferencesController, SchoolCalendarController, SettingsController +**Services:** SettingsService, ConfigurationService, SchoolCalendarMutationService, SchoolCalendarNotificationService, SchoolCalendarContextService, SchoolCalendarQueryService, SchoolCalendarFormatterService, SchoolCalendarMeetingService +**Requests:** SchoolCalendarStoreRequest, ConfigurationStoreRequest, SettingsUpdateRequest, SchoolCalendarIndexRequest, ConfigurationUpdateRequest, SchoolCalendarUpdateRequest, PolicyShowRequest, SchoolCalendarOptionsRequest +**Resources:** PolicyResource, SchoolCalendarEventResource, SettingsResource, ConfigurationResource, SchoolCalendarEventDetailResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Staff + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 3 controllers, 3 services, 3 requests, 2 resources. + +**Controllers:** StaffController, TeacherController, TimeOffNotificationController +**Services:** StaffQueryService, StaffTimeOffLinkService, StaffCommandService +**Requests:** StaffIndexRequest, StaffUpdateRequest, StaffStoreRequest +**Resources:** StaffCollection, StaffResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Students + +**Priority:** P1 Student lifecycle +**Detected surface:** 1 controllers, 7 services, 7 requests, 4 resources. + +**Controllers:** StudentController +**Services:** StudentScoreCardService, StudentStatusService, StudentDirectoryService, StudentAutoDistributionService, StudentConfigService, StudentProfileService, StudentAssignmentService +**Requests:** StudentRemoveClassRequest, StudentUpdateRequest, StudentAssignClassRequest, StudentSetActiveRequest, StudentPromotionTotalsRequest, StudentAssignmentListRequest, StudentAutoDistributeRequest +**Resources:** StudentAssignmentResource, StudentRemovedResource, StudentClassSectionResource, StudentScoreCardRowResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Replace any `max(id) + 1` style school ID generation with persisted-ID or database-sequence-based generation. +- Add a unique database constraint on `students.school_id` and retry logic for rare collisions. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +#### Student creation acceptance criteria + +- Student creation runs in a transaction. +- School ID is generated only after the student has a persisted ID or from a dedicated sequence. +- Concurrent student creation cannot create duplicate school IDs. +- Parent/family/student visibility tests prove users cannot create, view, or mutate records outside their boundary. + +### Subjects + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 2 requests, 2 resources. + +**Controllers:** SubjectCurriculumController +**Services:** SubjectCurriculumService +**Requests:** SubjectCurriculumUpdateRequest, SubjectCurriculumStoreRequest +**Resources:** SubjectCurriculumResource, SubjectClassResource +**Plan:** +- Define the academic workflow state machine and valid transitions. +- Test teacher/admin/parent role boundaries. +- Protect uploads and generated academic files. +- Add audit logs for status changes, submissions, and deadline changes. + +### Support + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 2 services, 3 requests, 3 resources. + +**Controllers:** ContactController, SupportController +**Services:** SupportRequestService, ContactMessageService +**Requests:** SupportRequestStoreRequest, SupportRequestIndexRequest, ContactSendRequest +**Resources:** ContactMessageResource, SupportRequestResource, SupportRequestCollection +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### System + +**Priority:** P0 Security/Foundation +**Detected surface:** 9 controllers, 6 services, 2 requests, 4 resources. + +**Controllers:** AccessDeniedController, DashboardController, DashboardRedirectController, DatabaseHealthController, HealthController, NavBuilderController, SchoolIdController, SemesterRangeController, StatsController +**Services:** HealthCheckService, CleanupSchedulerService, GlobalConfigService, DatabaseHealthService, ConfigUpdateService, TimeService +**Requests:** NavItemStoreRequest, NavItemReorderRequest +**Resources:** DashboardRouteResource, NavItemResource, HealthStatusResource, NavBuilderDataResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Teachers + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 0 controllers, 4 services, 6 requests, 4 resources. + +**Services:** TeacherAbsenceService, TeacherDashboardService, TeacherConfigService, TeacherAssignmentService +**Requests:** TeacherClassViewRequest, TeacherAbsenceSubmitRequest, TeacherAssignmentDeleteRequest, TeacherAssignmentStoreRequest, TeacherAssignmentListRequest, TeacherSwitchClassRequest +**Resources:** TeacherAbsenceResource, TeacherStudentResource, TeacherClassResource, TeacherAssignmentResource +**Plan:** +- Centralize identity lookup and cross-entity authorization. +- Test directory/search pagination and visibility filtering. +- Ensure updates cannot orphan related records or break family/student/staff links. +- Add lifecycle tests for active, inactive, newly enrolled, transferred, and deleted/unverified users. + +### Ui + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 1 services, 1 requests, 1 resources. + +**Controllers:** UiController +**Services:** UiStyleService +**Requests:** UiStyleRequest +**Resources:** UiStyleResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Users + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 1 controllers, 6 services, 4 requests, 2 resources. + +**Controllers:** UserController +**Services:** UserListService, LoginActivityService, InactiveUserCleanupService, UserManagementService, UserEventService, DeleteUnverifiedUserService +**Requests:** UserStoreRequest, UserListRequest, UserUpdateRequest, LoginActivityRequest +**Resources:** LoginActivityResource, UserWithRolesResource +**Plan:** +- Confirm all inputs are validated through FormRequest classes. +- Confirm all reads and writes are authorized. +- Move business rules out of controllers if any remain. +- Add feature tests for list/show/create/update/delete and key failure paths. + +### Utilities + +**Priority:** P2/P3 Feature hardening +**Detected surface:** 2 controllers, 0 services, 1 requests, 1 resources. + +**Controllers:** PhoneFormatterController, ProofreadController +**Requests:** PhoneFormatRequest +**Resources:** PhoneFormatResource +**Plan:** +- Confirm config reads/writes are permissioned and validated. +- Add health/config smoke tests. +- Document public versus authenticated surfaces. +- Keep UI/style/static-page services separated from domain mutations. + +### Whatsapp + +**Priority:** P1 Communications +**Detected surface:** 0 controllers, 8 services, 7 requests, 5 resources. + +**Services:** WhatsappContactService, WhatsappInviteService, WhatsappLinkService, WhatsappContextService, WhatsappInviteNotificationService, WhatsappMembershipService, WhatsappInviteBundleService, WhatsappInviteEmailService +**Requests:** WhatsappLinkIndexRequest, WhatsappMembershipUpdateRequest, WhatsappLinkStoreRequest, WhatsappLinkUpdateRequest, WhatsappParentContactsRequest, WhatsappParentContactsByClassRequest, WhatsappInviteSendRequest +**Resources:** WhatsappParentContactResource, WhatsappGroupLinkResource, WhatsappClassSectionParentResource, WhatsappGroupLinkCollection, WhatsappClassSectionContactResource +**Plan:** +- Separate recipient selection, message composition, dispatch, and logging. +- Add preview/dry-run tests before bulk sending. +- Deduplicate sends and persist failure states. +- Verify opt-outs, guardian selection, role targeting, and retry behavior. + + +## 7. Cross-Cutting Test Matrix + +| Area | Minimum tests | Failure tests | Regression traps | +|---|---:|---:|---| +| Auth / Security | Login, refresh, logout, role switch, timeout | Invalid creds, banned IP, stale role, unauthorized role | Privilege escalation, session confusion | +| Finance / Payments | Invoice generation, manual payment, PayPal sync, refunds | Duplicate webhook, failed payment, partial refund | Balance mismatch, rounding drift | +| Attendance | Teacher submit, admin edit, parent report | Out-of-window edit, unauthorized class, duplicate submit | Semester boundary, timezone/date errors | +| Grading / Scores | Score calculations, locks, below-60 notification | Missing score, locked write, invalid class | Formula drift, notification spam | +| Students / Families | Profile, guardians, enrollments, authorized users | Cross-family read/write, inactive student | Orphan relationships | +| Communications | Preview, send, log, retry | Invalid recipient, opt-out, duplicate send | Bulk-send mistakes | +| Files / Reports | Upload, download, PDF generation | Bad MIME, oversize file, unauthorized file | Path traversal, stale report data | +| Inventory / Ops | Item movement, PO receive, print requests | Negative stock, duplicate receive | Count mismatch | + + +## 8. Refactor Rules + +- Do not start by renaming everything. That is not architecture; that is sweeping broken glass into a different corner. +- Start with tests around the highest-risk behavior, then refactor behind those tests. +- One module per pull request unless a shared contract demands otherwise. +- For each PR, include: risk summary, affected endpoints, permission impact, migration impact, rollback path, and test evidence. +- Any service over roughly 300 lines should be reviewed for split points, but line count alone is not a crime. Unclear responsibility is the crime. +- Any controller doing calculations, direct DB orchestration, or multi-step workflow should delegate to a service. +- Any duplicated request validation should be consolidated into shared rules or dedicated FormRequests. + +## 9. Immediate Next Work Queue + +Work in this order. Alphabetical cleanup is banned until P0 is closed, because alphabetical order has never once saved a ledger. + +1. Patch the plan into issue tickets for the seven P0 items in the Critical Implementation Review Queue. +2. Add route inventory from `routes/api.php` and `routes/web.php` once the full repo is available. +3. Produce an endpoint-permission matrix from routes + controllers + policies. +4. Write failing/covering tests for payment file access, manual payment edit transaction safety, student school ID concurrency, scanner idempotency, role mutation authorization, bulk communication recipient safety, and refund/payment/invoice auditing. +5. Implement finance/file authorization fixes before controller refactors. +6. Implement transaction/locking fixes for payments, invoices, refunds, and reimbursements. +7. Implement student school ID generation fix and database uniqueness constraint. +8. Extract scanner services and add duplicate-scan/idempotency behavior. +9. Add baseline feature tests for Auth, Finance/Payments, Attendance, Grading/Scores, Students/Families, and Communications. +10. Create factories and seed data for the core school domain. +11. Add OpenAPI generation to CI using the existing Docs/OpenAPI service surface. +12. Review raw SQL and direct request access matches before any large refactor. +13. Add idempotency and audit requirements to payment, invoice, refund, promotion, and messaging mutations. +14. Write runbooks for console commands and operational cleanup jobs. + +## 10. Definition of Done + +A module is not considered done until all of this is true: + +- All public endpoints have route docs and permission mapping. +- All inputs use FormRequests or clearly justified validation. +- All responses use Resources or documented response builders. +- All mutations are transactional where consistency matters. +- All side effects are logged and testable. +- All critical behavior has feature tests and at least one negative authorization test. +- All money/date/file/message behavior has edge-case tests. +- No endpoint relies on undocumented legacy behavior unless that behavior is explicitly preserved and tested. + +## Appendix A: Controller Groups + +- **Administrator:** 8 controllers. AdministratorAbsenceController, AdministratorDashboardController, AdministratorEnrollmentController, AdministratorNotificationController, AdministratorPromotionController, AdministratorTeacherSubmissionController, EmergencyContactController, TeacherClassAssignmentController +- **ApiRoot:** 7 controllers. BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController +- **Assignment:** 1 controllers. AssignmentApiController +- **Attendance:** 6 controllers. AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController +- **AttendanceTracking:** 1 controllers. AttendanceTrackingController +- **Auth:** 7 controllers. AuthController, AuthSessionController, IpBanController, RegisterController, RolePermissionController, RoleSwitcherController, SessionTimeoutController +- **BadgeScan:** 1 controllers. BadgeScanController +- **Badges:** 1 controllers. BadgeController +- **Certificates:** 1 controllers. CertificateController +- **ClassPreparation:** 1 controllers. ClassPreparationController +- **ClassProgress:** 1 controllers. ClassProgressController +- **Classes:** 1 controllers. ClassController +- **Communication:** 1 controllers. CommunicationController +- **CompetitionScores:** 1 controllers. CompetitionScoresController +- **Core:** 2 controllers. BaseApiController, CiRequestAdapter +- **Discounts:** 1 controllers. DiscountController +- **Documentation:** 2 controllers. ApiDocsAdminController, DocsCatalogController +- **Email:** 3 controllers. BroadcastEmailController, EmailController, EmailExtractorController +- **Exams:** 1 controllers. ExamDraftController +- **Expenses:** 1 controllers. ExpenseController +- **ExtraCharges:** 1 controllers. ExtraChargesController +- **Family:** 2 controllers. FamilyAdminController, FamilyController +- **Finance:** 14 controllers. ChargeController, FeeCalculationController, FinancialController, InvoiceController, PaymentController, PaymentEventChargesController, PaymentManualController, PaymentNotificationController, PaymentTransactionController, PaypalPaymentController, PaypalTransactionsController, PurchaseOrderController, RefundController, ReimbursementController +- **Frontend:** 4 controllers. FrontendController, InfoIconController, LandingPageController, PageController +- **Grading:** 2 controllers. GradingController, HomeworkTrackingController +- **Incidents:** 1 controllers. IncidentController +- **Inventory:** 5 controllers. InventoryCategoryController, InventoryController, InventoryMovementController, SupplierController, SupplyCategoryController +- **Messaging:** 2 controllers. MessagesController, WhatsappController +- **NonApi:** 3 controllers. Controller, DocsController, TeacherCalendarPageController +- **Notifications:** 1 controllers. NotificationController +- **Parents:** 5 controllers. AuthorizedUserInviteController, AuthorizedUsersController, ParentAttendanceReportController, ParentController, ParentPromotionController +- **PrintRequests:** 1 controllers. PrintRequestsController +- **Public:** 1 controllers. PublicWinnersController +- **Reports:** 4 controllers. FilesController, ReportCardsController, SlipPrinterController, StickersController +- **Scores:** 9 controllers. FinalController, HomeworkController, MidtermController, ParticipationController, ProjectController, QuizController, ScoreCommentController, ScoreController, ScorePredictorController +- **Settings:** 6 controllers. ConfigurationAdminController, EventController, PolicyController, PreferencesController, SchoolCalendarController, SettingsController +- **Staff:** 3 controllers. StaffController, TeacherController, TimeOffNotificationController +- **Students:** 1 controllers. StudentController +- **Subjects:** 1 controllers. SubjectCurriculumController +- **Support:** 2 controllers. ContactController, SupportController +- **System:** 9 controllers. AccessDeniedController, DashboardController, DashboardRedirectController, DatabaseHealthController, HealthController, NavBuilderController, SchoolIdController, SemesterRangeController, StatsController +- **Ui:** 1 controllers. UiController +- **Users:** 1 controllers. UserController +- **Utilities:** 2 controllers. PhoneFormatterController, ProofreadController + +## Appendix B: Service Groups + +- **Admin:** 2 services, 1,089 LOC. CompetitionWinnersDomain, CompetitionWinnersAdminService +- **Administrator:** 18 services, 2,196 LOC. AdministratorUserSearchService, AdministratorAbsenceService, AdministratorDashboardService, AdministratorMetricsService, AdministratorEnrollmentStatusService, AdministratorEnrollmentEventService, AdministratorNotificationService, AdminNotificationSubjectService, TeacherSubmissionSupportService, AdministratorSharedService, TeacherSubmissionNotificationService, TeacherSubmissionReportService, AdminNotificationUserService, AdministratorEnrollmentRefundService, AdminPrintRecipientService, AdministratorTeacherSubmissionService, AdministratorEnrollmentService, AdministratorEnrollmentQueryService +- **Assignment:** 5 services, 421 LOC. AssignmentSectionService, AssignmentMetaService, AssignmentService, AssignmentContextService, AssignmentDataLoaderService +- **Attendance:** 16 services, 3,241 LOC. SemesterRangeService, TeacherAttendanceSubmissionService, AttendanceAutoPublishJobService, AttendanceAutoPublishService, LateSlipLogQueryService, AttendanceConsequenceService, AttendanceRecordSyncService, AttendanceDailySummaryService, AttendanceService, StudentAttendanceWriterService, LateSlipLogCommandService, AttendanceSummaryRebuildService, StaffAttendanceService, AttendanceQueryService, AttendancePolicyService, AttendanceCommentService +- **AttendanceTracking:** 12 services, 2,979 LOC. AttendanceNotificationLogService, AttendanceViolationStudentResolverService, AttendanceNotificationWorkflowService, AttendanceTrackingService, ViolationRuleEngineService, AttendanceMailerService, AttendanceParentLookupService, AttendanceCommunicationSupportService, AttendanceEmailComposerService, AttendancePendingViolationService, AttendanceCaseQueryService, DefaultAttendanceMailerService +- **Auth:** 9 services, 870 LOC. RegistrationCaptchaService, PermissionCheckService, CodeIgniterApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService +- **BadgeScan:** 1 services, 108 LOC. BadgeScanService +- **Badges:** 7 services, 2,815 LOC. BadgeTextFormatter, BadgeStudentLookupService, BadgeFormDataService, BadgePdfService, BadgeUserLookupService, BadgeService, BadgePrintLogService +- **Billing:** 3 services, 751 LOC. BalanceCalculationService, BillingTotalsService, ChargeService +- **BroadcastEmail:** 5 services, 241 LOC. BroadcastEmailComposerService, BroadcastEmailRecipientService, BroadcastEmailDispatchService, BroadcastEmailImageService, BroadcastEmailSenderOptionsService +- **Certificates:** 1 services, 144 LOC. CertificatePdfService +- **ClassPrep:** 2 services, 205 LOC. ClassRosterService, StickerCountService +- **ClassPreparation:** 9 services, 653 LOC. ClassPreparationAdjustmentWriterService, ClassPreparationCalculatorService, ClassPreparationLogService, ClassPreparationAdjustmentService, ClassPreparationContextService, ClassPreparationService, ClassPreparationPrintService, ClassPreparationRosterService, ClassPreparationInventoryService +- **ClassProgress:** 5 services, 941 LOC. ClassProgressRuleService, ClassProgressAttachmentService, ClassProgressQueryService, ClassProgressMetaService, ClassProgressMutationService +- **ClassSections:** 4 services, 190 LOC. ClassSectionCommandService, ClassAttendanceService, ClassSectionSeedService, ClassSectionQueryService +- **Communication:** 6 services, 374 LOC. CommunicationFamilyService, CommunicationSendService, CommunicationTemplateService, CommunicationPreviewService, CommunicationStudentService, CommunicationLogService +- **CompetitionScores:** 4 services, 325 LOC. CompetitionScoresRosterService, CompetitionScoresSaveService, CompetitionScoresContextService, CompetitionScoresQueryService +- **Dashboard:** 1 services, 70 LOC. DashboardRouteService +- **Discounts:** 5 services, 792 LOC. DiscountParentService, DiscountApplyService, DiscountInvoiceService, DiscountVoucherService, DiscountContextService +- **Docs:** 3 services, 244 LOC. DocsCatalogService, ApiDocsService, OpenApiRouteExporter +- **Email:** 5 services, 395 LOC. EmailAttachmentService, EmailExtractorService, EmailProfileService, EmailDispatchService, EmailSenderOptionsService +- **EmergencyContacts:** 2 services, 142 LOC. EmergencyContactDirectoryService, EmergencyContactCrudService +- **Events:** 6 services, 496 LOC. EventChargeService, EventStudentChargeService, EventCategoryService, EventListService, EventChargeQueryService, EventManagementService +- **Exams:** 4 services, 532 LOC. ExamDraftTeacherService, ExamDraftAdminService, ExamDraftConfigService, ExamDraftFileService +- **Expenses:** 7 services, 231 LOC. ExpenseQueryService, ExpenseStaffService, ExpenseRetailorService, ExpenseReceiptService, ExpenseWriteService, ExpenseContextService, ExpenseStatusService +- **ExtraCharges:** 6 services, 475 LOC. ExtraChargesMetaService, ExtraChargesInvoiceService, ExtraChargesParentService, ExtraChargesChargeService, ExtraChargesContextService, ExtraChargesListService +- **Families:** 4 services, 827 LOC. FamilyNotificationService, FamilyFinanceService, FamilyMutationService, FamilyQueryService +- **Fees:** 6 services, 952 LOC. FeeConfigService, TuitionCalculationService, FeeRefundCalculatorService, FeeGradeService, FeeRefundDetailService, FeeStudentFeeService +- **Files:** 2 services, 159 LOC. FileServeService, ExamDraftDownloadNameService +- **Finance:** 8 services, 1,150 LOC. FinancialPdfReportService, FinancialSchoolYearService, FinancialPaymentService, FinancialReportService, FinancialSummaryService, FinancialChartService, FinancialDonationRecipientService, FinancialUnpaidParentsService +- **Frontend:** 9 services, 1,011 LOC. LandingPageTeacherSummaryService, LandingPageRoleService, LandingPageParentDashboardService, LandingPageService, StaticPageService, FrontendPageService, ContactSubmissionService, LandingPageContextService, ProfileIconService +- **Grading:** 9 services, 1,969 LOC. BelowSixtyEmailService, GradingLockService, GradingOverviewService, GradingPlacementService, HomeworkTrackingService, GradingScoreService, GradingBelowSixtyService, HomeworkTrackingCalendarService, GradingRefreshService +- **Incidents:** 4 services, 499 LOC. CurrentIncidentService, IncidentHistoryService, IncidentLookupService, IncidentAnalysisService +- **Inventory:** 8 services, 1,449 LOC. InventorySummaryService, InventoryCategoryService, InventoryItemService, InventoryContextService, SupplierService, InventoryMovementService, SupplyCategoryService, InventoryTeacherDistributionService +- **Invoices:** 8 services, 1,248 LOC. InvoiceGradeService, InvoiceConfigService, InvoicePaymentService, InvoiceTuitionService, InvoiceManagementService, InvoicePdfService, InvoiceService, InvoiceGenerationService +- **Messaging:** 3 services, 334 LOC. MessageRecipientService, MessageCommandService, MessageQueryService +- **Navigation:** 2 services, 273 LOC. NavBuilderService, NavbarService +- **Notifications:** 12 services, 451 LOC. NotificationDispatchService, NotificationRecipientService, NotificationShowService, NotificationManagementService, NotificationReadService, NotificationUserListService, NotificationCleanupService, UserNotificationDispatchService, NotificationTriggerService, NotificationSendService, NotificationActiveService, NotificationDeletedService +- **Parents:** 14 services, 2,306 LOC. ParentEventParticipationService, ParentRegistrationService, PrimaryParentUserResolver, ParentAttendanceReportCalendarService, ParentAttendanceService, AuthorizedUsersManagementService, ParentEnrollmentService, ParentInvoiceService, ParentProgressQueryService, ParentAttendanceReportService, ParentReportCardService, ParentConfigService, ParentProfileService, ParentEmergencyContactService +- **Payments:** 14 services, 2,096 LOC. PaymentNotificationDispatchService, PaymentMissedCheckService, PaymentManualService, PaymentLookupService, PaymentTestNotificationService, PaypalPaymentSyncService, PaymentBalanceService, PaypalPaymentService, PaymentTransactionService, PaymentEnrollmentEventService, PaymentNotificationService, PaymentPlanService, PaymentEventChargesService, PaypalTransactionsService +- **Phone:** 1 services, 23 LOC. PhoneFormatterService +- **Policy:** 1 services, 51 LOC. PolicyContentService +- **Preferences:** 3 services, 190 LOC. PreferencesCommandService, PreferencesQueryService, PreferencesOptionsService +- **PrintRequests:** 1 services, 558 LOC. PrintRequestsPortalService +- **Promotions:** 7 services, 1,740 LOC. PromotionStatusService, PromotionEnrollmentService, PromotionReminderService, LevelProgressionService, PromotionAuditService, PromotionQueryService, PromotionEligibilityService +- **PublicWinners:** 1 services, 115 LOC. PublicWinnersPortalService +- **PurchaseOrders:** 4 services, 252 LOC. PurchaseOrderStatusService, PurchaseOrderReceiveService, PurchaseOrderCreateService, PurchaseOrderQueryService +- **Refunds:** 9 services, 1,210 LOC. RefundSummaryService, RefundInvoiceAdjustmentService, RefundPolicyService, RefundPayoutService, RefundRequestService, RefundQueryService, RefundOverpaymentService, RefundDecisionService, RefundNotificationService +- **Reimbursements:** 11 services, 1,776 LOC. ReimbursementFileService, ReimbursementBatchAssignmentService, ReimbursementContextService, ReimbursementExportService, ReimbursementLookupService, ReimbursementEmailService, ReimbursementRecipientService, ReimbursementBatchService, ReimbursementQueryService, ReimbursementDonationService, ReimbursementCrudService +- **Reports:** 9 services, 2,445 LOC. SlipPrinterFormatterService, SlipPrinterPdfService, SlipPrinterService, SlipPrinterConfigService, StickerPrintService, StickerPresetService, StickerQueryService, StickerContextService, ReportCardService +- **Roles:** 8 services, 545 LOC. RolePermissionService, RoleDashboardService, RoleCrudService, RoleAssignmentService, RoleSwitchService, RoleStaffService, PermissionCrudService, RoleQueryService +- **Root:** 8 services, 550 LOC. FeeCalculationService, SemesterRangeService, ApplicationUrlService, SchoolIdService, AssignmentService, AttendanceCommentTemplateService, PhoneFormatterService, EmailService +- **School:** 4 services, 990 LOC. AccountEventService, SemesterSelectionService, EnrollmentEventService, PaymentEventService +- **SchoolIds:** 2 services, 41 LOC. SchoolIdAssignmentService, SchoolIdGenerationService +- **Scores:** 16 services, 2,846 LOC. ParticipationScoreService, QuizCalculator, QuizScoreService, ScoreCommentService, ScoreDashboardService, HomeworkCalculator, SemesterScoreService, ScorePredictorRiskService, ProjectScoreService, HomeworkScoreService, ScoreTermService, ProjectCalculator, ScorePredictorDataService, ScorePredictorService, ExamScoreService, AttendanceCalculator +- **Security:** 3 services, 171 LOC. IpBanCommandService, IpBanQueryService, Pbkdf2Hasher +- **Semesters:** 1 services, 42 LOC. SemesterConfigService +- **Settings:** 8 services, 656 LOC. SettingsService, ConfigurationService, SchoolCalendarMutationService, SchoolCalendarNotificationService, SchoolCalendarContextService, SchoolCalendarQueryService, SchoolCalendarFormatterService, SchoolCalendarMeetingService +- **Staff:** 3 services, 325 LOC. StaffQueryService, StaffTimeOffLinkService, StaffCommandService +- **Students:** 7 services, 1,254 LOC. StudentScoreCardService, StudentStatusService, StudentDirectoryService, StudentAutoDistributionService, StudentConfigService, StudentProfileService, StudentAssignmentService +- **Subjects:** 1 services, 80 LOC. SubjectCurriculumService +- **Support:** 2 services, 123 LOC. SupportRequestService, ContactMessageService +- **System:** 6 services, 353 LOC. HealthCheckService, CleanupSchedulerService, GlobalConfigService, DatabaseHealthService, ConfigUpdateService, TimeService +- **Teachers:** 4 services, 641 LOC. TeacherAbsenceService, TeacherDashboardService, TeacherConfigService, TeacherAssignmentService +- **Ui:** 1 services, 95 LOC. UiStyleService +- **Users:** 6 services, 647 LOC. UserListService, LoginActivityService, InactiveUserCleanupService, UserManagementService, UserEventService, DeleteUnverifiedUserService +- **Whatsapp:** 8 services, 1,407 LOC. WhatsappContactService, WhatsappInviteService, WhatsappLinkService, WhatsappContextService, WhatsappInviteNotificationService, WhatsappMembershipService, WhatsappInviteBundleService, WhatsappInviteEmailService + +## Appendix C: Request Groups + +- **Admin:** 3 requests. StoreCompetitionWinnerRequest, UpdateCompetitionWinnerRequest, SaveCompetitionScoresRequest +- **Administrator:** 5 requests. SavePrintRecipientsRequest, SaveAdminNotificationSubjectsRequest, SubmitAdministratorAbsenceRequest, UpdateEnrollmentStatusesRequest, SendTeacherSubmissionNotificationsRequest +- **Api:** 4 requests. SaveAdminNotificationSubjectsRequest, IndexAdminProgressRequest, SendTeacherSubmissionNotificationsRequest, SavePrintNotificationRecipientsRequest +- **Assignment:** 2 requests. StoreAssignmentRequest, StoreStudentAssignmentRequest +- **Attendance:** 7 requests. SaveStaffAttendanceCellRequest, UpdateAttendanceManagementRequest, LateSlipLogIndexRequest, TeacherSubmitAttendanceRequest, SaveAdminAttendanceRequest, TeacherUpdateGridRequest, AdminAddAttendanceEntryRequest +- **AttendanceCommentTemplate:** 2 requests. StoreAttendanceCommentTemplateRequest, UpdateAttendanceCommentTemplateRequest +- **AttendanceTracking:** 5 requests. RecordAttendanceTrackingRequest, ComposeAttendanceEmailRequest, SendAttendanceManualEmailRequest, ParentsInfoRequest, SaveAttendanceNotificationNoteRequest +- **Auth:** 3 requests. RegisterRequest, SetRoleSessionRequest, LoginSessionRequest +- **Badges:** 3 requests. BadgePrintStatusRequest, GenerateBadgePdfRequest, LogBadgePrintRequest +- **ClassPreparation:** 4 requests. ClassPreparationMarkPrintedRequest, ClassPreparationPrintRequest, ClassPreparationIndexRequest, ClassPreparationAdjustmentRequest +- **ClassProgress:** 5 requests. ClassProgressStoreRequest, ClassProgressMetaRequest, ClassProgressIndexRequest, ClassProgressFormRequest, ClassProgressUpdateRequest +- **Classes:** 3 requests. ClassSectionUpdateRequest, ClassSectionStoreRequest, ClassSectionIndexRequest +- **Discounts:** 3 requests. UpdateDiscountVoucherRequest, ApplyDiscountVoucherRequest, StoreDiscountVoucherRequest +- **Email:** 2 requests. EmailExtractorCompareRequest, EmailSendRequest +- **EmergencyContacts:** 2 requests. EmergencyContactParentRequest, EmergencyContactUpdateRequest +- **Events:** 6 requests. EventIndexRequest, EventUpdateRequest, EventStoreRequest, EventStudentsWithChargesRequest, EventChargeUpdateRequest, EventChargeIndexRequest +- **Exams:** 3 requests. ExamDraftTeacherStoreRequest, ExamDraftAdminLegacyRequest, ExamDraftAdminReviewRequest +- **Expenses:** 3 requests. UpdateExpenseRequest, StoreExpenseRequest, UpdateExpenseStatusRequest +- **ExtraCharges:** 2 requests. UpdateExtraChargeRequest, StoreExtraChargeRequest +- **Families:** 14 requests. FamilyImportLegacyRequest, FamilyUnlinkStudentRequest, FamilySetPrimaryHomeRequest, FamilyAdminCardRequest, FamiliesByStudentRequest, FamilyBootstrapRequest, FamilyAttachSecondByEmailRequest, FamilyAdminSearchRequest, FamilySetGuardianFlagsRequest, FamilyAdminIndexRequest, FamilyComposeEmailRequest, FamilyUnlinkGuardianRequest, GuardiansByFamilyRequest, FamilyAttachSecondByUserRequest +- **Fees:** 2 requests. FeeTuitionTotalRequest, FeeRefundRequest +- **Files:** 1 requests. FileNameRequest +- **Finance:** 12 requests. FinancialUnpaidParentsRequest, FeeTuitionTotalRequest, ChargeListRequest, FinancialReportRequest, FinancialSummaryRequest, MarkEventChargePaidRequest, FeeTuitionBreakdownRequest, StoreExtraChargeRequest, StoreEventChargeRequest, FeeFamilyBalanceRequest, ApplyExtraChargeRequest, FeeRefundRequest +- **Frontend:** 2 requests. LandingTeacherRequest, ContactSubmitRequest +- **Grading:** 18 requests. BelowSixtyListRequest, BelowSixtySendRequest, GradingLockAllRequest, BelowSixtyMeetingRequest, PlacementLevelsRequest, GradingRefreshRequest, GradingScoreShowRequest, HomeworkTrackingRequest, GradingScoreUpdateRequest, PlacementRequest, PlacementBatchUpdateRequest, BelowSixtyEmailRequest, BelowSixtyStatusRequest, PlacementBatchRequest, GradingLockRequest, PlacementLevelRequest, BelowSixtyMeetingSaveRequest, GradingOverviewRequest +- **Incidents:** 5 requests. IncidentCancelRequest, IncidentCloseRequest, IncidentStoreRequest, IncidentListRequest, IncidentStateRequest +- **Inventory:** 19 requests. InventoryItemIndexRequest, SupplierUpdateRequest, InventoryCategoryStoreRequest, InventoryTeacherDistributionRequest, InventoryItemUpdateRequest, InventoryItemStoreRequest, InventoryTeacherDistributionStoreRequest, InventoryCategoryUpdateRequest, SupplyCategoryStoreRequest, InventoryCategoryIndexRequest, InventoryAdjustRequest, InventoryAuditRequest, SupplierIndexRequest, InventoryMovementIndexRequest, InventoryMovementBulkDeleteRequest, SupplierStoreRequest, InventoryMovementUpdateRequest, InventoryMovementStoreRequest ... +- **Invoices:** 4 requests. InvoiceStatusRequest, InvoiceManagementRequest, InvoiceParentRequest, InvoiceGenerateRequest +- **Messaging:** 3 requests. MessageSendRequest, MessageIndexRequest, MessageUpdateRequest +- **Notifications:** 5 requests. NotificationSendRequest, NotificationActiveRequest, NotificationDeletedRequest, NotificationUpdateRequest, NotificationIndexRequest +- **Parents:** 16 requests. ParentAttendanceReportUpdateRequest, ParentAttendanceReportListRequest, ParentAttendanceReportSubmitRequest, ParentEmergencyContactRequest, UpdateAuthorizedUserRequest, ParentAttendanceReportCheckRequest, ParentProfileUpdateRequest, ParentInvoiceRequest, ParentEnrollmentRequest, SignParentReportCardRequest, ParentAttendanceRequest, StoreAuthorizedUserRequest, ParentStudentUpdateRequest, ParentEventParticipationRequest, ParentEnrollmentActionRequest, ParentRegistrationRequest +- **Payments:** 15 requests. PaymentManualSearchRequest, PaymentEventChargesListRequest, PaymentNotificationSendRequest, PaymentNotificationListRequest, PaymentCreateRequest, PaypalTransactionsListRequest, PaymentManualEditRequest, PaymentEventChargesStoreRequest, PaymentUpdateBalanceRequest, PaymentManualUpdateRequest, PaymentManualSuggestRequest, PaypalExecuteRequest, PaymentByParentRequest, PaymentTransactionStatusRequest, PaymentTransactionCreateRequest +- **Preferences:** 2 requests. PreferencesIndexRequest, PreferencesUpsertRequest +- **Promotions:** 8 requests. SendReminderRequest, ParentPromotionOverviewRequest, AdminListPromotionsRequest, EvaluateEligibilityRequest, UpdatePromotionStatusRequest, ParentEnrollmentStepRequest, SetEnrollmentDeadlineRequest, UpsertLevelProgressionRequest +- **PurchaseOrders:** 3 requests. PurchaseOrderIndexRequest, PurchaseOrderStoreRequest, PurchaseOrderReceiveRequest +- **Refunds:** 6 requests. RefundStoreRequest, RefundPaymentRequest, RefundDecisionRequest, RefundRecalculateRequest, RefundIndexRequest, RefundRejectRequest +- **Reimbursements:** 13 requests. ReimbursementBatchAdminFileRequest, ReimbursementUpdateRequest, ReimbursementBatchCreateRequest, ReimbursementBatchEmailRequest, ReimbursementProcessRequest, ReimbursementExportBatchRequest, ReimbursementIndexRequest, ReimbursementExportRequest, ReimbursementMarkDonationRequest, ReimbursementBatchAssignmentRequest, ReimbursementStoreRequest, ReimbursementBatchLockRequest, ReimbursementUnderProcessingRequest +- **Reports:** 11 requests. SlipPreviewRequest, SlipLogListRequest, SlipPrintRequest, SlipReprintRequest, StickerStudentsByClassRequest, StickerPrintRequest, StickerFormDataRequest, ReportCardCompletenessRequest, ReportCardPdfRequest, ReportCardAcknowledgementRequest, ReportCardMetaRequest +- **Roles:** 9 requests. AssignUserRolesRequest, RolePermissionUpdateRequest, UserRoleListRequest, PermissionUpdateRequest, PermissionStoreRequest, RoleSwitchRequest, RoleStoreRequest, RoleUpdateRequest, RoleListRequest +- **Root:** 1 requests. ApiFormRequest +- **SchoolIds:** 1 requests. SchoolIdAssignRequest +- **Scores:** 10 requests. ScoreCommentSaveRequest, ScorePredictorRequest, ScoreLockRequest, ScoreUpdateRequest, ScoreOverviewRequest, ScoreStudentRequest, ScoreCommentListRequest, ScoreClassRequest, ScoreCommentUpdateRequest, ScoreAddColumnRequest +- **Security:** 3 requests. IpBanIndexRequest, IpUnbanRequest, IpBanRequest +- **Semesters:** 4 requests. SchoolYearRangeRequest, SemesterResolveRequest, SemesterNormalizeRequest, SemesterRangeRequest +- **Settings:** 8 requests. SchoolCalendarStoreRequest, ConfigurationStoreRequest, SettingsUpdateRequest, SchoolCalendarIndexRequest, ConfigurationUpdateRequest, SchoolCalendarUpdateRequest, PolicyShowRequest, SchoolCalendarOptionsRequest +- **Staff:** 3 requests. StaffIndexRequest, StaffUpdateRequest, StaffStoreRequest +- **Students:** 7 requests. StudentRemoveClassRequest, StudentUpdateRequest, StudentAssignClassRequest, StudentSetActiveRequest, StudentPromotionTotalsRequest, StudentAssignmentListRequest, StudentAutoDistributeRequest +- **Subjects:** 2 requests. SubjectCurriculumUpdateRequest, SubjectCurriculumStoreRequest +- **Support:** 3 requests. SupportRequestStoreRequest, SupportRequestIndexRequest, ContactSendRequest +- **System:** 2 requests. NavItemStoreRequest, NavItemReorderRequest +- **Teachers:** 6 requests. TeacherClassViewRequest, TeacherAbsenceSubmitRequest, TeacherAssignmentDeleteRequest, TeacherAssignmentStoreRequest, TeacherAssignmentListRequest, TeacherSwitchClassRequest +- **Ui:** 1 requests. UiStyleRequest +- **Users:** 4 requests. UserStoreRequest, UserListRequest, UserUpdateRequest, LoginActivityRequest +- **Utilities:** 1 requests. PhoneFormatRequest +- **Whatsapp:** 7 requests. WhatsappLinkIndexRequest, WhatsappMembershipUpdateRequest, WhatsappLinkStoreRequest, WhatsappLinkUpdateRequest, WhatsappParentContactsRequest, WhatsappParentContactsByClassRequest, WhatsappInviteSendRequest + +## Appendix D: Resource Groups + +- **Admin:** 5 resources. PrintRecipientsResource, TeacherSubmissionReportResource, AdminNotificationAlertsResource, ProgressGroupResource, ProgressReportDetailResource +- **Assignment:** 2 resources. AssignmentOverviewResource, AssignmentSectionResource +- **Attendance:** 7 resources. DailyAttendanceResource, AdminAttendanceResource, LateSlipLogCollection, LateSlipLogResource, TeacherGridResource, StaffMonthResource, TeacherAttendanceFormResource +- **Auth:** 1 resources. RegisterResource +- **ClassPreparation:** 2 resources. ClassPreparationPrintResource, ClassPreparationResultResource +- **ClassProgress:** 4 resources. ClassProgressGroupCollection, ClassProgressAttachmentResource, ClassProgressShowResource, ClassProgressReportResource +- **Classes:** 4 resources. ClassSectionCollection, ClassSectionResource, ClassAttendanceResource, ClassAttendanceStudentResource +- **Discounts:** 2 resources. DiscountVoucherResource, DiscountParentResource +- **Email:** 3 resources. EmailSenderResource, EmailExtractorEmailsResource, EmailExtractorCompareResource +- **EmergencyContacts:** 3 resources. EmergencyContactGroupResource, EmergencyContactStudentResource, EmergencyContactResource +- **Events:** 3 resources. EventChargeResource, EventResource, EventStudentChargeResource +- **Exams:** 1 resources. ExamDraftResource +- **Expenses:** 2 resources. ExpenseResource, ExpenseStaffResource +- **ExtraCharges:** 3 resources. ExtraChargeInvoiceOptionResource, ExtraChargeResource, ExtraChargeParentOptionResource +- **Families:** 7 resources. FamilyPaymentResource, FamilyInvoiceResource, FamilySearchItemResource, FamilyResource, FamilyGuardianResource, FamilyStudentResource, FamilyEmergencyContactResource +- **Fees:** 6 resources. FeeRefundResource, FeeFamilyBalanceResource, ChargeActionResource, ChargeListResource, FeeTuitionBreakdownResource, FeeTuitionTotalResource +- **Files:** 1 resources. FileMetaResource +- **Finance:** 9 resources. FinancialReportResource, FinancialSummaryResource, FinancialExpenseSummaryResource, FinancialInvoiceResource, FinancialPaymentResource, FinancialRefundResource, FinancialUnpaidParentResource, FinancialDiscountResource, FinancialReimbursementSummaryResource +- **Frontend:** 6 resources. LandingPageResource, ContactSubmissionResource, FrontendPageResource, FrontendUserResource, ProfileIconResource, PageContentResource +- **Grading:** 3 resources. BelowSixtyStudentResource, GradingScoreResource, HomeworkTrackingTeacherResource +- **Incidents:** 4 resources. IncidentStudentOptionResource, IncidentAnalysisStudentResource, IncidentResource, IncidentGradeResource +- **Inventory:** 5 resources. InventoryItemResource, InventoryCategoryResource, InventoryMovementResource, SupplierResource, SupplyCategoryResource +- **Invoices:** 2 resources. InvoiceManagementParentResource, InvoiceResource +- **Messaging:** 3 resources. MessageResource, MessageCollection, RecipientResource +- **Notifications:** 2 resources. UserNotificationResource, NotificationResource +- **Parents:** 4 resources. ParentEmergencyContactResource, ParentAttendanceReportResource, ParentStudentResource, ParentAttendanceResource +- **Payments:** 4 resources. PaymentNotificationLogResource, PaymentTransactionResource, PaypalTransactionResource, PaymentResource +- **Preferences:** 3 resources. PreferencesListResource, PreferencesCollection, PreferencesResource +- **Promotions:** 4 resources. LevelProgressionResource, PromotionAuditLogResource, PromotionReminderResource, StudentPromotionResource +- **PurchaseOrders:** 2 resources. PurchaseOrderResource, PurchaseOrderItemResource +- **Refunds:** 1 resources. RefundResource +- **Reimbursements:** 5 resources. ReimbursementRecipientResource, ReimbursementExpenseResource, ReimbursementBatchResource, ReimbursementResource, ReimbursementUnderProcessingItemResource +- **Reports:** 8 resources. LateSlipLogResource, StickerStudentResource, StickerPresetResource, StickerClassSectionResource, ReportCardStudentMetaResource, ReportCardAcknowledgementResource, ReportCardClassSectionResource, ReportCardCompletenessStudentResource +- **Roles:** 4 resources. RolePermissionResource, RoleResource, UserWithRolesResource, PermissionResource +- **Root:** 1 resources. TeacherSubmissionRowResource +- **SchoolIds:** 1 resources. SchoolIdResource +- **Scores:** 3 resources. ScorePredictorStudentResource, ScoreCommentResource, ScoreStudentResource +- **Security:** 2 resources. IpBanCollection, IpBanResource +- **Semesters:** 2 resources. SemesterResolveResource, SemesterRangeResource +- **Settings:** 5 resources. PolicyResource, SchoolCalendarEventResource, SettingsResource, ConfigurationResource, SchoolCalendarEventDetailResource +- **Staff:** 2 resources. StaffCollection, StaffResource +- **Students:** 4 resources. StudentAssignmentResource, StudentRemovedResource, StudentClassSectionResource, StudentScoreCardRowResource +- **Subjects:** 2 resources. SubjectCurriculumResource, SubjectClassResource +- **Support:** 3 resources. ContactMessageResource, SupportRequestResource, SupportRequestCollection +- **System:** 4 resources. DashboardRouteResource, NavItemResource, HealthStatusResource, NavBuilderDataResource +- **Teachers:** 4 resources. TeacherAbsenceResource, TeacherStudentResource, TeacherClassResource, TeacherAssignmentResource +- **Ui:** 1 resources. UiStyleResource +- **Users:** 2 resources. LoginActivityResource, UserWithRolesResource +- **Utilities:** 1 resources. PhoneFormatResource +- **Whatsapp:** 5 resources. WhatsappParentContactResource, WhatsappGroupLinkResource, WhatsappClassSectionParentResource, WhatsappGroupLinkCollection, WhatsappClassSectionContactResource + +## Appendix E: Implementation Fix Tickets + +These tickets are the plan’s mandatory implementation layer. Each one should become a tracked issue with tests before code changes begin. + +### Ticket P0-001: Payment file access hardening + +**Problem:** Filename-driven file serving can allow users to request files without proving access to the payment record. + +**Implementation:** + +- Change the endpoint contract from `{filename}` to `{payment}` or `{payment}/file`. +- Load the payment with invoice/family context. +- Authorize using a policy or gate before resolving file path. +- Resolve file path from the stored payment record only. +- Keep basename/path traversal protection as defense-in-depth, not as the primary access control. +- Log download attempts with actor, payment, result, and source IP where available. + +**Tests:** + +- finance/admin success; +- owning parent success if business rules allow it; +- unrelated parent forbidden; +- teacher/staff forbidden unless explicitly allowed; +- guessed filename forbidden; +- traversal filename rejected; +- missing file returns `404` without leaking storage path. + +### Ticket P0-002: Manual payment edit transaction safety + +**Problem:** Payment edit and invoice recalculation must not be split across unprotected operations. + +**Implementation:** + +- Wrap edit, invoice lookup, balance recompute, payment update, and audit insert in one transaction. +- Lock payment and invoice rows before recalculation. +- Recalculate after mutation inside the same transaction. +- Enforce no-overpayment and valid method/status transitions. +- Write before/after audit data. + +**Tests:** + +- successful edit updates invoice balance; +- rejected edit leaves payment and invoice unchanged; +- two concurrent edits do not corrupt balance; +- audit row contains actor and before/after values. + +### Ticket P0-003: Student school ID generation + +**Problem:** `max(id) + 1` style generation is race-prone. + +**Implementation:** + +- Create the student first, then derive school ID from the persisted ID, or use a database-backed sequence. +- Add a unique constraint to `students.school_id`. +- Save school ID inside the same transaction. +- Add retry behavior for collision. + +**Tests:** + +- normal create assigns expected school ID format; +- duplicate school ID violates database constraint; +- concurrent create does not produce duplicates; +- rollback does not leave orphaned related records. + +### Ticket P0-004: Scanner service extraction and idempotency + +**Problem:** Scanner logic is too large for a controller and mixes validation, lookup, mutation, late-slip behavior, logging, and response formatting. + +**Implementation:** + +- Add `ScannerRequest`. +- Create `ScannerService` as the orchestration entry point. +- Extract `BadgeLookupService`, `StudentScanService`, `StaffScanService`, `LateArrivalService`, `AttendanceScanLogger`, and `ScannerResponseFactory`. +- Put attendance mutations inside one transaction. +- Add duplicate-scan/idempotency protection. + +**Tests:** + +- valid student scan; +- valid staff scan; +- invalid badge; +- duplicate scan; +- late arrival; +- semester/date boundary; +- scan log written exactly once per accepted mutation. + +### Ticket P0-005: Role and permission mutation authorization + +**Problem:** Role/permission mutations have high blast radius and must not rely on casual controller checks. + +**Implementation:** + +- Define canonical role/permission controllers. +- Mark duplicate root/auth controllers as canonical, shim, deprecated, or accidental duplicate. +- Route only to canonical controllers. +- Use a policy/gate for every mutation. +- Log actor, target, old state, and new state. + +**Tests:** + +- super-admin/admin allowed according to policy; +- lower-role forbidden; +- user cannot mutate own privilege unless explicitly allowed; +- deprecated/shim routes cannot bypass policy. + +### Ticket P0-006: Bulk communication safety + +**Problem:** Bulk send behavior can accidentally spam, duplicate, or target the wrong recipients. + +**Implementation:** + +- Require preview/dry-run before send. +- Canonicalize and deduplicate recipients. +- Apply opt-outs/preferences. +- Log send attempts, failures, and retries. +- Separate message composition from delivery. + +**Tests:** + +- preview count equals eligible send count; +- duplicate guardians collapse; +- opted-out recipients are excluded; +- failed sends are logged and retryable; +- wrong-role sender cannot bulk send. + +### Ticket P0-007: Refund/payment/invoice audit completeness + +**Problem:** Financial state must be reconstructable after the fact. “Trust me, it updated” is not an audit strategy, it is a confession. + +**Implementation:** + +- Standardize audit fields across payments, invoices, refunds, discounts, reimbursements, and external sync. +- Include actor, target, amount, old state, new state, source, and idempotency key. +- Ensure reports use the same canonical ledger/balance behavior as API reads. + +**Tests:** + +- each financial mutation creates audit data; +- reports reconcile with API totals; +- repeated external sync does not double-apply; +- failed mutation does not write misleading audit success. + +## Appendix E: Notable Review Queues + +### Raw SQL review queue + +- `app/Services/Finance/FinancialSummaryService.php`: 28 matches +- `app/Services/Grading/GradingOverviewService.php`: 11 matches +- `app/Services/Finance/FinancialReportService.php`: 10 matches +- `app/Models/User.php`: 7 matches +- `app/Models/AttendanceData.php`: 6 matches +- `app/Services/Refunds/RefundOverpaymentService.php`: 6 matches +- `app/Services/Reports/ReportCards/ReportCardService.php`: 6 matches +- `app/Services/AttendanceTracking/ViolationRuleEngineService.php`: 5 matches +- `app/Services/AttendanceTracking/AttendanceCaseQueryService.php`: 4 matches +- `app/Services/Grading/GradingBelowSixtyService.php`: 4 matches +- `app/Services/Grading/HomeworkTrackingService.php`: 4 matches +- `app/Models/Payment.php`: 3 matches +- `app/Services/Attendance/AttendanceQueryService.php`: 3 matches +- `app/Services/Inventory/InventoryItemService.php`: 3 matches +- `app/Services/Inventory/InventoryMovementService.php`: 3 matches +- `app/Services/Payments/PaymentMissedCheckService.php`: 3 matches +- `app/Services/Scores/ScoreDashboardService.php`: 3 matches +- `app/Services/Scores/ScorePredictorDataService.php`: 3 matches +- `app/Models/Invoice.php`: 2 matches +- `app/Models/Role.php`: 2 matches +- `app/Models/TeacherClass.php`: 2 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersAdminService.php`: 2 matches +- `app/Services/Attendance/AttendanceDailySummaryService.php`: 2 matches +- `app/Services/AttendanceTracking/AttendancePendingViolationService.php`: 2 matches +- `app/Services/Families/FamilyQueryService.php`: 2 matches +- `app/Services/Finance/FinancialPaymentService.php`: 2 matches +- `app/Services/Promotions/PromotionQueryService.php`: 2 matches +- `app/Services/Refunds/RefundPayoutService.php`: 2 matches +- `app/Services/Refunds/RefundQueryService.php`: 2 matches +- `app/Services/Staff/StaffQueryService.php`: 2 matches +- `app/Services/Whatsapp/WhatsappInviteBundleService.php`: 2 matches +- `app/Models/AdditionalCharge.php`: 1 matches +- `app/Models/AttendanceRecord.php`: 1 matches +- `app/Models/AttendanceTracking.php`: 1 matches +- `app/Models/Project.php`: 1 matches +- `app/Models/RoleNavItem.php`: 1 matches +- `app/Models/StaffAttendance.php`: 1 matches +- `app/Models/StudentAllergy.php`: 1 matches +- `app/Models/StudentMedicalCondition.php`: 1 matches +- `app/Models/WhatsappGroupMembership.php`: 1 matches +- ... 19 more files + +### Direct request access review queue + +- `app/Http/Controllers/Api/AttendanceTracking/AttendanceTrackingController.php`: 16 matches +- `app/Http/Controllers/Api/Attendance/AttendanceCommentTemplateController.php`: 15 matches +- `app/Http/Controllers/Api/Communication/CommunicationController.php`: 12 matches +- `app/Http/Controllers/Api/Badges/BadgeController.php`: 9 matches +- `app/Http/Controllers/Api/Email/BroadcastEmailController.php`: 9 matches +- `app/Http/Controllers/Api/ExtraCharges/ExtraChargesController.php`: 9 matches +- `app/Http/Controllers/Api/Students/StudentController.php`: 9 matches +- `app/Http/Controllers/Api/Attendance/StaffAttendanceApiController.php`: 8 matches +- `app/Http/Controllers/Api/Attendance/EarlyDismissalsController.php`: 7 matches +- `app/Http/Controllers/Api/ClassPreparation/ClassPreparationController.php`: 7 matches +- `app/Http/Controllers/Api/Attendance/TeacherAttendanceApiController.php`: 5 matches +- `app/Http/Controllers/Api/Certificates/CertificateController.php`: 5 matches +- `app/Http/Controllers/Api/Reports/ReportCardsController.php`: 5 matches +- `app/Http/Controllers/Api/CompetitionScores/CompetitionScoresController.php`: 4 matches +- `app/Http/Controllers/Api/Finance/ReimbursementController.php`: 4 matches +- `app/Http/Controllers/Api/PrintRequests/PrintRequestsController.php`: 4 matches +- `app/Http/Controllers/Api/Administrator/AdministratorEnrollmentController.php`: 3 matches +- `app/Http/Controllers/Api/Assignment/AssignmentApiController.php`: 3 matches +- `app/Http/Controllers/Api/Finance/InvoiceController.php`: 3 matches +- `app/Http/Controllers/Api/Finance/PaymentManualController.php`: 3 matches +- `app/Http/Controllers/Api/Parents/AuthorizedUserInviteController.php`: 3 matches +- `app/Http/Controllers/Api/Scores/ScoreCommentController.php`: 3 matches +- `app/Http/Controllers/Api/Scores/ScoreController.php`: 3 matches +- `app/Services/Administrator/AdministratorAbsenceService.php`: 3 matches +- `app/Http/Controllers/Api/Administrator/AdministratorNotificationController.php`: 2 matches +- `app/Http/Controllers/Api/Attendance/AdminAttendanceApiController.php`: 2 matches +- `app/Http/Controllers/Api/Auth/AuthSessionController.php`: 2 matches +- `app/Http/Controllers/Api/Auth/RegisterController.php`: 2 matches +- `app/Http/Controllers/Api/Classes/ClassController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PaymentController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PaymentTransactionController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/PurchaseOrderController.php`: 2 matches +- `app/Http/Controllers/Api/Incidents/IncidentController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/FinalController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/HomeworkController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/MidtermController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/ParticipationController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/ProjectController.php`: 2 matches +- `app/Http/Controllers/Api/Scores/QuizController.php`: 2 matches +- `app/Services/Administrator/TeacherSubmissionNotificationService.php`: 2 matches +- ... 10 more files + +### File operation review queue + +- `app/Services/Reimbursements/ReimbursementEmailService.php`: 5 matches +- `app/Http/Controllers/Api/Students/StudentController.php`: 3 matches +- `app/Services/Badges/BadgePdfService.php`: 3 matches +- `app/ThirdParty/fpdf/fpdf.php`: 3 matches +- `app/Http/Controllers/Api/ClassProgress/ClassProgressController.php`: 2 matches +- `app/Http/Controllers/Api/Finance/ReimbursementController.php`: 2 matches +- `app/Services/Payments/PaymentManualService.php`: 2 matches +- `app/Services/PrintRequests/PrintRequestsPortalService.php`: 2 matches +- `app/Services/System/ConfigUpdateService.php`: 2 matches +- `app/Services/Whatsapp/WhatsappInviteEmailService.php`: 2 matches +- `app/Http/Controllers/Api/Attendance/EarlyDismissalsController.php`: 1 matches +- `app/Http/Controllers/Api/Finance/FinancialController.php`: 1 matches +- `app/Http/Controllers/Api/Finance/PaypalTransactionsController.php`: 1 matches +- `app/Http/Controllers/Api/PrintRequests/PrintRequestsController.php`: 1 matches +- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches +- `app/Services/Finance/FinancialChartService.php`: 1 matches +- `app/Services/Parents/ParentAttendanceReportService.php`: 1 matches +- `app/Services/Reimbursements/ReimbursementFileService.php`: 1 matches + +### Queue/dispatch review queue + +- `app/Services/Promotions/PromotionReminderService.php`: 2 matches +- `app/Console/Commands/DeleteUnverifiedUsersCommand.php`: 1 matches +- `app/Services/Administrator/AdministratorEnrollmentEventService.php`: 1 matches +- `app/Services/Grading/GradingBelowSixtyService.php`: 1 matches +- `app/Services/Notifications/NotificationTriggerService.php`: 1 matches +- `app/Services/Whatsapp/WhatsappInviteNotificationService.php`: 1 matches +- `app/Services/Whatsapp/WhatsappInviteService.php`: 1 matches + +### Legacy compatibility review queue + +- `app/Services/Parents/ParentAttendanceReportService.php`: 4 matches +- `app/Config/Database.php`: 3 matches +- `app/Helpers/ci_helpers.php`: 3 matches +- `app/Http/Controllers/Api/Attendance/AttendanceCommentTemplateController.php`: 3 matches +- `app/Http/Controllers/Api/Auth/RegisterController.php`: 3 matches +- `app/Http/Controllers/Api/BaseApiController.php`: 3 matches +- `app/Http/Controllers/Api/Core/BaseApiController.php`: 2 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersAdminService.php`: 2 matches +- `app/Services/AttendanceTracking/AttendanceTrackingService.php`: 2 matches +- `app/Services/Auth/ApiLoginSecurityService.php`: 2 matches +- `app/Services/Auth/CodeIgniterApiRegistrationService.php`: 2 matches +- `app/Services/Discounts/DiscountApplyService.php`: 2 matches +- `app/Services/ExtraCharges/ExtraChargesChargeService.php`: 2 matches +- `app/Services/Payments/PaymentManualService.php`: 2 matches +- `app/Http/Controllers/Api/Auth/AuthController.php`: 1 matches +- `app/Http/Controllers/Api/Auth/AuthSessionController.php`: 1 matches +- `app/Http/Controllers/Api/CiRequestAdapter.php`: 1 matches +- `app/Http/Controllers/Api/Core/CiRequestAdapter.php`: 1 matches +- `app/Http/Controllers/Api/System/HealthController.php`: 1 matches +- `app/Http/Controllers/Api/Utilities/ProofreadController.php`: 1 matches +- `app/Http/Middleware/EnsureClassProgressTeacherPortalAccess.php`: 1 matches +- `app/Http/Middleware/EnsureParentProgressAccess.php`: 1 matches +- `app/Http/Middleware/EnsurePrintRequestsAdminAccess.php`: 1 matches +- `app/Http/Middleware/EnsurePrintRequestsTeacherAccess.php`: 1 matches +- `app/Http/Middleware/TeacherPortalAuthenticate.php`: 1 matches +- `app/Http/Requests/Admin/SaveCompetitionScoresRequest.php`: 1 matches +- `app/Http/Requests/Admin/StoreCompetitionWinnerRequest.php`: 1 matches +- `app/Http/Requests/Admin/UpdateCompetitionWinnerRequest.php`: 1 matches +- `app/Models/CiDatabase.php`: 1 matches +- `app/Models/User.php`: 1 matches +- `app/Services/Admin/CompetitionWinners/CompetitionWinnersDomain.php`: 1 matches +- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches +- `app/Services/Auth/AuthSessionService.php`: 1 matches +- `app/Services/BadgeScan/BadgeScanService.php`: 1 matches +- `app/Services/Docs/DocsCatalogService.php`: 1 matches +- `app/Services/Parents/AuthorizedUsersManagementService.php`: 1 matches +- `app/Services/Parents/ParentProgressQueryService.php`: 1 matches +- `app/Services/Parents/ParentReportCardService.php`: 1 matches +- `app/Services/Parents/PrimaryParentUserResolver.php`: 1 matches +- `app/Services/PrintRequests/PrintRequestsPortalService.php`: 1 matches +- ... 1 more files + + +## Appendix B: Reusable School Platform Tickets + +### MSP-001: Create `SchoolContext` + +**Goal:** Provide one immutable context object for school/program/tenant scoping. + +**Acceptance criteria:** + +- Contains school/program/tenant identifiers as required by the chosen model. +- Created at API boundary after authentication. +- Passed into all high-risk service commands. +- Used by repositories, policies, jobs, files, reports, and notifications. +- Cross-school access tests fail before the fix and pass after. + +### MSP-002: Classify all services + +**Goal:** Separate reusable core services from Islamic Sunday School extension services and infrastructure adapters. + +**Acceptance criteria:** + +- Every service is labeled `Core`, `IslamicSundaySchoolExtension`, `Infrastructure`, or `LegacyShim`. +- Each duplicate service has a canonical owner. +- CI/static check blocks `SchoolCore -> IslamicSundaySchool` dependencies. + +### MSP-003: Extract attendance policy architecture + +**Goal:** Make attendance reusable for daily schools, weekly programs, Islamic Sunday School, tutoring programs, and hybrid systems. + +**Acceptance criteria:** + +- `AttendancePolicy` contract exists. +- Standard and Islamic Sunday School implementations exist. +- Scanner flow uses a command object with context and actor. +- Duplicate scan/idempotency tests pass for both standard and Sunday policies. + +### MSP-004: Extract finance policy architecture + +**Goal:** Make invoices/payments/refunds reusable across school types. + +**Acceptance criteria:** + +- `TuitionPolicy`, `PaymentAllocationPolicy`, and `LedgerPolicy` or equivalent contracts exist. +- Manual payment edit remains transaction-safe. +- Islamic Sunday School-specific discounts/fees are extension rules, not core assumptions. +- Ledger reconciliation tests pass across at least two policy configurations. + +### MSP-005: Extract student identifier generation + +**Goal:** Remove hardcoded ID generation and support different school ID formats. + +**Acceptance criteria:** + +- `StudentIdentifierGenerator` contract exists. +- Core generator is sequence-safe. +- Islamic Sunday School generator is a concrete extension binding if it uses a special format. +- Unique DB constraint and retry behavior exist. + +### MSP-006: Create extension registration provider + +**Goal:** Make Islamic Sunday School a plugin-style implementation of generic school contracts. + +**Acceptance criteria:** + +- All Islamic Sunday School-specific bindings live in one or more providers. +- Core services can run with default bindings. +- Tests can swap bindings without editing service code. + +### MSP-007: Neutralize domain vocabulary in core + +**Goal:** Ensure core model/service names work for any school system. + +**Acceptance criteria:** + +- Core uses neutral terms: `Student`, `Guardian`, `StaffMember`, `ClassGroup`, `Session`, `AcademicTerm`, `Program`. +- Islamic Sunday School-specific aliases remain in extension/API presentation only. +- No masjid/community/ministry/Sunday vocabulary exists inside `SchoolCore`. diff --git a/docs/modular_plans/islamic_sunday_school_update_index.md b/docs/modular_plans/islamic_sunday_school_update_index.md new file mode 100644 index 00000000..edb9587e --- /dev/null +++ b/docs/modular_plans/islamic_sunday_school_update_index.md @@ -0,0 +1,45 @@ +# Islamic Sunday School Modular Plan Update Index + +This bundle updates the global modular plan and Phases 1-6 so the extension domain is explicitly **Islamic Sunday School**. + +Core rule: `SchoolCore` remains neutral. Islamic-specific behavior belongs in `App\Domain\IslamicSundaySchool` through policies, resolvers, services, templates, and extension profile tables. + +## Updated Files + +- `app_project_plan_global_modular_islamic.md` +- `phase_1_school_context_execution_plan_islamic.md` +- `phase_2_core_contracts_execution_plan_islamic.md` +- `phase_3_modular_finance_execution_plan_islamic.md` +- `phase_4_modular_attendance_execution_plan_islamic.md` +- `phase_5_modular_student_lifecycle_execution_plan_islamic.md` +- `phase_6_modular_communication_execution_plan_islamic.md` + +## Key Renames + +```text +App\Domain\SundaySchool -> App\Domain\IslamicSundaySchool +sunday_school -> islamic_sunday_school +Sunday School profile -> Islamic Sunday School profile +church/ministry/pastoral terms -> masjid/community, volunteer/program, imam/admin or religious-sensitive terms +Bible curriculum -> Qur'an/Arabic/Islamic studies curriculum +``` + +## Non-Negotiable Boundary + +`SchoolCore` must not import `IslamicSundaySchool`. + +Allowed: + +```text +IslamicSundaySchool -> SchoolCore contracts +SchoolCore -> Shared neutral infrastructure +Controllers -> contracts +``` + +Forbidden: + +```text +SchoolCore -> IslamicSundaySchool +SchoolCore contracts containing Islamic-specific vocabulary +Controllers hardcoding Islamic Sunday School rules +``` diff --git a/docs/modular_plans/laravel_school_context_phase1.zip b/docs/modular_plans/laravel_school_context_phase1.zip new file mode 100644 index 0000000000000000000000000000000000000000..1241f32d6c55ee690e1445a21c49cc0ce3121e6a GIT binary patch literal 24351 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

^8GdD{HrnW6G_pT9djN7Z0rL7 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�y?ztrC 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 literal 0 HcmV?d00001 diff --git a/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4.zip b/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4.zip new file mode 100644 index 0000000000000000000000000000000000000000..3049e1336f5151cd6d103302cd3f42544b600a4c GIT binary patch literal 150228 zcmb@u1yEgUwk?di1&847?h@SH-2xkjjciVEy2sznvMsA8>ej45Nxxlopagu(;^1A_xI{m`yYQ=H0=g9rw;@*WI~`t4I&6DJc_ zfUS|UsU;9-Yh((v2LaqcMh=!H&Hz?sRS6Ms1qmiQvvM6f;0h1=ONEh0HX=v&@`X!d zmTH|amjW>GL{8blpI;vvn{kTkz07QEJjTY>%cCGW1?AF3!?OeQauNE5`EH6urb%Yl z?es`_NnhI{u9`vWK&ce7J=Zktg{c05UB304`$4@`&9Q4?&4IP zpivm4mIBd_qwR-#11gCmoS^%jh63M{&|E z)NLMgq>!3G!2T}kLUcKQV1Ne(+1{*tbi%P*eL(}J4*n7+zFc|ywSm*O zx_(KoAaG!i);K@ZP+;&XY)}N3!``>ZN zK`Pbs@&OC-B`43r6jv*yz{ai!M$K^SyxigpH%?3}iCE$~GP7_JK=z{SwZ|EFuD%!C zTyf=TlR4sy{y8IfQ0`{qU^3pb)73gW3&&b#D@(u;u9A-{AwRbIFo`t6i9?ofIPfGp zuwO@@UIg5{k89zA_qKn%ca#d5YH=fe@NgSs%jZ7&q9w)Pb@9WjO2q5K#We1jUthzQ zeuwpgG}sgF-bCus3fg2g#gHUZJ;nY{iy>2`2k&pjWmryMElA3*2MmvK?*_rlYl$83dl!)rb-StU1%$77dYr^W4= z9OzV;zB|$Giz4K`xVO3%nm%*Z&c-yMPwyyAIny`0%xs-AMRZ4Vra^PVjh+i5x_3x# zf_P_8B5h3>=d8H?DBO#&?=12aBjolgR;=d2;YNW<{CEPbS-+BmMY(l2p*jAI*({>SDhd#ePLIkJaKhf}j1l1&jpFDaYojo_tF zV7*@5BDR15vzg8j73%C`PGbir4Q4CDV-eAVERuS^Dh!&fJS?2DhShT%8KRkS%guSV zyG=40V(v9TUDHNxzc9omdBpQ3KCQ4N~jAsDV9L$q=vk;Vz!$GhV(12H7IAd*wiaV4trtb&7Ext-AI z9DP(ou*T_#)yn&#j6jjkC|fV-M5|(}?kMzbbo|Ui04hDYy{^VzsX2C_z7Rz{TdQRs z-VZ_vkI!4DBx=>VAaF$Z87-^!Q=L%g?`bSKVt7S(fOzJ%>bd|IC4JiX*tg{MsLBsGhgyF*3 zSB3W=E444jH3NY{W6}_ckSE5R}knoT>Csd)00rPX?9`_8uWF&e2n!_u#(=l;;6 z(f+5~FF@v(=47Lnhl82N{y8E0$`9j}LO%NXK5chDpXXK<)?G`q46h2i_FSWQ1ii!O z{p@3oKB#JJfCuz8QKwHHh0s?#RtUg{jVPf0VvUyl{!6cook`WJ)D2C( z?-5{cpYuQG7}CaOjr__DG5Z|;eB}gNGw9^VBXhl(07t`A%CuG3>52;-dA(v=1}jnC zMsb^w(g{qYLx~l* zyBGKjHhIyypH(XLf!s)?Uj)8J)5ZSv2JYD)Jt;z2I?zfVcMK9s_oXZa$f&}#bxq(W z{(`CgoxFj7vwmNGbW4NowuXLcH$)C&C#38y{j>O#h6+TN$D~&#ofwJd;$)L?i1y9H zE(1LKyCD|3=I;EVtaS^ubfW|x4f#8nWm^jV)o#kL_Z2ewW)C6)?a9yA&q+j@61Tol z2Z6Z)l2^1mM$9l9ivb?VbXsj9sS-*Ix;1-y4p(upQK4|Es-Ux;`}g~(4qyg3o-wYK z+rjT!P@;x~^MT5pnI+nUEkdBI4t9knjK68!Q;bQ^%1yDN;Wv=u zo3)F-j8{y}k)4gFdZyDyXWSWpPm3a>FjH6Ov9saSmLdyBU ztunM-e*HqQqLOy=e6%ty{;r z;4nfOT3B~82X9V9tuOec3okJ&G#V0*!Y!)S!2`P?Y9WpP3wOaW|3yAR6h`Dw_g+X# zNO+}0j|O50z$H*Zzqk~1uzdO;`enSD5sV@s z#=#m3Z{bZG4Y}2v|BFR217!>0+Qls;VmnG3x*sv!QT*vJZETIcns4f3MaKD^&uL_d z6^vt*Zd9pa0D1_G{dTW}2M#y*CLi~q9;5}ir;Xysdhp%#(aDLz^pQOXRv61~iQJ%D zA@jwWgyO^zojBZpS+(;^l1^}x=R>FQ-n+2qI}f z{6u>X?zYJO)USv+y$9^(9fn6@<$w0pYkckcXrTkRyl*|V#M>qCFMDfKpq&HI8Q{cZ z;sOHN0!_@Aob9a~8~`9DYiFQ+>8`4>vMdAR@Wil^yh@E~5zM7OnN3+S zs&aPL*HpC_UG*}p7?o@&>@U!<_4@VtV1M4y(AzDk)ZsVgzugKgI2ah?zq})DeGx7xG9(D(Jz(bHd6U^S()LRI+0`9}|Wl0oB~Tf-Ma zmBa&haci$xR;W7K@{w_!@7vISJ};X5osG6fZQ( zI2Dh9R#;Ug{fWzL7hU0n7}Yb3RZ|YZI|yEtHS_^9!yCc=BZ^D};4z=gTuoQo&jgLf zDC3|BtQTzcmdY$UpX+vZttQ;@`gm^O+WSk3B3j<>M?Q$S&e-X6dXT^U#XaUfx%)d- zm8_a;4&OMt^A@YZ|B|~-Ko=0e`TyXq5y0KV&cPP&xA2Yn+HKv-f)sM*i?EU2)3BOR z&B}++8g;XHY;0T4%9B|Avz~lsZ4dg4t%lWqih1%?X6W{d30&k)s3+Q>7d$C|&!~9afE=$A!hg%Hc&wu!^D6cI=hVrCL7_4WSQf96Rad{fII~>!pA#2;_?G%;WU_ z*d`90>5o5E&|*ePsC65!%AcT$XV&g-v*p&Qwp?6tPu#|_2_VEd99tjd$|=1aD_p_jdj39Pp2GG`F%hu{Q<$-S}YtodfJ*x)mWw z(L&B1F;^FTlGZ9bzam1Jcf7v0KNBM^p`$iN zCH+jDOESMtn_G_-w}{K!4sk)Jgd$)U8Qi%yH+ySq=b9fW+_s0t61yl($w_e$l47i( zF|+P6ZfR!{^X`x_Ddj;CrWc5-R3cRuMQ6r?{;JJzCK}YvJKv^W_gD(Wyb$`CclPlZ z3-7wj5Ojg2|s2maer5;&P-qk22+iMPbd_wN$d1Ox)uoBes_9Dl1g zu?jYSKXdxFW`B6n^_?KJ7RDjwLY%vMhkH-%W(T%8% zc%>r&7knZaw7g=#Ydq48HKYLz4YtoRk%uWXB~nQ7lU~v~3ZF@|36Y9YrbvaCwFZ-h zr5jItUq5+NqwPZkYFU(rqWWg1ib{5dr09@6l!I~A@jq|-=rm`CWynP)OAA`%F`9Aq zi+1TeRVdURo*XvM1}8>EE28wXo)v5vI~yWZoSFvA+gT5XR=Rw$8cw(kqMWyb4KBt0HenVlm7pc)bdpvgGDVHH*TE z$aJN(Pj zH!}g5e0=lvnC+}AoJ>GgKznCqHWoH6BNk30HeMr^-(PG-CT3 z9%N+o`@5C76~M{ptv~pOU-%odc4a}OJ{F|4D|$APdg|`3m=B*2Ux-JTMY z`t+(9qL!z}YN}>|gJQa`;f6;t%&b60CiZ4V4kjLUzX3A0vIQ8uf%}i_Kc=bhC5;8G{feGPJwRGrwo+zJwzNSN zMew9rM+b$d%fPhtWgkZ4{)|wxC$>*`S?&m9ll$hXjoWnn(`-UC8IW`xZp((LIPiq} za6eji(f4P5PBguh5%EIa{$N``sy%TKtX&g`dq}FXp3VL-csJf(5V|aH$nQ#W0Nrp~ zU)jcVkw519z;ne#CCxz2v*Nh`Q``41M(v6?rFVtf$2@EP%TtW)x<6qY_Bd!`{J;Av zPc)H>CU6ZKCdqh>U%VHH^qa{IgkG5%Yk%(2Y0dGhU51-bT(J0YaSH$4ksLy0k zEhM0QOWoqAKw}D1Mo7Lrd2i*U9-5dO#M?uF{0$3RZav1r(maL7klaGohW}}~yThO; z4w=JUx9m}r2Pw0%RDPylfJW5;{I#Y_^qqx0JLi(>*~xHrwqcXz5kZqAr#&P?BD|~w zZsUa7RcZ?zMfmrdu>P~F5O-YbY@puZ4UcXB~{u}E}|0|5=_*)XP1Dd(KjVS&}dn&}?7|IB5dcA?+X>w@i`|gdmok9IfgCG|cLs-)G40odaB|6TH;4==Cs4 z(0BB<&s)h*KBQ2l>XnjZwLy9|*)}7$8%rF}EF~EFxA_qPKQK>qx+?M_)WIt!2JTAZ zaY!BbFv*M7LN*d4*5yg(tjxKKekzAwB(e{31+F|_P9^u1PU~LfM3^Bi+h}p8A}$YA z^GUn{U;RiQuEyM^>zw1vdz-aVYngQyIY+lHqb%7j5dVbfccu2b(|G6i22nN=7#QHc z0u$#SiRmx(+!W~a*Gx30Dfc@QbzITw7o&?W6L~5;#5ADNhGudJa?*2b!e1aD{fexW zDSbZUtfZhYfmX@4_YwBnOT+up2|RWqj&RxXK>vY>1k)$kPjFcw?D^`-b|oN3vukC| zp6~B?kB3V}qVKB~2Cms$(0f$2@W5nf3NyMg`_UwRmwl9953_mer`Bf?GEOj@4HCV) z-~p*ERSNVbz-(;ahmyM!cy5IE`E=Oyr9TcU83TsZZJj7f50;AvtSJMua#2_^D*Un0 z@^SCF@=YgMLxRMAPCpIrz-dQgW4{Mk8NsX(#KPUsV^=mK&3prG*Ax7DN<)=}sW|ni z)r^zn7|~1k&S@Gzbxv!z=YdamphTcAw;KIR8B0*ju}O?2irj9dj_!NCBA$Y4RAp=+ zAG|j*-UH-uYKzu4LUr&1SNj~cMz22OWYNv9O|gDrDt4*IF`Z5Z`81BuTtB;BJMK6v z!;ox?1HU8A25t)}S3nAh!6XTR-13Mu%#U)-p)+&^34Me-Ow|D_<52|ECD>QQ)`w;6 z`s6Skx-pl7H0xiZh^h__w3rKA*s6&3+6YmG%fnj9atK+?Ck}S9zbCNuRcsc$_dy|j z1V2?wp4ylDRbmyv7U`P9e^7B)e5}YTP((8GtJlkV$%E$f$*J`+;49o;D-VR=JsC+ z0j~cg1e{Gx?2Z0jqu&~*H>2mR*){d}OL?Btk^{~NqjfxL;ld9`tE1>+WUE3;3p!W> zp~|URO)VnYTaN=NM4!(hjf&H_%1`{VKZsWgZZuxqnY%upu9hia!tX$9%V#vkdhNQw ztUWf?N?<~VUI0{rRO!x}p5TZyHy!RJcCp)LN7kMV2IC>0Y}o>2UMP zjeKEHAPf+*e=$B7Ym_-)#6^tvH~lIKinuKu=*&%K!q5!fam2=~%z}v<-@Q;`lz47o zEn!OOKPYX|G5%l_*czhYZw1jo2GjqQ7bP5v&u!RtUQAOf^au9v8F^7HKlilH_X`^% z##ufWVLgMfM{eS8(zI8D>o7mfDwOqyo>V=)PZfmyuqj8Rl3*imLT@4*okZ*bSq2upt>#GxM*$&x}cV}x!F-SKP(uTy^5X#PE)X1$(i7U z*50X;<8<<{!R^!gC@Xh3(T5AdjllM<#7ZhVTHY1XMOuJ&=%ye~KAcZT-H7n~ zfVqV{e--R#MYj$dOL6;rNHqKCA>Bx**0UgX%>E#uw`YAwn*G5~9z!j4b6)zRC8|(f zq7c*YV}9JM+rffi`}npY-u^Dj*v9^n|Fm|*`VTs>c?aTxdtWh*&M&?jaP2Bm9S(e3 zh^1qI8!P$@w~6cVk33DEH1WZYeAF11o9uC>fPdDGg*SV`JD1&!?JaQnp}@eD{$=32 zc@rRKW)UY-ODhn-6y)LrU{?FvihTkdJTSmC3DF9bkklG)$s)WJ$g;Pxy z%&b(t(I@Iv*%tDlsi#x~^TbjO9|Ul|`os%Rj}L-k#V-UuTpo-D7R$$C(pcNGI*@)j4nS{u&kNje5SBxgBZq`kTJqD3cJ_0`VWu zeZIX>(_~2|gEgs>ib%ov^J@c7lwtB=_7{G91l~P;tCdJx>mv;am!(@gZ|}N`RBnUAC{;;f&WR*-!eFW35(+Vjh;TRU|?$h2|bm6ue`8{ z0$tu*2`7*LjiTl1-Kr~Zl4_4WG3EQBIYi2hwzQupo|CDxS2#Pq#5x+5gcIcwhuYon^w|1nr2B9^uXT{#cIX!cL?yVP9m4xY?GP$1#n#tRyEbGw#gp3 zyl%B*-f9*}RuhJr@7boy?o>(5)tMSD1o<^~?Atr<<0Z{Cx?60u*HrQQ#WY|c_aA~m z)MC_4(H@z#>5mcwYsr*JEkYGwmGI26o-AP%mjVh$+Nsg$+j6u6B8w&Ckp&!4jEV*+ zo__OR!qf#)ZkG4cR$cad`gMZ)i$rOm;m76kQxN@|EfR&;BR+-4STSJe(+(hRzp8B2 zFMn0-kEJ?bRXA&-K0xKvo((J-Si)*k%hDUwD%%NH?E5vSPsgUPI&##lF9xuDhFcT% zFPbQdW5Mltr|efyE~w(tFe1C_fekzFB+Z{bBR>uf zI;1#zQXax*%AI&AD_O!BL?zRL9IU=pRDFndUafp@4Un1lII*N`$E)WIiB>Oclqimx z`_lelgtt$MWcVqz4FiQrhMr(P4B!VO?5XNJjcUae%Pq>ET$wB(wfi%mEEhn?{;39VILgI{;>+S8x=0LCG$>w$s zg@Ua^0uuN_G!eD*hC+q8T5igPGf?5rn5a*>U1J&AZZD932H0;?VF(y?2>;sTK~8B8dF!WSrJBSKhm-d45N^?l?BRVpvQ*XsYcFZ=2qEiSqz zA`tmF9-5V-Q8b_ot$7+>jox#YS2a0cdReS~Aq&ccR|4()O4sIpu}&?B;^tL zlz9((HJ_m_8xf-7yk6^}5JSu~luIdaN*-@|jwq6piCiD|7&K*?p$iYCS+ASRmilf3 zanA3o=}?cW2IA=HGyGm(i(FXPmI~JBI_po5Vts5#XV(b=WsR{4VDwTim8&|mIv4V8 zR5cq)P?=7_mOb}G;W`eT9UUTZX%La9&D!Wz*rmU6V(qife40JD5Uij8E7c%~4?z1) zNzB~#`XNMjO>&}G6xSsYqfn~MvxJrUGF)-R7Z|@f5>CN?Tf|8<=oFP608vhMlK425C`Ch ze(6vY)2UEW#D%fM*YzP-9;MdT{tmE0D`=JkIE?dcAp-$duiDlAn;@K@KeS5tY*Jli zIMKql(Z5m{iU&~a6^v+hF8ITk)I2Gnc_z5|w^>D!eIL9kVGYsgeByr{K=X?FCX-~TB+Z<-`*EU`y z>^w2>O;g}`RCscs>gLqTW8`z*vLJ7SlAaW;PI1?Tg<`Q10#%e;Ac z8vilvIYj`{`FQ*f)5)Ya5UHD_hyH%A&x^9$>!ay2TTkr-m zf+5tZar3#u|fchQD>Sf7u)N zA4%D+A{=c+yZfP#$ni3@@p)5Albx0)MJt>?2g}j2AQ4AbZloT3gp1UwqFXhea4e@! zumlTBvnF_RR@2?Q-c^2D$*fqy5E2Uab&QqZ2egc51=`IH(o!=fx-EKb&9TuwG)9R~ zIeFx{WhWz*B7E&P?!lP@P2tyHO`7iCb=WA@6@lGT=FIR+fd*gvqQCh&s$oj3`Oeq} zF?|O1N}^{a0TP4LYitQh(&r^YkbeBYen2e#5?OHAL-tv+M?!#FuEcK(+!GW z%10?f&dM~SE^Wp)NkgplxU^XA6J<{i6>ReN(CoHUO-5MqHT>8cNV(kmsV_w`4_zDP!97l2kD2(GXmS!2f_Ra}C=Ve^d8}wgji~pwreJH7#iRGo|85 z!TE{5JD)c9G~Xj_a{lHd#|-%e{s8}w*-S}Jiu8n^nIeNpkG{V*yXj(y+#OO@M|;p< zAwTP~Q(rp88Ju;PuM8piNkay>w>4IC$AKX%C&P#S5MDbp-EP6|m1wO2vT=7i%NOd_ zT||>}dGnDR>2+0^$>el^T0NsxQ|`^){eZkl4Wdc9(m1rPvZUICthtc0_5JU zn7)otqKp>4xTE*q^MBol&#McuYv~b$@I>9AP6_>4Pk!qOX%2tc%D2Gkg8>6G_%{Pf z^34PPpHhNZ72piCbp`w(F8;Q@tYBqkW(#mLaRU6IE~3=`8DNmA1jTcU6cpl8?+ynB zdbz}xFhsr{>4!;uw7ALlQ+|CMmr3QyC)~-gK7Qi@7OF>c8eEhGXQ{H6kjIkivT3r=6WW0?yAodKW<(H2vP~qR%pj`Z)Tq zQ3ducT6;i9J$3h7`u>NF1C>!%^!}(oB|<(lSGuM&y0f8)=BuA1C3LtBN@dRx!NPeX z+4I;>W_otdYO)*7G2zj&7w&iCTI|&N<3nhBi%cRm?L>Y1P@u!ba8h@8T)})!ICN6L zm8_h)WUW^hJt=XYpuSG6GOhL?s<@6MwY)Zcrj35!%@=4V-P)B!{yEYIO~r1e_~Sc8 zMe8NEyi_wh4%rf&iXB~;*hz5{GPGcBvaiTm0aVpdO6e4gk+O}LgmnwY@%169qH-AE z0#BP(z2JzQKJD;%Q}o{*j=?_hSC!`{PH_Hs$4|(P{KeMpFxVZ8c<>9%@g2{l*rFqr z0j3Pe-d)8@9o4m8V#uQ9p2>TPUPmg9=RNwbf%S529$KvHCm~lAI0K_={x&ZL)vu@ZWw;f|eq>zdB1oYFMFu#J_ zd9=Nh_fpADs?(C=gMhB3p_DEU>!Ug4u4C^}zx3Eu=vECxTjDW1>Rq=q%VPmhpmPXT zbT{W-Y!&Rb2jdePVux1v^Naa28X$7!i$2IWn~6!Nsa)~iw=HP}0l9aXXV2$bydV+U&<5@R4S7+n0}v7}F>vozwi=HG z#`IkSu3DLvr7CtAcf(bOk!LsA$UBqgmKS5$U$WspMn^k{kmWF>MC5EeY4BKkr~skq z>jS~MqB@=pI#5eQQiz*wqOR|le1GL-N5-UOGSsEmkxj&m)Vorp6j)xzjKVkn`lw=2 zFcHa@8OQM~b)amXUZQoy&*Sbiv$7ZDsGlFbJvL)(CbSE@!GvhBzUe7AcvrOJ3YWnw zxDk~Md1EXJHbaGJ`I+#-J{AspTSybP?S1g^rYdfk#Xy)D_)0FZCAB#Odqr2)yAtOG zQ3vE#y)h3<<=qIK`|Ro~nT*-LEO7kBDSO5V!TSxPQAjW_<^LQf<-ZT~B;V$F%0OGI zKfzi1s$c`b`gima7VG2 z#>M()BzdetVm_BOAnYiLbiLUQ+ zUkhp4IN2Czi*=Fh3|X`0g-1L*tV-5YVFoejuj5AC_l|Sg%~`5lA`DPGo%8krv0Nm- zBW7fU1+Z9&^O4hnGLq6gw+@kExY%%^UXckC23ZJ1DjV%NeWRybsuX5Y*uTe)rn{qm zI#6nRMcvM)f0b_X61l_m`HR``TMH4Td_Vd1s#JYHAcXarmsWZEcDSUjO!V7iQ)Fj#srV1k(qm>t2TyqvwFTD;s%;TDZp= zI`si=ZlG@64RK;nkIbRo6-Il5eCXHn!;(&k=GQG$Vx!VNCJrhQ(~MJ!LDG?^sc{i~ zQCK~N`POf7RdT*Gs4;iwvDDYh8Jsl-88WIePh}1u<*8e!l4?SlMV*%-Yj5=&K)RBT z`VhlTf4=u^1JRS@0tYo@`$z3@fSu`KI(@yjySg>mLUiCEy+FrP(PCOw} zuWFpXtPA~4lM^VeEaq?M{CI2r{#`|-VQ&RumT|TE z{+27-&nky=UPN_)a$`iIfotZ6EhKGter^uVHx7|`H zO_-Yo7(gc>x05KhfpO@A$$=3TAW|Ce^{3;gewVA?Zf#z)%uurl z>k1k8W@_M2Y|oi5w&$lxxv6=tpK+icZgA#lw#GG$J^fV^rDOG=c*MHv7@%34u07o` zcSHVbT8hA5ydr;_m%Q=waq2`PE56v5q3GmIeq)e)^Ed1UrUVC7`rV>*8QlcvQ*41Sbn6^vIkShG<8OiM({S3!-d}}de`1EtFos6+x zQL{_TKHP}R+Xx^OEr~reV`LP!5iY(|{Tll82!Fzbo(8#$t(~-pp4;2DEBrBvIBq7d zu!&4&a8-m1F&SIp;EpYHsMW)=p=IpRb+w-FE zS$hLE_H9Do@o#3ue*@V64fj7`R|CCC0_Xn;e!ZHC&2Kq&T0ZG|LIV%* z(d{}g+$B}NM~_&FogBXE+5fa5qd0AgtY=7tG%d5?JO{|u|QLQyQt)guzVPJ7V2 zq1%<_?VUlPTj!@KZA>rx?6}g-| z3_+m@)>}Dt{LGp7xD`pnN!1Lu(cyFNZ_APDQxTE!wdoo0C4WkoSsWq0MD|Q$)ClTa zvYXV|-io6&oYq}agnD@HzI#9GNXt?9%{_nK#vxk}NMo~3Z;+D7Wt2AVtb^FD;@L|n zqd2H_+^VASjW{6amn6#a67tMs?Z)BPU5rEvjGLcFK~d&Q#~;P{b*19BuA5RrkwF~c z5{t7WnWpL!tkY4J11J{`mXl2D!vpdf&P$aT18 zw3Hza$ngO-W5RG!W!Z6>i_13YY6)4fx6@_wyuRmvQ2~y}Xc8%(0w%^&>Z2=oK_l+k zSrmOy|3L?DoY>O%Y({64?0{E~DP!doTagI zThFEPf5W*y1moLa>a7p{{nG0{2ULIi>5nAuqiXQRB}|`xaLE>aji{}@mnRZ`nd1Af zSW$#Zeww6uVh{!QnB?nYMLJc6*uGEI*NH*Sz5PL@T2_@le;I31*L8$l`cC#uCaLE$ zm2Z~F#ouOVJApl!NQ# zXBAeJYvNwOt656|HvRcTv`ral8pLdMsOiX`;xDoBecRC;WYT)DfgbsHm%C&B5HDk&#d`stxDbNxcIx# z4u}r5is?N*O+FX^vw)QDXD?z&rcJLN!HYuJ<;C%Y!(r~&J7TiY{smObin z_K7$S=r|P^Go*pk192yQ!s=kv+)@ttR#{zb9r0Zl>3G0QrYvm|Kg%zbVRy={AK@bA z&9Rl{zIg%Evvlp|H^D<{OvMJhoPcDl_!Wr@2rJ&a#Br#yEwM4|J(U}hhs`>%-v0+bRbpe)QX<#tucvBy{&t3x*YO#1biGURPN z5I)5RWn;zWZ_9`n$~Emp88|qDz)O*ITyg@|e!b1}br;rBJIewn_r!bFGUXw51PTcZ zvhnvh8EC{zY^;@`iO@e~AFu4g`aYJsZtY;S2Y=>Wi~I2=Bz5zj^4yf|PU~X1t7*xi zta7e8H7p3dh2Vz|F8n2?yu;#Ji)AVM^C^LJf{`=TYc7f0$)A>>1a7E*RD1y}%jT#s zBXccWdK8F6IZRO9EZcb@D%Y6>H1o?B*7mxWLtSHF#AbCa^VfAk&hc;;4i=t8pZ{9l zfYF(xO;y;9wOu}}E{)rOf$J}FP=l`#0W{CM51&nO;r+rN__oNSr90Ma3QV9z^6ITr z`GodmU@9BO;C5T(_R8T7kf+>u>F5QV6{HpzgZkDKh-Af(Cx}QM?Fd#i!CNb0<;4ci zs!O8W23T+4VYZyhWXBsVO6~U{nxLogNttle&*N`Zm&B&5vM@2Fk``NJqIY)O}tP8G~2NqePD?&G&}Fg-ga- zk={*$CHe@Z;8`wXy%IK0#X-h?ULUm}o{J7+<`a)A8jANuA=jl#jt>-JS>Ug~Z2bLJ zs;=&_lR|G0E4@K1^B+R|hfGxf+5`US6eYy|UcbZ)-ngQ_RJKG^9eto%laZ0q@*&KpX@|F@FpFI~(Z zD2bZb{(h@M%*598ZFTl9l_}xP+k3N*`p+I|ooLLUgAu01$`due5(Sr2Yb7QVw&pBR z$W!Uk`rev9tI^4JH``tMo{e<~2)2$;%D}542F+s7$w1o?-ib8MDWQ{FpDRimpKT8B zvFFiDm;uU(bb`EdBU#XM+1!np$A6mYAp$BaFOeL|Dej&$_IHgb>X39}`d>0LI}~nj zFd}o_M`U@#@uGKB8%bb{ZKtl+B6du%-jT87TTs*7D{2$qB*;Bnc0;azCk#MMUG&R`;Yzx&DxJd{`9b~7nF*2%xA|uvX%@h= z!?N~1Jz_Z|S%=<~bsco}qs~LkH7_oq3w1N1ba~zIP)7MY3RgszAt&w9^x#}Mhrztdm(4p&Mk>sG| zD{uS>0FlQdHB@Csj@(*KGUEu;TCSxo{=+fLzIV&n+eqX3C2wts##*_d$7DND zjcsw`$~GdbF8Q7FfIKC>k~8-f``pYm&DzN2^)<{ZR4$QM2rfu|F2@ksi)t)z;h zz{R>IRAwP&*r!jG|?VQQZn zqx)*e-DrR|`AZf>l2S~0S@I-dR}7!H$Je8;Xw7DH5~py!>=P0U_xs;x`BTMVQt2RU zd_sdw!fn!?L-sn-=!QjMEF0~2cn@Va#|b-pVH!PFOK|_X$@4WRzBhGj z_W#Zcae%pri!JC+ru-`*-1R1eVfiduUE`B$1S6r-ZvaG+Uzux@$>G;Lba0=~_(x?@ zr_e6hOk;LhA5R}ohyvX(uVXUmPcS`HB)w&c+D^%RexWj}F)_$14 zRf8oUEbf@7W<=hE6{>s;o-6cqbI?Uj@m=XS&9(>JwnK1ElWsuGvFIFIvup*Nw+5;Y zowb0m=?Wj-+Giup1#nxx<19C8W$M!)|EN1D$Ji)|#OVIUGt+lUGY5~!S|GzT;^$K< z)*~F2E#)0j*;v4ROAi?46*4cVr+e6-Fb*X&8tJOvv-U_;Zq43fW}yww7u`}}x^(zj z_uB%u)d*0ag@Qk=!yJ}&P~D))bnv)hf%I}nAo=Z z31SubdJHwGTRRaWx|wYH*VrS^= zqOS$qu#bc4M94ouV3T?vVCFA;2=yr<-JCI`Nj$}YAR+<$f4qHTd|z4Dc9X_-(%5#= z*tV_4w%HhsZL?8h8;xzFG1{ zblQF|6)ZrjEmCmDP}}K}?d{2|w$!+g8mXiyiW@7sXbY!Hzgc=AlRB4QCBg||$yvTO zd!-nt(kA!1$TM#JZ4R3605C1_7%=mY2#gX^YThbBb$SrT`2>apu=}PLEN$*Y^YW_u zLc+Hs%L$JOH6stNX`=CK?Ru>??l9)UM($YlR4D;nx*f8^9|}XB+jXrm(6omESS$nd zS?V8QA!l#n45$XT2gJ(1l*0a$X;3t>cQ!LH`t|KkeUOUM7At^C!+X^c0$sY}rBSD8 zOA5%G9GZCQ%PATWs;K$gYGRSgEd8G{-5XO1X6l*ROSw`BwZV;NH?iJl9B2X$o|26QI0>tH}BvfF_26t++DHqa;Z{1>bW+;Rn zgv@#o{&HLl>?_txyWJR4lFtm~yS=k>M@cZ#jdEA`>H0!BUF1|henpQ>eQIcY~woRZn%!I?hNr zp&H(i(-_hSokx%@w@6~N-WRnHWF&t9I7xhZitO0Chw?fHlq8!BVs5yD`?I!Tc)#KMTxRC$)09CaJ8rMhv+~ljEu?7whwg)C1@0p7g6#w-ZzIA#3CEum_*YtdCyl+) zpD?B%sm&UY^7L`x4h({Wn}E^IULe+ zcD;1FUOjm0SX8n8QJh#DD47tFs(_^HE~yAq^{S9eKv35!jiK+UE^YO@F zH}FE9B+e;pK`VtH=o)LZ5nSWRnA=cZUq&fyqt>o-VQKfm>a6!RA0N-lm+z#2Xg-ac z<^U!|fwCN?BV>QLT!XQQWj)SZ2C;Yq6?X)?)29rHTqcLn|3YpFe(0#&mtCf6tvaIM zbi|&&bY(?{>8}E3_U0(6(!d+#s{~{IGK$Q&Em%isGbZ9!^gXFu#dOtGoC0Mt;KB$2 z5_1#HTk8%nI1!&h<3L5q&(tv63O9=5v_zYkWZrQz4?0b;#Zc%{&qzefoA5QK|oWRsHB|uxgg#bu&8)^e&A~_7KJsx>rUpaEkv~hU_s;j}(9c@#C-OLjoCL~*tfrg7)fyg3|)>Owx zg3@(mt&7GLn|xGtQe&9Bo~^ItwFB7Jzppj@ zy_)>VDbb(kOM=3vg+Dz?$6m#Nu3TV!rNt^oe#@oGDWzEWI155tH2SdNrT3ee`sMUT zce0DM6RPpn_OuLw{1>z-fiE&pSByR|_}I|t35DpRX6s>_T1qunxzj;a?vuT~YJ=Bi z$eDUAp#qsXQ=%)~?V>Tv>ynWSO|JpaVHPgdmSdQ=m>u-%}m z7V?hSxJ!xTW~V~_EB68M7RsSk^j%}D7ovNkyBP%T4C!G!Izig)W#D7{RaycJDO0iH z0rU?>6N#Xzny48b;P&4$H@?MFWYf2}z1#U5b&o_Ttn(O_R$B=Qaba0wtE`}d_1zX$kN=V@>B%a->~;4O&f zw&|uv2y%IXg2(Yw3i>diK!AXx0ItL#QWEY!oQS=A4o+EebMhKN0b3vqKFZ~UyD5GA zu_nqyIAx>tW)zhrthGuVNL7WwWjiY zJd#|iO!?eLJtm%Zz!rA}n{!u%!V3{x`oQh~px4iPpbTB}<9Yz>no$3wN#lQl{f9lz ze}+!wiQ_ii_$d7+k5p{O*@Mmt%B<)`=*aNKZ7k{tItgXKzQHN#59`4lpCtf^ddAk)iR7hAsWvHJgViRw*hf z&VjoHlc84qDq1G-&#wFW(+(A%hcCzC~H-(_3_9gYHWi z`B`basADa_C_|Na>!ZBboG|cFY;rM3(yPc5NU@+j-MV=$S)QVcxes4@`pOw!q@Q13 zaf4?B*pe|Qz8U6eSHocBtF=l1j;ew^%SkXw)b?W;+KVO!MRcW+ljZTTIBEwf0*X6C84IIR=5wVJuO`_xe4=lum5Ev_P`%R-!0Roz6{8KJyohI6&JJ1c ziJf9|)^YT838?)J96b!nLDs|IrdF?gB=xeul#YtJw8YjR=Rc)vbC3P#c+iPAK>93mhteRZ}miWcrEqdrbzyPQE|tun2_ zq73_m4}4A97el+)d~$eQ9w;uC?W8WEe)5Mxs%}7N&1PSTqY8+Ui~*&g68|W)7ISp8 zrTbp?`KMK(KLyrG!_Q$->k-uzK0XRQt4yj+dLRD=izze+C{lJ(BfY7)6>@=i0z9Wk zwD-y3t3lgkHSjQIm!KA=mOIysigWTIKo?I8yG_9F zYnJSZVIswf0#^pOYKAAH1?|^M{<3g+WCOeBN~$=UCrX#3eqbJ6$dNYYJJW4$jyx9A zC@>yZ#dv4pLvU5bEs*kPWFsw8({@VKIR%HP1i$t4$#@;>+Iz`f?r(7W=1sWHM}d=^ z%`VaiGwtC`ulc6~iAOIJs5B7X0ozZrzen9Kc*QNsCyTo)0i^~)0|k~m3WDg06<}h- z_sVc5h!Hr9i%H}2Ms_>GvU@^1;-UoTS)qD6s%GlTDk>dRQs0vNqNKV? zmQ7+R{HB}yAm`W>;>^wuDzs%1?oOtTDkB|kJ!vr8$4^3h$=IPzBRY-Wmh;BqxXO&~ilQ(}<@!bwN<=fbO~D&UlS z1_im+2R%ML76>0@Ttu!ho@)&JqEy+hqjZ)&5j=24lG!=iD9DCEH@U7XN-geDnRQUA zv;xk`@M;ZnnB(9wlss7U^Szfl6e|`Hlc{GGRjmbvOx85( zRY*zQTOUuU1H(2w?$~){H+yWwIHrqUA~${*6#Y19q&+Bk`Gb{v4)SenUQGJ|tQ;pG z11R&)>HB;PZEs^~`O^mR=UPp{pN4*XfALJ=Km}=8KpMC0T6M&?m(~{_SDybR_*e3I zX|d0d3N%($MO1yK>ooTyA~QPm_Z%mq9@9D_D@zP2*)!cl@Y@ObsBN4uNn6M13`8s# z>Cq7LV>_%uv{{;hYvvI=`F$S+YS}p? zcM9T`XB~~OMBC8(gjpUa0kHL==7;5Tc6m}9C2=dD7GD&(EP!z<8vEx%2%LVu_sx61saDEPOL9Ssvw8m-Lb{u52mE+hT&nFoLGZ zh`&i2GZurz1d2d*k-B-7j-;ndXJf7t(hmB)2C+IF3z&w`55{4 zp$tS5Cj&SD?Q+2L_xavupZ1fnQg}Wtd+w3_HE%Cu<6`|h2JpvXz@NW)MjcRVCh?LV zFwE-$g&m>>`s+qr9gQEgJ95P;;dI6foFUVeRAF6WdrOUF0WNb9!Z*4%1CNZyehO%u zjEJSglTPQP{XS-IRmbD?rwyPA1zjO>ypSM2Q@u5mie2if+Juv&BnvRfT}gVUyL>Y; z7jnUc6cP0pNV#bRiHM>nak>vLwYGrna2!)$7m$R%QG~w?(xL05AV;|k+XPpi($WP) zIy@$N9jMG57;z0k7DCR>C^o|8f03m&5@5zB6~60gq|$ti_SLg$D*fF^keux0DdthnmN^Z5Jbascn`&aSytjgba@|r~6~Vm+9Fx=sD`!KY7-L_c8=*a( zk#ZYMN-uYp86pq70KKocTmz*^D4Lj!{A5tZL=(a{_(iG*W3ExutFHdOK$LLmJYx#Z z9K>b&Pw*&4(rE8}xRAgJIHdi;=!s;X@|(!J$e^4eKfGaYXquoR!f^E4D>7+l>N)HN z8mHodv;~J-moxN=ZBUj$J%qt|i**gg7B=Qk2O!+Tn`l1C&hBY`OHaHLNvx~bO47K%#)$i}7Gq7>84qWTDq=vATF zcTeQtYB+TQ!K4~KX#x#U2*uJbyl>QO<c8O51^Z4)2(q7AQxHq(rD0h6@yw9* zpYY=DS$Pa#c5T4Nl~rAjXG=$_6p7}be_LG)m5ABx3$wpE#)a*;Ru}d)pomi8oHM5) zYz>ynzcD?wV)yoq>T#N4+zoG_C;i;pP&P9+9C5ZZ7U@<+fNexSsbQN2MQ3a^TusQ? zz^6@@A&)iFTV%x^zuZFL-08oLkm~0lV>ak16Erq`yAdUBdl-6lR+&|Mrmr7bEhXta z^kXvjnY~BNZ(3*o?8ODJ_rGux|6w?U0h6G9F&aN|SMk?K#}xt}QqH&Wv-k%C6equ3 zgj!RFFc{y$IYh)zrNIJZ)`1Qaip5CFem+MeXA@(*ngOaUMFa4 zMu~p;e7Bb$c7PYI>uKH+)_=si+3U)o`jEe?@gk@7=z?k5wm7UKmqp}}9<4rE-}%0@ zv5ffJ?hzRC7~A<7xEU*e$$0^ipRrUeOIBXY6&{)qzi6oTJt{mKK!>_Jty5?xpp6YU zYyLzY@nx@-v3_wxf`}F}AESJbodv`2rS54!HdQ}Z{yw|@W!>AHd|k;3;R)jvMMafw z!NjABes?D0Bf##ZuQcEduFh#k-9c&P8tXhC`T92 z&8>Eq=g1Sfr%v5km;JHXU&CBkY^ImtHqH))#cXD_4q1(hZ9}=A6K@ zNGr1`@A;Z6D=wca~_njKM4p&GE&;f(4ssMKGX+auRch9nfu=w+pEW>iBJo zrqMKni&jvzB%G8g!zN2^6nQwF9=>wf`n1y0*qU6f^?`L?C}!s5+{0$#Xz?_;)TgHF z(X1AQp{g=UX^55k zg4u{2I&5G;Gv#GPi+~3_)p*hzGg)QPS9i?@E4;R0mnzM=Xikn`_B0vr+iws-U2iA5 zR=01!rZQh&x@CfizR6Yny+<=W#kL9ucr)IA)W`5Ydo%?jV?e3ypHMSaRu)j!{_*4y zgJeI%@Zs7jWI{ZhAmI^#0}s_S%~0u41>a;fshDeO7Z*6} z4iI?K&mP~kayXzhrx3G$E80M^&a!BDc7+O>O}Un^1C4%)?w_5ih|Bd(2bB-4Ggb!e4mv=E~?+v6N>K3hggmuPLEd6 zF+`6EAx?;B)G)cS-JWImAw-yy$xu!C)5}0I)+di{j}`i zUFMA01#q0;RA$U4h^e{Q-iC&oXGJCC3pVU(R-kI|>zm_G7B8(p`!U8PY2D$~^3P4= zoYdij-D}43zSyj<&g*la4!%u!XgB_0#>eyiJkh_eoC{!*$^jd%zptkJPvpPv%%Aht z21X7J&&BgUSfz~kpRAJb^&J!~uo&1(V3P77hDb!V2s+JSHr6nLsW}qzuHX*QJI(EN zNr`HrNqeMZDt+c_dt=vLx@mJwVR^^^J$ZAfUGKG8-J`~X=lzvsgO)Kx>rpBG7f zhfdHy*`gPp?LifCEwYeWu5?L9oCjm21?{8~ca#KdkiaLRu9^$qD&)^I#5l3`k}B}J zhqTn7v%=MX7@QoJp#~vu5LV;kP=W+%yj`fi_v=qxCv0!W`m*}ZI6fcM756JnR3|_W zCui+|?^x@Aekk=;lob}K=W_-{HLHo4%aI z*JaY(-S9ychK!2uEFdBX_oELq4|yI}*-3Tqg7{t^{636}4dWQI_vI(d$`87aq{$-9 zSrh)R9)f{#RU-utMKy9En;A7rcvrCn-+8|RP6p))OcbvO#ynZi`~pKF-JdtcP>TD+ z|3tGC#&|@*(OWU;82X?FoI_=#!ir1ISvfy-)9L7GURidFLvPw;4WscE{1R?4W$+L( zqt!v&bm@H673vlx>MjU&a+6qxotG&DZ0G7T^lVXjmfb=21J0FK9KrwErj-Xa%yVpGuOLeOX>-v$(d_!hZPg)7G!M>iBp#yaz@{#dfdICerdYp9G zalRD)tM%Aq$N*Kjvnyvl;Bu=DWO0nKRYtm)eLMapZMyKm5s~;+3S9VPj8WNs+}r*t|iaKZ5!s+ zkL*Q|jz((dt*2R^bV=>Xh@4ELPF;rlo<6>xpfqd%$>i;=$L#>NfIhzyo+7+v^7zQ7Dq3kAFGj{ zxf?7|f6NQuE3bVs)#7987q2IfDaAy0=)i0+I!|Ykd;Kl5laW`qxJQFwUXW}x& zx;FLxMqKbeBd*`?h`YG~USy#U1Jy~LA9gX zpq%O#!U73;3PDVFLQ=NNjW85EC^ZO+AV!jC&_^#QVRq~W4s)w|Q{LQv^k!O+;T4N` zA8ljD5$~7?2X1Edg*^%DViOWlI+OHN+Z|Vw12*n8!Q}9y3tJFUPq?(0<2$IqqI9>p z!t0nRTIG`;TlSxM%RHI(ejbp}5(NZ@e?LC*FL^7iXYKS`rSNy=$~qg_+XHGOez3hp z6J0WZd>7b;N0z>I;J`;)O`)FAFoG^3Nii#MO9kVjkr^?V6YDT6uA3~@A`Ay!p0FrlIq<&GbPlkR+T@l|xP5Dx;5JyilPM9SXuwkz6XSA=^kZn24@+ zN?Pu-NYR(F<-9TMVA#+vI+osbf<1O_;^C#-vdF~^Ylh;&1-AD2`bY|-NO9VZeDNgd zs0@^cM&52lHk*$?`=aYXMB|L{rq;xfF*__6GDwv zOV~EgE9SN~XV69HaVf~`L(EZpl`Sb=pAgL{YkE_Pp0`1dJl)+;R;lbmPG9!B1L1BY8!69LNEb%BZ9Pc_P<4Gb;~ z9~u)1)peIXs5{%asC+DZT3toMGTq!r*L4LXi9A-MN~BRiKzIGj!ePuZr(+MHMsGM| z{P?Poq(9mRm?;;)3n}0E;i18%I7$Rm>oSUh*Y3VZDUP*EY2U>v=*^f~@GGckD4IJe zrI9Q=G6`#zxdM(7ScsJrNnWEmlIu<2l4?_Jwj^yaqXI|TNMr#U1Hr=BXn4}i7KW_{ zYAmrNb%mp%a^M9@E{K?V0MBy;Nzufv&yFceI)_;JDQstN{=T;YX!E^8f{Xhu zvq(AQMdA~5vQ%f*;_Dt7Z;`uUU7sn}Z))K_SpFz=P33%O3{v>^1ikbDKJr=L2r^ld zWLzp_tht9jdNX|Xd-Hua`>a~B`pi2x01h|+9PYoz0l?Mf@Qms!dv7-|gKV_C zFTfgO=sAz~YO9Lm-2#G?ep!~1!J`1)JE4Ni_pxtsY{;SG5V$y#G>+tpGlSv*cUAE6 zO?Q4q9Qovg#y-F#ym5RkLHLSo$cIN#a0B=?=gTI24UXkbj@v@17gBe)3)aQ+c-@R3 z;GDWsy}0qn5xO?k_UYK-deN^~Gq&loXC`%>-N}^`xF|7rJIg+`#u;fSzkDxY`>i|` z{%y(5X&&u_w_IphHD8&67Aw3Ai^ofpf2)2{cO6+Yh-5Dz%ZVd&Ox z+eM_w1d85evdZV0R@K4#e&v*m9v6Dtj>O~9}X4X+F4?-}>3-JX_MSV>6L zL;`I0)gMaQ*HrI!^#Fh^008^@*^0lJ(eH@-&O!asPyhYxPk1SCJ{N4PJyLPe6Te41 zgbGCKnvf~aHXzz&2Q!x4(6(e#jmmggFkHC` zv^d65H^!;tX<)2vm*~?%JoZg4SjjgH{@GPvo|pJen!|5e6MWRbGKcH-#g8ggMG&^3 zvBXlWOd8oHNavWNO8K|*4>9du-wG0Nb!cFp3|PY$~z&UN4IxWur(!&MC7xy)f z!}F|qhym~UG*JlzLq(?J+h1<%GjyBR2@O+Vr>0gKm_;EwJTZ0`Z82^muR7ERg9wIRPRUR-5y9oI1olQndkVNW zhzzUSr-r-ObIh()eHB+k%T>4A5j^E}Foeef-90yN$I~2pLY0I%ha-osD7z;)N=lo~BYep3&34~6hqQaUFR?FiWWgma2 zqIhix!%IGTBMPr<^ht8Ia zj&z;G2XOE<^Sg9*!n5R@&!fdtu5WM(bSl0>iJL=5_loK)c@REoR2ISawGuL#Biot^ zp&BxiF%ImcbJf5mdyN9q3R}h7chJ~4BXO?GjFj-&vnqNn`aoX)Q|pray5thHrYjlt zImOd*O=&#PV9xeje(P4Ls0NbK5S+=x(OFT(>BETXT1>yF%>-ZCLZjZ139y-0A|kjTD7dt8nuR!DeM`*`<}MfK*1Zh+urZ)6 zHud%jwM?9+IgoF1XRGYXy<2>>iN_WEcO8B%GvH=`&SL_&&*w$}!GGjNe`y9#GzCmX zGyJLT-CoZCa0LC^HP4DFwqxT|6cSRj6uY0G#>A*4q~!-jB&j5*X(=eBX(?zVW=ADy zKq&|0$&0DQXyyPTJbu5XQJbJ!R=`?b10Iq8#hL)^)J{gS`sRR<(Z5?3gyaZ?^jFy- z3BV%$Vr4WG5+nc9(zHc-V4j!tEHa`0#nOab4UBAmzA)!Ud6kRF(2x&~j8pwDm-XfF zy!#nJdcec~zgU){ldY|dz2lDhm7H8k#L)Bs3wge{=ARv^|3a%j zDZKqNj-ifp!2%*P&AdU$iuX+!dywZ0yVo&`vXHry{RJOEF;_W{VH#N zPsy?C0F;02f4*1a|HgsWBm96{5)nWrykyS0yxROfwND@i>>7ZPF%hJc^rNG%@~(j% zoi?CErc7;N)lyiS>cH*zrK$0|Bxti$Jm$a0?iJ0wLzLT1T0ov^uAU_9e0QwfMCq}zah+@;q(1}{^Tv7h4lG~F8g0UdbafCF|v|9 zd_QLm_6dNvU9DybX#{KpJP?VDR;3QQzZn>-Qcs?HC}DnP+%h` z_}_>r@d6J$AbALAsIq8m-{1wt2$S`8SACwxt^VoGozEr3NbvLEARk00W$e_OMXp z9PK^%Ym%q6x&~Mfjodh9%+c`7H>-;jvoS3DW{9~aILmAtP)Gen*)8$V) z3Z-`5d#qT3?T_P=*qFd-7Gm{;l z#QL3~>6!{Vgm`jgq`MTUN|7RWi}sAL*AE-E=gLYzIiEcS&XM(|aHUR5||mvH__6NF+Qto)sG%hgeCFGGi*SgKv)>lhV!e+Es%I zDn^af2uECn9qJ58%u)lvlb-PM+vuMujs++6Vz$^Q2^Etjx_9JLTh=`FC4V^Xd;TM+ zru);k0IoR!f>|5DUjZ(K(sMSl{N*0HHwHhC@cH@rMh3dS;o1*>^e1fl{`Nb~5)`^5 zwgDNwJ*q?cWDu0gPu*jEdbYGWLId5n&O$>n!dM)u(yE}apE_(tg-k?Tl#UfucV;~* z-t5d%uk}+~46sQlRT5iliv)>jWyDWYUo0SsGJ{-TB!x}nd>w{%UQk!OZtu!rxh81b z(F&-&400^lW4%GN$3>zU_eXb+m$uNB?!XW;4RAsE;8$bp`p76lC%515d0*g_VweS1 z`PY5EtUeeIt`0JgWnobqH@zD%YL6j4*<+hJXseTmg^jLrv8K)(*9+$4_%Wl8qEI2m;WPUOOGQqGLNWvCNnQ+hgO1__Ktlv(FwL!k@XEjL4|bLym)%z+Tz#u-M3*TO^NmUXMw$64eLla~ikl zygr)vQsrP<=>%e;S!LhfC1cp6801-ci8M}2NUFbT|IO{K*NjG!`Rq3XFJxTvshQNM z+!;ql&HHOtch3jPtMtb|kXzs-xb(k9Zb85RR5QS!1ShK>$vp`xzyJX{@g&3l>B#~7 zO?oF}YT^PG1vARbS%is?Lk`pGq=J2-{S(+x5FkRK@SK2MGE2$!y>@D9n_OgtbuNV0 zR|A8bN52$LmUOKaiFlf1r!+)n4#%}h9yA*hz5Ssz{F&V2OQax%08;-eZb912+RVYx z-tEW#X@LdQ+kkfJC?bfR97p39P|4z}!A}a3D@5;m*28VSWbmWZJ#d6Z+M8J(P-)6G~WVGeej2^ ziTTZ&#OIjnU-=;sz|cR--}$*egpeuKE^S%!(iQ)M z@mbs07kGBt_JHS~RqFkPIaM%vj@N(i+P}A@`#?f3<@g=dV^AY;KJsLH_M*^}H5uFu zk?&kdt4&A;H3(J>2F@8a+mn6bO6pjw6yQMH?m2#&PktD7g%Vke0VuoR#jI8kG(9+9 zXlc>$(xdv}XP#$`*jBr-#{+)k?BDpAUyGN23qh)nM!Y`mj+zlKOP>Z`b~zQp-e2| z(LsAojDDSjo^Umd+ys(diwz3tdi96C?dR+>9)j%E^LfAvK-BUK=>N%+{QCdD#bSTr zPn4X@p0|zPorzZr|MMW0z>`~4c8F44__jH7#AN{+zqY38@S2*}(b59O0@|TZZFZ{A ze#}LN=WW-JY8 z{{hxtgqjh6%ZUN71$~FDB&1+MkRQR_&Pco_4=h$Znb=D3tb;XeRw3sNI|&Zy; zauX+8pGLF>0*n_vi6C<9OWrnIX$(QVPEG<}y7bbMGDN5&@QOfrdz>m%GaC50!#kZE zKFF^_<|L>$T3C<5%J8%_{B5-u8#JClLl)Vhm3e2lLa_o50I*v}d zt&Wp0sUw$lO`zSEkGd+S&{g_l}ALUL3W}5^GSg^TK+AtgPZHq`qgmAk3`J+uG$eOGomv zJ&Imjt26n;^5Jxo-ZT*wqFdXCaPEeHQ+$3bV?`H6ug-c5;;Q+Rt!hq1#AHfGdL2WP zPt-@6HeP$yBbPYK?Z@wPZ4hyRujIx{-_ct zv5Kd*rZL9eF&)R#v6Nv{_M$kzKcrRgfN5O~aP;jumW+lPjf!+LwRAbE1nksINLA_G@G20=H%JI;QYrgUfr2PdG*8ox>8au&3bRA} zGc(oJ24+3u5+?z7flG-th&S}n*L~5lgpyL-(`eGVy1rXxpaxOMq_&>(~%@ z&)rw9TU)0G{OG+lYc(&oHWxVHtz6YD+z$J2EMvGD$urN|x^hvSrlz}MMd7)IUefMP z?ISfzhG=-A;d=QE}Ao4v3nC9k!BBQuvM zxn*c@^kG(25@4b1u95u7#y@V?X+b2dYL9qYbu3@_yxt!-&6FDDWoaQFB6}<}HVg)* z!{}_M1pUza=mjigB;?CW*a#1EtRxXXAoq7cafpx{V%OE9Gb7}u*A*9rDC=ABxppVF zvqPu(Qq_)>(xb*m<=O0d%FSf9SEJspSTTirWJ$_934);#L?Z@TG=7SG71o24CYOx& zB34Q6IDXorDe@8(c3(Nw@?c|YO*qVtPu2ngg0F4-_VSsheH#rwrf?K}zQ5hMK1PFg z2^JAE^z&wJyzTf#JHV|_{|1bl;4I}@LG>#v^v4@r?6uHD4Lu57jjaUG92t<8Y{C3K zc9Xe+;~;PHN^~fr$#%))b4GP)_+A`-_y%QGoPdWX92oQE4JkbYyvPiC-1vQGNCAoi zx-2aZ$tmH4B$BjS5CGUE&IOH&VcGk+ud;&4?G|ty}JJcrH zA!D{S9=s@eWbr;st_O5RUMNR(7~GXre1P5Uw0hI_^vrr>d%g9*agRMe!MD5iwYNhz zSOEE5HAcMR0>*m4XjE*UiG|B@t4hV}4{_`>H&XN@Fs1;Upat;bInVQdievvFHxz#^ zd-<-1R?)l`fN@eEUA&=S10^>SKRgOTIu4>WTDKvgh&Ew(R!1Lq%b%}Wyy3W#mK8hc z7o@YXN8KCSCZe>Wwm7{_Mkny_TH)dBXN!Y$_sbZ#$ux%H`a<&w`$6s|e0ZaR;-g&> z(`*cPL@){IQu`s;dP*rjrOue?QaZh*0=F8i z5T1(TL?}rD^LXJFeY!C(rSP!6pF8`vCfAL)oe>U6v7a{+0vC&TSsxon>Yr~R^F7SW@^kgCo z)GA@@*QfESKnLFnSCP9Z!cb7Mu><77Ta}kk4H$>a2dG$8OR>?`()2sSDV%(SBkhWT zC?=^m2$y8ZIh8KqM*JjTezRtTdP40 zI)zY)DUUxf;iU{YdxoFOL4{IhIl@=Ql;#g4H43ko6i??8k0Kh$F)WVrqS(pjIWV=1 z<#;*HKZzTOI8CvyM~<)+^bQ4GeQx?lwtyW6iR!BmfHN-c47V0yV*6JZnP5}85#cE}+kt}Apm#+&pST$aCeK;h#55^x zt^&?N7cqGVvc|V<24Ld{(JHAP^3FUAroOJ$mYcqN{t2i%{zCK(5jHS?5Anwps zFAqY{#I{quLC~!vMQ^0OIa#aFeJO}Q? zO{^^8%G^_G$$}kwr=mf+`{<)`y{MUp5y2c2mUindf^PfN5s+EMr@!^-ll%$ErKLAy z3MtUuc7F)kw6Yw3m|JVmug)=;(5_o-&x|GhB^g(?3Q!L3u4zqz)sHe(+uP2#fb63E_ z^^%>L>3-T;+}d@f&NlIw)Ap+bv_)pu`)Yo28{8y|J;JMaP;P#jDNDsD0+yDM1@I2K zsvf-)SqeMFv`LJ-qFsOD;++_tpb(fX=dn|GM+4*SI*>17tBYOa6g1%Q{YY(rD85xB zV_`c`a;U);Ce|_v)wzgp9l_!W08+uHc(bq^_u0LL}$The;?A@8u zefiY>2MK3tZTQdtq^kuOtmOAE+OuDe2>;ZeeV6f{gzR;SzZHHtLMXgy4oZZY3@kUF z6HBm*w2w8=Y*;YauM+}QD-Xo@$tN|-ZOiwIwFojn zS&47!6u!w?68r}h(_zq8%6YW8)}jHw8Yk0%}S%ma&t~thm_mSalAaqa*2^ zvj9~=1!xhTGes?m&%LHSWhmdO%vV<@@rf}*dbfQbdZ<9s`h}9%WABsnK&_`%VbC_E z#^^yiV<$9{;DAVzCANyk1W>c4YO4sQY{K={0g_dM7rIyGiDnzm>XGk-uQcx=Oj-`c zIFkhvT@7|-pyCH^iFs?P`cF9DO;{CROv;Br3uAx4W?2y8#S7{G2F&jhl>YqggP#u8 z;-zgq0VXH`vK>51p9ITF+ENA3`RlNX14AbS>&mF-89plLn^=ij)qnPW(@z>54R0?7 zcQNA1b<*0@Bz^U6FECyRaM8(BEMkOXqTK6S9t;oMegoBw z$p`DECe1yPT4r?P2UJA!FZj~cqwTnGpV48uqCh0EUs98dS!2v+-6Gr`p=jyl25N`iU!XZ>!4aD!azm$zGhWMbh_m<5(e90jbB>~pQs&q*rqR9ydy`M{w zdifPoKqDGAn7Y&xq>QGo7y@=(us9{j4zUHOK#Nb5!m*mX@rxA=FSm#qqahbfgar~? z=tVrfQ~h?9tu5E&e2#<_Eraoy2D2S%`V=Xj+)23Z59L@cb%Y1&@!};c#sRB1^pRz@ zkA*5C8`m-8SrV!yBA9h?5sxmXCcA7g-Xfi4v^Yv%bXW#96~+i;1`$IRIbn-3>O0K_ zE{VnneS180>iI4@OOOwmghi;2eFtkNYOD!|H7v4c7WTqzYLzL3F*#FEl!uFN%T^SP zSCmgm4%vtIM5z3gx7fFJ8=zEbvV}9whBlf|X;d&OVdkXG9idPKi+KGIP@*HLPvrfMw%l+C${?>@wyK2(^$1jo^9 zsFV?2ATiIuJ4UO`#ca*qnLK{8=KXuNOYk||B?C;?4j>f!XLB}wNy7gf+kY$Ud8U1N zTo+(K5TI`OEmSV~1PZxd*)pv~7@?TUf>AJ93n&K4yLX@i@dOHX4TL8=L*~_}Ev}u8 z43-yUyx;PzPwwk&FoRi=1DF!G%RQ6uxX)KxhSLfOrU|b52&wPiJ|b{#nLQdVWAspx zYE=+I@`Q;Pi@1&uxA%;Xqj{XgTwct@L1rJMY`(`LDZ-yXC+_zyPD=v2ymUiu1w|ve zTQIK9E4diSbRMRrDH+4$zm8xSrR4=OScqIo%}Ec4MF!fW|CXVxgi)CQRz?sCj5Q+` zsTTzYMrSnw9Mt)s4q7|Q+|lR&0agKz2= zmjLU4w)RYrv|?tgxTkj?7`ciO>oeSt*eU|s8_lHCY0AliOvsN(1K7xudp~W&+%9Yk zQ(Wu4RcZC&g`A&W13BrNEx<`XYOY?~L{-v?7=v*!xQ>hVCUZr78V*opC((|Zht1+R zs6eztZEqv^$Xdh7lPulI&gBXo<#c7!!*Qb3$xlb0FLljv6czRn@_ypSTVI|nADAf8 z>~ru&2e5t$|EA?r1Vm&;&pe2T8GWu}9?l7IDiE*EWeT z%-mQ6{Rr~a%gwDmd3lfTQ~iR}#U;H)K+%|R^+qR9ywr$&LY`YB` zH@5AhvC-IS>^AzYYq4uR_xruiyVm{V+>)Qyxt}w0%rUdiK8nlDqmanUti0kwW{SP8 zWWmAw^MrTOh%q>^j74wm7tsaFX9o{h1#NW@LVd)9t~K7uFbUU@4Qi1ccjmUaw+Ny0 zZRlJ|JJnuHfbWaVI&4|Rg&kIRMxryIrQNar7`5wRe%Jy;6ae_-2WToL%`==V# zMQs?84L5AXQuQ)P;g!NdwTchOoy4b5s#KAID~B+foGBzYj@>@Hadk8pu%f)Nl-F(r z$Ns4!tzxo$SE6*Q=;Uy|T;aj&Pn070Fm$-Ra93m)3Y53U08!`oB=GtQ*D7+(#=VlB z0b&$>Yg30%)}|;q*Q{=gI57M$I-NNbjApVbCN*eh#l~UGW7PRhH{RG*!^SjdxAfzv zH-v;LguTfY^_T-!b9aY^sTJ%qyYD^u;_MidGQ6U1~DXpzf&~LhH~6LcJ3p+B|Czb?q|fy<8Za;uVUTU?6;fxDb@q6 z?ocSCAOT=;%qahx6>&eYJ^pX8{^v_|yPB5LHX90H={6$w=#nYqaz`2|CCDnF5*pV# z?i0iTV&mYZdsPYWnz)y>yh!9B^fx>#2;oM!nOB)3ZqC;(+T$bL1fNOzqkd>t1%&~) zvcm{I@V5|wIA%#7Q{xqj0t ze12#^x_1=0M?|Q;v7B_u-Y*wKQHXxM9^p8p*;Y1Oqi^^F4jD&@kC*neYXcTd3ABq- zjFkv5G#ceuwx%7&T%H zG%&5~lT@EYm4`R^a5NB^t|=j#*p-uPGYA3)RBGv2YT^yu9wG3mTfOn`H%E+TiH2am zYl$+vRb5!RrSlyUoH z=yF>msV>7$=bPf9_6d>e8VZVJXdMB~kvtV7c_g1Xv^7tb%Dx574p8G6Bo?I;B)nGan&ONiNIA|ed0sTS4B?>wK!|8%c#V*}N zh-$!G77aUjK0rpgnhU=>Si?}jX|3dk)=iB|uLd3?0Kqzs>Ew0-#*4|$AyW!NFY?m+$Tq9>2JUjWY3On6>u}GV-@1nb$OcUZ@#+m}R9+~nvt^<#psd@D7TC0+`Mk}@U8th;f zOqAOtQ6qjv_bkU09>R?M`?aZt>4!9ipa>%v3Bx9?epTjL(}U0!zMCy~4$t{`jfU?Q z9#>TrT@ac z@Ar6^+@^JqSmg4Mgx}N{x=C!>3|r+^G98U$W_%@W$JiVSq3;`ow|{O_Fc>9||v8;^W#XV(xu16~F?kV!J%e-o2cjN7*44y){#SJGXYxZU$xj-9l*D zv9jwVu#7DHbUT53awUz#!~N+?F}vF(cO}y>($;K5M}$Q=@pWPu(!-oq${G%M#Ii5N z>%r@@rOIhY>r3gg#P*W4>ZHUx@XME$Ij3}w$k0{Z(_YyI3-}+*odSpYGPkED3m3Z^ zKM_@cDxmZG?J^sHWZxS0znt&`h75k)+4f7quWDnr%!c@Us^IhiDZMwrZW;O+V}CbRL-5V(}Ed>CA*mO-{C1&rvU zJJ=Cmq6kaHm}dAWArPZgt&p8G_-6$YM9G+s<8RP%@iG8Av*9h6-)wzm9gQ-*eKvfH zkQ!fds}7>+#m#;GEr?QIvigt@{qyU2Oh&Gt%=TmP-1{J!UGnS-r$CH7J{>B~owt@u zKSbMHs`wY)k9~|PHTIl;7F0RBL zA`RNKT`>Mp+j|Lzev2-da9cHzUe#~+TV<=fcV17o-yI%~7SCLso0>Rm+BPH`-In;i zxjwG3u0A&O_dlb0x9;mbjSqRe>{$Bj&Qqgk6$X%or63kUluPiK@udq|EPvp^rBFP8p=6amX(Ntyg5tG_OPvvlju&eLV zvfi+Q)nqxq0=6=|RO`NWL&>62U%JI4dlm5(VPo6XwK>Jukb_h-!xF?TX+KVU3@(dc z(y8lh$>%F1rc~$;KbG%ldfH-;+9QGjcyBKJt@0x8S-J#~gSNXv5zgUPxQVt<1;!6% z_NXNqYhgFAf>`2+St*(MeIM&m_gXb>%|Ly6#UtWRM^;oNJXsglTyd1TDH`*)))_}9 zu1}kx2CSwJI4hKGYTh*2kDX(5O8LX3JY9O2C%S)8u;3@U(1~SJiO_QVboiqq{e=Rq zYizsZsc?Dkfwp+RKd-v@xh?v-p5lUlT{$Q7He92&Z$>u}8(hluIjaZB_C zA0$TRB&u5t@kBHn-0nCLPZgP9G8G~vPa_JQ+-g7FI{jf}!GaoF?A44N>T{#~0F;WP zeH=yZbPl!e<_mfEQ3{(`;*@HaUwLWl7a$tChWkAD>?itto**wq!{qm}dVG~CQEJA}YEjgigIxby`Et&*Ir!v>!*}LQk^v@!~1R$os@^qo>0xpb} zfI`Cm6O->hB$mJtIKbLa0AmO!+X;*%GC(r=uj;~xVJ9s?y6KA&;`HsPo@G*tlHWuL zq)PA*l`hZfO}L%uYFlBMYg^mf)dxTwf@7HQGj=v{Jf%83ha00Tj=yN_fQnhAqtE2b zj&XNlwI5BZevce9lS}HT#yCYoPz835=A z;Q8N8*Z=4H;ctUz0KroWM-zZ*n7N&u^=|+JkyRP32GR=sHhJaZ6}Z(iRD_R?a;*de zu?`Kq+{hHDwpz8`zP)>S`1ozb)K9dDI61r-{5EgBcF~eg=aukLKU4Jv*}iAGCv-KR zeY&C=X>yC?RPv&Y^+@h38hbHMw0=aL>+27N`R2KeU52EE9fgY+o>DPXAFbpCA}EAT z-#`qWd0z)k3>ZOmEZD+9?qor^$lT_ z%Rhdp(0e%iR@8XMcPD7BEDC-s2A_YQyv{q&n%*r9NevUFOBK|7_jMXI!MZ`Q*~xVC zjVX*7r+7c(+=mNI)Q$^A6|q|C0Mw6Iw1d`^8m5tc3DsjNsi)Iyo`S{rnW8f~-?whg zasrUt7nN=6zN3cVQt~tr@PXx3nNA^2*r%3MEgVzgU>{b2LJ9R$v`tblI}vCLEfCTI}n_#%k3oxwqn_{v~U5IY9(Q z`Q_y-p&t@|T<U`#+lO7d<9|Gk{*zDKN~WibwRpP zv$iC%Qupqlo)_;La{R+1!lPd`%lp3A;qM{O6HhvC*5l@ItC3fqP}^kLg}{?%;E`Rf z_K4K97Qap%p&K?%O5G80rOUg;TuZ+XxBD}g0Kd4bxP{LO;7bDsse$zE|8)occk}*j z_wZl7xP&oqiKeNAiQ^wzGk^a2-tsa)?Zozdwfm}G)z`>s;DYAjVOJH&aUWYs3+TeF z)j$ZJxosC@wglmy#XqfIjchv|N#8VQuwBs2ASGFsIQdsR%fKrio)@dP=(9!pPlrOHC>5bue% zON1iZ85<1WXkQln`e}SXY$4D*9cn!NF8F5*kbQc7syqSF<@2_>d<3A%2B_|FQY!twW$x1Qbs=hqQPf{dP>%M@FBSU)8ZHbj$ zi~wd4eA-@(<(fJ31p4mn>`hAQi#a&6H{VX&KrfA?*_WaDopUYZl+-$U+s%z~N;)LC zr$~;2CpSwgvc4{LQ%oKviNQm$QFl#JFZgoagyv9dk7{wFJRUE)i70+FiIvy#MRGTP z3t`BgS+N%ZP`>~S`hPbu{{I)uMQnj;<~9Ix{tuwn#|r?}hkzVtr$r%{c6S%l_y&lH zb~^El(H8$>>6Foii2L<1)iShvcgE1Tk8K|7fh#M!gxu(miE5fCGhw&pm8rugb2Tn8 zPvWFrBux{|%U=$N-MDdtr!|vW>Z^*ysOPwo0rHpCGjj^{=->@y3De@%s{`pTIc6Ff z)uQJ7cRzfV;!laE)kyF5vMYFa3&JMlqR@iyF#l1oS0a0 zPDiX3rC?7gzbB6skU#PF5H2Ck;y+8LbS7uzC|ru%Cq141ecsO!F8MVm0L&bK4gY&U z|3@G7=fIE&5YPZjWUXCM^Dw*;6x8v$_SZjAoKK`$Fq52ZC2`D%u$p^WTOs^`IH_tJ zW=;L9JA6!L9l(gH6y4KXWGI1O2ZvKhCmPHMj~(+m+yGCo`5I1Bt-^fUyZyXpw}%^* zB>KBeM4|4O%2$;-{qAz#~%o z50l&Id#msNHf&izHj@hk9~=Pw|9$88|G9|xYk2+>{9oBmKVzR9H}>mLEMQ+-PAD5_ zgqjk+q|*hN@HtZ4;pr@$G5=zwe&Bs4w}rJpNq|?HN1J!&VA<&wAC-x?TZ;K7PK_~o z9^qkjwMa?I*ceA)nW~uT@<5?)%c5sO2W*52tx%tkEyuS`uJq`*&NaAf=PrbzrRCqx)Iu;dGK?f$iPHc!-7=DFj(b{SG*7%xCbIre zpd!D-Bn2x((nF<>^G?#a#Da2fSPN%Q0(sa6<9;fd;sD?VDIaga9c zx`Fu8`c+r}(aG~{cQ>$%?fEFV1d0}P*bo|gh7<17mS;S=BOqh5(6YO!2fBp|#ApX; zJmd*S2|*J*KH~kk?e_*zTk%f9hVC&_wmok}PGaB*@7YKiY$g-pBrDpz@xE=vUTU>; zpb-b4D<~Vbb_X=bL8pZ!|g3fkg(%8_|=f!vn?H;ek< zMh~h}sZ2sKIoEqE_saah)x*zU#9VuIUyh;f9G{Odr*JKHtY|zZ9^3XCSsu3nduB79 zVCU#hE75>>a%Kx}oCEN5_^;sk+Z@w>z!M-=2pn$#+#p5`5TJEEPa2YPX|D;wbU{qG zFs=06kPjM2zj_+0ViT>}#fitj zGpb9R%tdd_R)HMjAZgepNQ-0n_?1pCZ42Sa#-{Ygn~kq9(AAmQx!#VtW=$3vb(NI^ zCyY*_>~JyZrT$Kz<5v9hFZ!J{Zv~DYU}UZ29+CaNv&hRHuVKkm9S6-q_}3L+;n2XN zp5PI4CvuqxC9YUD{48vl_}OzJyntpCiDX+5jx zq!Y9_Y$#$2`Hgvj*XPI*Zp)q1q6A_^SyruSU&@X>y>AV3A>~By$WKvuW#ifV1K+@mt2P`WT2R#XHZXbbmu%faj_SI+Jx%j`1cb*Z63h*%t6?<2Q8 zUcu6sqtPmp(3G{6lJecq!pc^29n_2Ku8u7ICP>@aH(nyGyN!?iV3T#|CZ z3Qv`*eIHS1F5Nqub52sMJ{<@jKXYWz!Z47xjS`PB&p1!topWGg1(6-ocYsl|rVpf>JSa(yXgK{#WY&-p_L_riOuFU-_Z?lBYxuSD$Cb<=;uLT9ww zUqJ>N^@F44WURia<~N0{YbUSo2Fby{NaV-O&Q?%nK*}+9O7x~@B&i@k4Gks4UQcFuv`#D z?w%twjHg87sT%TkbBN}{XrKfGnJs8I8(2Rnmm|K!%%FfmzO5XXUva8fSjd5qWX-2# zqRp+Ex+EHW=ipRLlkB*t1X~1UD^zp_(6pROK5c8%nozcDM;4`JJb}OHq~-duFmw0; zi41Nf=Gx1s7-^y@FT&l9#XDgxJ-}Jj1D^dgrq?@Do{GT=TeWv~@Uz+i^NIR_0dbYG z{tRuJc{#WlXxq4b!iD{@;Bki*6#BUWXyEXC)0i+C>7J;G7wLu|auXvXPDPJOgDCB* zGa!=e)VQRvvq*_EEWI{g5=LLP*&WYhluF!g{${^r=TtR7w6OtESNC6|Eo5h7<6>*^ zt4PUzioFWI)b4=Qn@JF5ar1@l4p23C>;=ihk62-|9NiKab9FBrNtV{h1D|&j%)aq< zntAx_yXh9EIR^^nA@(2K<7mlk?pg9EMNBE47eV2*Rel)H-Lx!s8)t^Xp5JTz)ir-vwiQU1uccG~*|&LMjMW%rBp{EE#-c z92wI1)D-QYFVjDeuE6w@z)}R9@Qje_kHsHpQ52FV$k9hnRY{b!N^Atfhv-fy^qR-L zhF%SXf^GCST=(Aownk<4#3|@TvG$xygt&kn-HH1OdKq1>060EdUjU-+3K>iM(=vIZgrCj)}@I0J)Wb>!tc~k(YNjT=LTx4*L63(x02c zURE_eLgOuIUv7AreE$$Ll)|eN+A~wOCC*Wz`dH+#LqtRx2CM z!PC%P_GC`%qIz>IbttR&R}=wHHIDlmtKoN*lQg#3${k!{_7wghNd$TG*WGAjEbvb5 z?_ZIv3#IeMf|oa^Q2#YT^fB!8b^tIW1z>3Q-?dqQ)TF72qlqnG9l4#gg^|Z!@Qkgt z1e|2T4^Pmjbk_EX^Rkee(@o4xypUEJAGMm2gIv+ArJs4ZAh`3xOQz0Q0zc`w%p%GL zDY0mNu!Q<1)=rW9v2czJG$u7dl*C=>WSw-d@9DKzd@*uf2XX~kH5y>$acr)Ww|e6k zeF6;j-nFcwZ3e?UNgF%Xm$3L-CepSQsUB9p*oM4T29|-;5FEQ8kP&{csxJI$aQcAY zw`4MXE^eB=k5s-~OroY~K5#al70v7Y^Tcd=)$acmWM>$M+<|F;3IM|YM%w}?>F^)? z-8+U+?za&FJf=E@{1R%LoFePh193#AikVMID;j(dtb&hj72&T433+(=d3}ApadSpG ziG4;(HXE8vY+oeEU>o^9-0X)-E@0S%UW{)T$~OzaHMn@1>)0OIjWVP-etX!7qIbNE z)%bq1c5+YB*Erk~VxC>@5e$(3U(yUCH3UT9W>dj`vl_E6$-YA8TN9kRXLCZbPA*?K zcPr73VmQ>(lAFBtA02!}4qs-@^DqYoohA&13=WNped zAp$$}JBj;K?En;Q04V-b8s_i%b-&ldf9a_SxB(Ojfz1w=7#U#SC-}}Of~I9M7^ZO^ zU)XNaMqmKr@Lgt5DlFA>D|Z8t^0kd%!dbgSlcJT zx#}c~5wl($>igfIvG-gD{g0@^?I)!_-^YHfR%Mn23IT8UKVezI<$1g)Hvm_K@J^puB4aGgyXxSKdn~)Ds27aK>wu`w^pYR z)9uZ;ls^mDiz$Si8Q0ZMtw$hOTUuNDTmYbs04L2qWm5hQmVmuIP!Z)Xm;vERPWVGv zLJ3iMQmC@ts(LAKGQF@TAph$WoN*#c>LgwN%bKwpYUBL$I3@Pld%Hc8Gkj|cOloi_L)2^ z`JToKXH_6b%1S<}mT^ygm%>kZg(k1`jFC?@DZ<7{M>&-&yxv4jVq1@GKoi4-1530zhkW3mPq5SrstDZ} z=fO|o>rzn;u3_=juZ0>XY{S&Np!tt#ls%=rUh$SBxXfYSiA+eaboGxTIfhm=8xVrm z69atqg6FJEunB3l^7;c|Mz@`z9`l9%G#LtPavw#W((V8(P4ZuKB7f^YI?@03k2FA2NWsO#(c`x$2eh^V#cJR( z-PIe^g)V>bUeU=nI>&vsX>?$U*}$AW-GX;+WM`4%3N3*_7%wy?D$xD!jq9VlK6;z9 zl9AL6pDLWZcX+@lImulDKUuaU_$9(BkmR$hCu$va zhlU}{4xGNldl~o=JjKw_OClX5F8N8tzK;aN7|KXU-nsTfE^rqK6e~QmWuZereEAXlw>n(#X}W?4=}U}HQJG56@3NCrOL=ISaA$(9G;QB?IGR!?_>h zl$XOYcCW4!Bl8RAd{~S?Qfu=(1sI!W6b5f{7Ntg2^8%P;p2jD1lGu6lFW&-Mz6_&| z>3=|pQcYLAh;+Um3tW}%svx;IYyub2yd$&bH^$D)Aa#MVT5~tWZPgT|%};yNkMIXOnT4;IP` zY1?uW3WXuta6s3p0@_$Kf0~xjDC;WuU{*kOXX~!S z@Rr~Khr#~-aTKoaiOF^RAoV3$;qfhLMk@&?2KwdJ(?}!4K_gta&Gk>=3>b{OcLwMK^JL_E*dKZgyfC(pArSB_+bLL_p z=`-H>^PjFfK&P=9SpBXJaGJD#;WWP$nw;o=`v-Wf|Etp^E3ezlFd+I&=o#c&IEaqC zJ5Q>HWl?4X=w9M~EOFeHGKyaua9vUU5~J%o=|!53dqF*X8Lv_N*K^<{HQUg3zGxvOjcQJ-^1da#ABduo zV(6~)%Rcl}h=|&$ALT)<4%VD$Kz1~A#U~~r@$?*=@#LHqVdNZLtvYRL&&ZjbDA)! zaoX&g{u-vCDTV5~8O)=>LFitg3mzwx)>|K86R4nNaOpN}p<-e?529{0?Y=5EAxy1d! z4d6V^0i*v^ilXs061~`6OMT0D9*%_BfSHnR`o*@TRM93~Nc^&6sLg}@+oD(jO#nLx zT>>n8elnwBOS^7G5)m?k2uRVHq4g;zhS(U)^=QZ5>vS__a1sfyu|p(fW+0cUsCdjxR$CxRu-=u6RaaYGG7uZcrK{CJNzzK z50x=O5Q-t^cjG|Nay0BS{K(>fCS)uSZ~--#s&&Mf+P?Jj_!Thrjnpq-0rxZfo7nd& zqsaLuK}gz>KV#npSBo$evUno$muY6*IM-l4!VYikrYwyrvZFW$uDd-PTI2Uy1|PEK z!wfA<4Qq=j>t?n^R7t1>uBWK;j*%|vF&a|o0l|;GNJsi?wf*6z;0JsGy!sIWU?vT$ zQ;7XTgZZ7i^OI&GAeV;r1B!^Z7v67_eYCen)aDVeCI+`8Du3JF4u5*aijg6SG>z5M z=Yuw!vTgdoi#lpG!EC^=B7Atpz?d)2ntZAO562`qY=nsR6F=bhd)KHkKDnLr!2IYd2CL=a3;%DxRk38!iHO#L>CaM|$9E$&J`d>bkM zz6Hy^kzE-F;IPwx=bygApY(@6-$6v7T^7)pTRWqqsh)N<2!LX&CTwBKNKa`EV~IK5 z8E)sjRVgq^I$KAuhh=v1F(P!giI(g`GRNRERSqD}UMIsy3jn7H2CWkA@+HVHA0VxM zM-`nT&+hIM)K!4#5{k}ZK&qigu!_)YHjzKk3vW)Sk#nmg`+B_HKuY_SP`0J*Htjqa za|cE@X|NNSf;vNCSabtRJd@1xMuM8yTCOe$t6~bq63t5CSChudZPvIEuU46tAP1r^ zqx|iHmpz~K3;n4@Ao_G^OR<~%1snYp^PNnzh|5CHl*tmP8iH&Y%aj&qa}!DyknIro zBur*B5mek6;ruBqa<=L&eBvt~L`0Xxu~BT}MisE4&eAS2daAJv+Y<(!&i~e%Pe*Ok z1G@3Q@q*t;5P$Omps?%YYT~02J25yaqjuhfOQsQWMP+#zul6?XvfW@hU9)EJ|MUZ( zYA7C@4Pigv4afmD^iOZZzl&x5k%O_uRNDf6zp$Gxn16+Biy19qwvzuIjCn+evV6Xj z1l09iJhEFWcii16Tm{P5&P>K;0!p%bTF05@yJi(J|C{7DsoY8`bi1$;b|1n}9PL&?iLJxqG72uHqJpZI}@Ru&apYBFG3alT%if-~2-WQD9 zLk&pkaQHiD&nX(_k%-!RVYGCfwO6^98w|6|(iX(_nJZUaPPEgkfzCOhbnh9YF0pRY z))0G<))$}k{7@O#l-5cj_ru!3F?`~DcFCIgX+aS1J(8m)6@e@gBful{58nfrr2frX zgMfU9OH-dghrNOy2BjEfugwLfWEzpO#zQCLATFRSDlO0>4Z>xT6@DH-0F za(=Lj4d;n}3NzHLd0d#V$5F?zc8I%-Bgu~wmp(>%)=zHMCt^8!CThBlV+bBMvHm6u5SmSll zutqdTk{O|^%tW=fs`i(NGU7D)cBZeZNV<{^fW^-G@Es8C>5rWcSRH?TfuWvmA_Kq+ z{2Ln*aB()bbF}dMMK1rRmjKuh;3b5oetij$T;bdyD7M?&vYlh$2K3j3`E$wy~B%N?xq97+h?lSogQE39BV9V9A# z<)c|36vrtt7Y;C+yCp@4FW}vv+^-uEJ)yQ>Gdo-c`HD`QOclM`c~2LqB}`w-A?2pM z8beA}be8m{lc_6^3`_iRVv8=+$&ZW6heY&1RA8TGGBHl1P$ZC5e7z$;OXe`AI*ZvW zO%-u$3sh!sXb9SR^Thi*#|$&ZcXP$BSah366@Rq?j)K&wj{w|;03&e!v@`ju2maE^ z0SajUbb0)_%MPr$WF~aWZUg0Bd?Ex&2YPm_^a!saB~RkC>%P~dJs0nK0&ZcVC# z)@=^j{CB~98407KcQ4F|wawmDQBYgZxVwBDLqfRoAKu@TrZ9f4Cbf%4)>d!*VWgSl z=`w~NrSNfJ>ZnqAM@=e^WS})Q9?csR`ma!G;4JJaU_;I*ERN^6ukCyY|8?MlAwLZi@I)YUB5;#I7q+Wx8 z2OUaSR;}vvy_>NB47_wHAl$#VlTJC`%n9;`OeEvda2>~zBNfM$8ugX2B^(y;%vb3i zvvGiSi~lGLQR)2!{E`tWrUaUa`<@}e6@Jpm`_Gg zDt@)+Jv@J8eogwp;P*JaFuNfMokEAJvd;Xyq-0{}wkQWR(J8@uq=0Wle*0$bR)SNK zPbwp?jl55l^p+n7Wk_64#0>}(3caEi6mP7)>N?1s-`^9^JU`n-xhXwf@mh>L(XckH zSHXGxtyx_i#a;(&RG$GV2`2w4DF5L~(!cIekOnN)u>PN10ib2fC5`~Aydrl$A}BY6 znKt?k<}EZ)EI>fN5QW97Xk)N&Mrg>Bbmu(2i}yW~PdFK<*p^}6m5fd0bURJv^S*G( zGJ!65`x+)fV1y&uD%Sa_+BexmRasnDJg9O_uA^DfoEvkb*=cV8EMvtokOk97-8{Sx zjun@>-GOb3$`+s1O^qBYATAzjn4^V2w@S!nt^UbvU^cmdXvr60X1)5ShVZNc> zCAL1grRR(~oX^rs!*0k1+})d~30;6@a)q06ln}{z7f#ijxZ6SCYbEUcy{BniP)!4q zzh4tZBzvilTmw3Yc*ipO!FMiqF%Cb;N_l}wDdIR?+25vbfY{ z@pPCc-E2PMsL!nwQ&zBuP;vEp)Y2i`3u$n@Ho~=TMX$w{bB(}kqn+sX{>)U4Cg>nCC$73EoGK!DIJ_VlWajw0nZB zM`PFUmoQTBI;7ZvZIBP1E+pxlWVQG`p)4Mf3PIvC1*Rr;Q-N?hT~Buz($D8DtFV)x z6*2j!j_7Z43>p`AR8gFX8gEZT=KEKk2=e05A*j~xbQtMBJ?q@k>T#4mhi|^5u50CS zug9oAr9J(vr<$Af&@&FON=87?`lrR=zotII2F?cbG5|IZfV~3zA83vyF@LCVJDq1o z67Z@mN9cMTRa1`~8#^l{NPK|+w)M+CC@yjGUHO#j^&%!sOQR7_D8+<0ejMzwxT_ ziEvjGIEq1Q5I;}yb0p=0{L0>VYS_KKyr3^UL)cK| zW?cdXQtu@7;+8Qp!HGCgY}CdNdigPZb8l1>2dbh=WiR7IR>v-dOf_J-o;u$ zUiNQ;(2!jO(+V{t`4~B z*ID@+bPRGF+CVkb5CC+*ob})5-G7A0zu4r@Nk?3_q>un$)xj022Fg+Z%&KN-(hsnf z>+mQGOAtF#!-Qf!$(Pk)b$NGFuQN_jI$5>M*^pCxtW z$xbWf9&dlwK!tz3B;kF6X`sdYNs>U)>vJrGAR3>9DY7-F_YW}XHR?l#&X6K32oApl zwXyT-HoxtnF$y~$n5AW!j;S!ir4qj2U0Q9Q<(SRCl|Bd{l$e?UPy%Tt`u|->|FFp4 zc{@O(bcq?04EzO86bNW-5;|m^SyKLMXC0VGiN%?n-cxVH7?Q!*o}u{aA%` z9ryr)h2uL2N7KQz+|~lZ(u)}b5^jsCyFPC(S$O@oiWk9f*V8@#t_c8a!2Kux-V*=F z--Jy}4P309|6-7TXY2rxjQ&ZL7Z;cgFDOdZ7{fU8QpDtagR<86!bB4E{_Y1|9jVZZ zc>>2o2J4v)sDH#U=*{z%xSD->E015cGVK}xLgmGh+I_5R&4ab3EkKOB6A z=mRTs5{aQ;!|zhdi?xeq4*_i z3OSkp^jd!-rvHBY@B)q>K*=KH>=~77XENm7SC6MfbIj{DD+2SH7A%~viL^VSVRVM!wL*T!-t2SONSYeNXAg zC|l1#5h^~#d7*vgf%i~UtY#eZ8sBO3y5CL+Ix)*z%`}`NF>XSpAjxWxFVUW42=j4c ztgn3}UAn9<;`z15D0Yaw8OMakEMKD2CBL1WQ~G?}VBd8R@5A^4z&=hG=* zG?Ec(0HN5X*Lz}ny7#wARY2>U>?i<5bO4I~w7~xt6o11H*yWY6Gd8gX+NVnNFLK5q zz`=-L&+rF-#esf~W1SugSPvNX>-5|jU1g`S7CUYabfPC089M=4mcl2APJhgD**~)^hQXE#q zPPHGOKjm?A7uA|$xl5*0LyTe$?#AkL>`jIuKR~2pt5jh}!LUSHk;1iNK;8z%fuSC7 zDHhlJTYD~pF{Xg>hjxCQWvI|7d%P^Y%rXMYTE@)yo4zXW1ov~|IPC_&2m9YL!oT!L zem6pySbi%ZM%X@}>NY0Q!E`fJ4hf3n$Ak(5yppnOOzWXV$8Lawb4~g-9-a<5ES+8@ zWL`Ja^&heHwT8KWiMFJeKKPKu)S2}fgsU_=kWlHvVixN1U|QJ=j#Lc zGRF*D-|XzY-tp-tFQPqd-|_pLXVhT9+@POUfmkrwZaBKA-TiIsbVQ>Y3V6``06hPc z8TA*N6EU^`$}#{)Pk)DuH>MTP?u8X`^9>Gxm!U`+_nsNlKEQ%3$z=oAVru|_BYn}m zE0#IPC~Z}Ln5Uj&z=Y+Ap){9tIpQ7MElZ&$HRtps2`RsuTho|T%q(^pKi1wjDgp~` zS~BX1(z~)GU|^G#M&M)>+HW3UMV?fLTx8{#kQp<5@8z}s*gquq9kiEXAwm|~9oAA_?yp6GLxx#B zpnGEcx7_nLnEvXXF@Lbg{z$Q>wQ>%oXh%3Otq4+sjNbspmh7ks>YTjJ#?tLROdMuJ zRZHVB%SD=saUG;ImEoDj4nTs_L4_M+Dt1P{&b;>G8a!ZUbb2`g4Q^V`HPqr~JtSma zqVNfFtw(VmWUM-jtgI94yh!)>@%1 z#%m|$P$6_t(8r*VELE94l-mY#F;6Q#1)08B_9_S6(db+B^y#pxb$nd1gDR{M`T+}jWPfn1-L$V}cpyRD zF?@^su*UXHWAUz}ZUuHgLm!t@_)^;Luze|uS-q5gcWYE;nT= zolRMgJ*N2Lhc^;XV3i}>etq!nZ(a{X39Jqif7%T&kzP`gJs3Lp2HBn1ir%eM=TvhZ zlR%<^bbh3Wy`R<@Ur-B;i>9Ci{E9UC zNsl!8(omBto?M)r;|j-7icRXZ9K~WpE~n<&nCXW$NHnpWm?`6yjcEoOUlUi6?TL8G zX$g+#y~qut7K&o(2x22#FhAutYpnKCX=Z1*Q%T5QHz9J-#WUxnKM#grQ>-;~N_8Es zlz+7@9)b^WC+%UxQ5Zy;G>!(#e&_E`nr!kp2fdPGIED1nt0>>-1Sk%rr2b_24ZuBV zW?OIQ%I@2sFA~Rl%}V?QWXPriVwo^7@8XWWcTSwVIW`7-jWC^oUQ*K_(7H_~sRDiP z#5O=Dj}Ao@Az5jgv$5+<3FXBoF#|suG|GRvyJdhe3X0uz|sQCGgKgboJ_V9niR(FH9v zf=;;gTdSs0S90}JToYR^_lt88+K0ic1dZq-VQsXj5FFui^IE`;;nCS}S3k!igQf`v z7c=N|#bhH$e!RuM0olxLG{xwiG^0I^mCC+@O9x-mgNN;~)7%)?U$pJh#275k*Dqth z?v)e0bSK}g{xpj25PtwVJ}E-D8ct;2{R6=yVE0UhDDr(y<6C;;0csO-_P3XC*-u>kzl<2Ob9dzI! z)c0$hc4m{`4X2NR&)|3^whnFL?#7Q!e~xR3EB2(;=iG~WxnWrE!Qq+78tmRi#2G@n zrZF?_6Jpi0*t5)NRTX@-sSPZUF-K|)_Vuq8<>!^lCVqZ&RTb+x{h__f2S3r9fH8^x zrlx5YP|yRz_%Ft!-@^J&x79f{1)$EE4?tw~RbImD<}TgLuOdq%Rt@!-8SuS`5O0X5 z*w_IwXH?+|_nl|r5lEyX6}U8Ad!fQycxN$#XQ$jx=N0PcfdY~VurNrHq~^JX^^{>5 zKKxwRuo&avH1>j%9tt#c?lF{FD`ZyVwFugA{ir4>q{a?XeE{PQqAge{eDr4)`J_V2 zWM>A!#_>&4WkXnkoReOu#AmY<^{wrRh--zpXvw6W>AqUq5R?*qmBYoZsRLAD5skKf zaO|q8%~W?*jg2f4-8Ax(P7RY?;S-NSQtkF#3kqeKq{nCjCuLK91dQa)RvNG47i-$( z4C|ar-?ZT68j2?Q(66KF{y#DDz=K+vQYsc4{ZAYCCG;@ z-q~rSc_z?)N>WQ9xT&@;VQ9{3IFJx}5Rg71-{Yo0X{Ait@;GEU0tM-jQPBeU0_;d2 zWjROK%=PNbi?HIOCdUUdtptTEMZA}|)dE6-QE{tI;7?)I&UmqJ*`ZkaG#6|4SD$12 zLZlESSwzZ4Yu^57Igu$lAECCs;b4(I77B8WK!j7e=T0M_0bRowx!t;!LsWqV|Ej0N z`RThG!>90s;QA~3AeK)(0}3N$W{NM)4a_k!vFa6@>g@zs(mVy{bVW6IGb}0NQ5P3w z2|9%eeonefs30lL<|t*ePcQlCc?6Wfld`UJE0QQX!sX5T#Q}rl#CQ{U4ypYGkWgWke)(TwuqnJMe_RqrHr-?hA>eN z{DNv{bkN0}D;3fD4m8F%-#{+M9C(P?x!&qZ)1jR20H*RP6k4;IZ3}9qR8x$14v|@Q zx+~^Tcis$}u)ORbEF0!T{z;4<@_Ug0*c%sctf_|Y(#4FklebA!DLOg{YPl#ibIr)@ zf^E$bo@LDufI%bScSQ8c+z530?z=VW!9Za2abwMHvzRl$5W$+jLq-N%jAl89Dl&1; zDhJ7=0oPEbj}#ohlO)_E<(ZAM5KoRCmmJR*cHWmBFz`v2KgMw2;@{ko$M&mrdG}`u zMkk0Y#o(H%8D~odhiu+O241!+|EXNNgW_;P zazcGln{6u9Mm~$+6v&+_kQ*JP-h+`{H&tgNq9_B75I0*bXpF|H1p6@aNbEAD-lZHE z%iK5b((G13@$+64(`oi5urHp3)+{^WJ=n4v7|lq=U}9oq+2P!%tL}0QkBrQzd-Liu zZP}&z?Y;+3sXq-PmX}lD>C%cb-|B>w$=K)A9p|gn;l(+Jr7f0qmmmlW3oqdX6Zsn5 zOdg>GZHqRg#pI0_10L&YJCCR_< zs{!U&5h`IoQi!7oGUd#E9GE4MQPSd;E!ViF!tI$ZC+&Ep5+lSkB%bV7EL{yHGZc;&S3Y>bRtNlqJ}W&`C`55-)*x!1^}T zoxME_Zt6>Yz{+4;R0PvEdy#{N!=`IOmH;|^6aR&wF(?K=)Vx0tiN%%9e1aW&VoHx9 zsEkHhsfN03WQCmPXcy7Q7D&7fE{E^kPovb>_}R%QgnC zw1)_%EXIb)WKOt0ZX8e!@}B~BJ~{5e#7=Y|vJc-!>xhrq&SfND2rtRUQu1Rv#@K&9 zRKzLv&X=8yZ!d>V2I0wUJ3PM&3e7vJydgNfnzrIVXi0^7U}9})1nj3znyk1AmO0ud zeAF~8mZ24w);~=^_32yxVh41HM7fkzv6>g1N{kbUg=xPwc!s6HFhAkWkaC06u$Oj2 zODBOglrDhWgFaY3&2*O43H^8$2AS-wdm{~1Uwi0YC1H$HEp+o!PUS?Ru99i4M7!>=KBmE1|GW^f}^wzsjL2BMen?RgnEJ2NW-mUQ3S zfH)pa%`)J528~(}^qABvemt~%>2b(EES_N46Tr$apo=f2ss*(ysGn=BE-m$ga&#SAQcmG90^!rFh~F{NK4j&S|Dbr4F9^o1Em5sYi&=R? zEsi2(Gx(-vcv9<&HAxKTXbk6a;OmYnU3RPPBSc^wW=SqYXil zZxdMFGTZP9)YS3CC?h26`4V_LaN)#x5Q!{1oAY`X3~bx!QGtrI%RI@WVdt_#X2QQ$ zEaGXDTd^eCN_ub>RSNZFJSJsMB}Hi&)oh|1G6NoMJGsH7F^*hSp*uzlL+N4=!7xsqrNeZ1D%ClN&(0Z2#0V6MP7UqYhR{xoUqRb3c?cgiVuM0w64tkC zurT-WqJQUrHFb?iStx~!XBix;jH}uuzy2HH0kh{^hpvqV5EgVe^Qw$gY@|_QB*TGI zbSqpU4!Y^cU9F4_a=i@r-TiewOL*^r3gJZw7(Srnhj#J-y@RACzF{;kPYMEj?Y7P3 z4EI#UqrPkL8t_MxQ}1l9Q@>|_(*D~_i4+G*f{$6$)fSg6otv{Nt-bZF4R>rf69Y#K z4?ih1CP1M-yBb3B0NOexApd=;`j0e(g7F6@Yonhc{x%g!n{9R&z#iK(gih8C>dJYe zIDrB)mzD~cSRfBmC?TSn2()UW{V5r_oep?h_3@gF8%7Rdv>)e0KSE+JmkZpLZ{11k zhhXvno?3fzj%De*VzF>uu~bl#DbiMcex#^8S#AVW*Nld)u4}hWPRdS;c9I)1GEuPA z3)ZtJp~t42$x8JL8xWxfFiSWWHVt|^%8AX>T`=iAZ$Hxjc*Su2_b54l?OC0n*O$vR zQ8*m&_^J-823_mglGVEVSf<%-CSTt0=sT3wp~_(UI=g-O%zVAHIEVki^wK9>fAdfS z8-2bZkYc1hVxmpK6lfqKzMas28CowrA>Qde<->PhPb5>ZvVc!z!1A+5Y1NT9cCsFH zJXx~G9THu>ZN z&>I-2c$A@MxSt!mYjQ(N89&29F~n<>@}dI19ieOO8Jz+OaUe`J8uSZhqs>G}M+Ge1qmO z?`sYLt3kJVM+-TFQgFW~v**! z2X>r|MideiKwb;eXET*J1l-L}wR4h+Pxn<+L_Q)OIU=MgRbF$kOfb$ztU#Vv?2{;BsBMuFM;xqv zj@DE}{G*0BH6McjNS}SceT+OaZ*R(c@4SNAqs6UUOWHG;-XLCXs+`5}A?%dJ(JI)T z7lr%I^z5j2+#$>N+ntnE+TkYG_%(0qsuV=YH6&*uEeCTiahkX-nkuS-_^-|j>*jbH(E+)s!yRWeSba{vx)$vY2B8lq zSY7;roOj1sOUHpJf-z+s^A_3pl&6Bpb8!tqtd!3zdPbykru z!W*Q{m$5)`d{AJeS6|5@sjH}+e`Hlq!b@NwZS&S+x@*>WEVS;RM(3mIXjG>~ANk64 zM^L4v+I#Ox@Is8|Q0yJ}BvC*=ZHm+2wqB;c;#m-lB!hd);B`51O<}Z8xEz9wu2l}t z$zF`G;|6Cp1_P@au?eKp4i-05y7v^;i8)8lQS$vczm4=$oOp1Jz6v8k;e= z;cMSnZk?BOBTU)+%1MNT-r_ZWynk!Ea7dA8msaB+C;qu2pVLsVEOAK1!mS8acg){_ zaSfE$WPUspK>H|W9r8m2w9>SLuZ;NOX!ay^5C<;oB4C?f``{NkRmK6k&>@2_mDQ1VC#ZJws zg|Wi>uMtePr=ggbH}izJv^JKzNg{9Rvo$M)eQ8W61^gWzt;^U|QegX`9YMvyD|~y5 z$n?Yfq>KiJAA&nJVII!BR~Qf&fg60vR2Wo4WZYo&y|7|B5-$($Zk7$6WntiT(ZhZK zQC`xC?g0-~}Q<}8n3LtsmH;S&875*O{U(rNrx>ZkC=bLk4!+|0LISqBYa zR|%bcsn4WJM|HAZN{;AXVLzhbgRX<#B9@Bc1x{F7Tt$+%6O~Y159W%IeNfap{$?!l z>ASy@HX=xX-ZzKIs}Z^~6sha-NoP&CmlH=6v^G?=!#M)U286RW3m8++)t zTR--lN6Vf};>WD2bl`-E;WIHcEqCUjDj12Fv6!3faVFwYZO%4BkvsxFk77x4%Z$gH zkYLisb{k_eN;kR2)70l$L6DfjvtTjhL%mP2bify#)B}51jT#$tZ7)CdxxTs}_v_9l zK0t*t6maFfcJcp{7MkB5e1C7A`OOmvSXu&FUjO86{H1LMu-_cON!)k(1I2;d68f;K zq>d)9FHMfz^&pYtLjh}a2IP+~w9}{7&J9#(rKyS^z9rr22%ezdmr1sLDq1Kes!^}%*%F8&4(JPvP{H!zM0#Rz?L#@^@vLh$ zzaQ}xXcNg$>O#j}{3@nz21A9(tZ1?V)9KS&Kc(TE?P}Cby33Q>?tArStp^L9G1ayY z)X@sI9vR*T1Q8!-y84{MX%j)b4rUN<;JgpHQ|vkoC)c6cHzr?o4l0wmeRmQxAclu) z4u?YO#J$$xplxZFUif|Gvav~kg6g8>vo>8su_b&Ms2nrtgi(R&T)~ym zDLe{GvDCacpLy0YzZK1_A%w27&Tuo(Q7EyR46kcg0a7MCvgNAESja^}3Yu zf+&XzNh3R)LS_rvpjJ<`kKLtnz-_${_sMlDe&%TO%q)cz&vP46u{vY2ZXE<&LM`|d zD+uDeqVMc(49X=u0PKN!cO3+vGo<`>nxlR5nJusmwzPpZc%_rZOk5 z>8%vxd$o{n^_}g&I12lv+heQMpT(hVihEPzg0?MKBuyMxe_~>|1vHw}#V=><0$>#d zn26rLg!gxnC&2RF|0fG)MogCkfcy#2vV#Jc$qmqHZ4Moz6_myMZYN;CY6YI3LJ&uT zcD|ZXr-I@nzZWguok{mXkFIK#mVTH5L^)AiMAp(EwB_l>T9JXgVkaX8Gf&}UwUV7= zEwYRugq+ZVO-J6VjogPaWS@e0A^TmvFY0E^z3h94FLHZZ%Q2QQv(7ND`xYAP2&FDW zGv0CAwQA{uea2BE8TfAQCV{Kp^*bY8sLA(VkK(Wk_minNMg$A*k@ogJ7P}U9h)^Me zVRh5p^>HgblWW|}ED(Nw>DTPMORM%R<|cZd^37)9+2VGw?I-@|SBUKqeo&nPppE`d zA^vM+?sw>a3I7$OU)|5I#GEu&TeHf-%}}3F4($Z`hiYMuWV(qpwR&Hy=QJ#46Ip`@ zm|COU2+&paF#)X?u#`~-3hxg%u6?(67aN%Y#GDw>80A8RRO>l$?xK>XX+^5#HW^t6 z^NMuhF$$yUv?oIFq!>MFxV>&?P+^K!8d+yu*=0eYnsyTMJyKN^b}x zEERBZ2I|1u!NA@{wb)V22=pOlR8yEgXI3+okZ7Y8+rIsn+OZvS_BV)-F*nai|*`HAH&1iVF?-#}7k%Ss{~3)Ouam zlu<;k0=K=}JIH2azyTX(b z;It7vy27Q;9}+UttGf>;V&ax@qWK(j7Ef0%S(7icJ&an*!a>3RPJJ=AGl+I=yM=&P zJ=X-wNuE>L^d>rmu*#Ox!oV zHjBUiPZ9geqx7$c@x0P+uAZuz4o34QmfHzYu=+~jPM>FyhbrJNxCoL3rB1)BIZT5n zn6mJQpB|ozYuKH1e$Bq%P6MlE!w$H-*O%u&uiB#)gP9;~7v~AwclnzCbyj@QMzB}x z=nzFZh8le=`o%z&`nhuXpjG(=qWos;Fl@bF5vo^nyIr6M2_;k~O0lU~#A^@tu!z1~ zd!^tLBjZsEzby`-x)`EdE;d=x4{g}wDNyR{yKd^oUfjeps-{OMjnX&DcBLyx4?oQ- zyaM<(hr4qa0N^Wiso8&~a{rI`;xAA}{=p0VtuhGB{ro$n0%aRyfM3De5QaS97V+ev zTDUDAmwF3O_*BJTicClzYB}BXAs@ zlQUWp%P)w6i9%uPOMXmDE7Q^c2+BHfJ*>C?5gD9utq?05hPIeo;JN&yaWd~(`?J}nAx)zG)m zSDgOl+ZB3RPMvcen(q1LCOGW5#aA*Iat1fKcd|T%g>iJ(E7d(lonw>sQljB59yYKy znQ~5woU&qjqu)t6aG0^W465JN9s^~|Y1en6hi+%O@^qsoo9YGXMCIhBrnl;@*Vu&T z8QgGA%xd%e?UF(JVyyfO!0eT;%jiE-!v9&^_!&4aIUc|c8HCj*D(k^X33W9{WmME? z1j|Z9|MDA>x}AkYFHyim{s3fdUU4D%!`kY@nReOJICQoc7EEn0PVJ5=9(UhtUo}#< zf$Y>5;=(qYa_y)k)+qbE^uFdBW^&uYS##l(luf8^q4A=2g| zr2==$eDu&^z{5akG7N(BVJ63S%$cm^cKB1xh;=lEuRe^(czVFG^e9%Fk;AD^M2 zl+!i^nx(fu<)o0~!)?M*GY3=6N}+naL!U&vPTGoGLEh(A@myB!e$00UF`BYWA^w;^ zq5tim;O|T&& zdI&);OtZ8=GN}}tHWHk+%r!;y9&8|)iCvO#8)ZghCO(*n6I6xcV8=;0b&-%r##oe*E*V@C@l|<4p_hUv)P2Ewr+vkqkA=n6@9hx99TQ(B`=U?J~Ct(pI?1YJfDq|Z!?;muB z;TXyluO)4c(zV(HMP~0 z8B1j!`S)~#7Z{s%>rJV$?S?ZT@wihFcemADuUrW#K2d5KHiK_hdQTIJ8Swach_4>T zJ8j633$4B}E4r=BviU+n3v}av2(ru|roa8ZfTWaYC<|6#ModVYZ&(h;A|;TOUVcAs zhP6Rj)?p&hcJNS-&>fi~ovNV75{Po68rAyKqZayj$Xik#us@)p`!SZ22T9&X+Ft(-n5UpIpEZl=Te$)P49Y+ z+Ceon7i~A_&FsDipGdf2#Fm!LJjr|>X;{jaDxBCCBHbvV$b~leVKeD+F{QB$R19pH z*!B+49`o>1JN>K3-q7}`U@=>OnGa+vxKP>rU#wlUJNCY&++OIcx1>L`sTLDjF~}j3V9;QjarZ6unHHlM zN>6w2* zjD)(7>Njk>!KehY$kDn9uajG?F4xn$VCr_Ap7L_97wuuKLfgh*#Xe^DVK<|2x3pH% zLm*M^tu7zmnDYTe`;$yo{9_>uXx-%Dk_=dS&f<9d}6j*Hr32|z-|fI9GhA*KK8ph$vz zmpS%pI|E?X0|9Go9uJo_gq>j0Mm_Tog=RSQ*bAD4>vGQ_vx{Ctf@bDyGFYJ4+l6n?Q4_sUYH| zCJlUyoP9o1JeZxz=24$UZEU+2)r-QT+vJog_} zXc3aAaSiu^9dg;E%M~^gzKF*4!GNF)$CweUqY*s{9{4R$nXt%nqef@SN`4_>4l#NU z5fk6C` zN(r3BE`$)MmD4cF=7i6;eeq}w%Yx7GX!e~7o3Z5#m@sq&(gDAP@Q;#Htwj_qxvZ2} z-A(c#zNc-N5}&OQU;)N;xQ7=9SIU&>M_y=0+aG(mt9uz|X*%;!cxcQbdy_`kgVfbh zsBUAM)kIU@_qX(pz#GZIY=Cy)0kq@4aJ&DPiI@m^Nm+nyw4YWaOCT;LWKr%_Mj${^ z22B=EDr$>F@<>uI8qUM-L+y6Vlcs@hy=gykf8_bl-jv*2S3(&g=n&-;tP|20-qthu znJuoE(3+l|7J)XykjbKv(3xy*?mN|Cj5gI4arD?phlwN9>E^e1DLp<{o9Hc|?WN%% zXsdprHL6c+{kemxSPi=^YmSNT&c+cn@f=5*;U`O^vD}oB>S{y}yS2MW#!Wk{&6fFH zL`jK`@NV@8dbG+oo;BzdpQ#21@)A^lnuT))yX+~bcQImvug_Sujkeou^?Ie9BMZ2e zu4doS+YihGe;>2-FmmJAka)a$LllMUK5Dm0S|j*^#?NZN9v?M8XIXIB9qLJOq|e3p z?VUFveBzDlipN^dpx#dP=wkON-65-N+voO|`svRSq{L$8A1xXxyG zH?ifBtC@`$Ny+8_M`jS$ZeyW~mj@_!{}ia=rWMp?BHRf(Yg9k~G&1KJZ(9R= zy9SM2+WhAmwj?bo8ma31A2pG}B^s&q!0nEY(I6V+WX*c&Vv#${oAZ|8eao4WO@d(b zG<=~b@^3}m;?dO^{GVj~*5-aVy^N!%zwj0FI_{tAr6TD2Zdl661A115QKE<7n^5Hv zNsJbK7TvG#*KRB)c>m_+1zbS)*a2dj0et_3A^#?@*O$fbLX(yUq-J09hE$^DN3{IxMa zS`M@sWh%_a`#nI*4=^CUt`rotp%&RPiH;&$7cTI6S^+fhl0WqZO2 zpsgt8eKHP33EI`bIfN>y4e8|^WG0r zzH%8e-?WvD;HBw-4(6c436I)F!{gW@T+f&dB?dET^Um^R!*5UJlV!Nw*HpWjwUY} zDF6V2|DOT#d-32;V8VX^Ch*iNbS?jV#W+FEC3n4rzCUZTU{Yc|a^T&G%wFxc*eFk* z=hZc*NQQvvj|0lVIwK4HQ~Knrhv^J{c%Ohn9yik27x9=wM4jhSzg&}#r+y?3jSb|L za!Y5e&^wATKqi3GAJHvyGV*i>8beLyfqts<#UA7-*>)YMc>)i`reQb+aa8Hq;xw8wHtsTo94~JNtDn4loP7WDgC$Il(RkRI z=fnfl_n8_i8bd!h-!EMF>Akj4s*>IhwjKIXLhsjrkSa>8ob!Q;(%38`Fd;^cxw zd_8hn|FN&Q@&lwqXHZT*T9ofXv#!08u76wbtXKC+k67Ut0tm8wmnvlt3t7YJdGJ() zdY3ob?@>QDxur)8>U#_V%8j}D3FGGhoz0~fIED`^j)BtqXqf5(>jMwTBh0Y|m;B>& zX~w&==gNLmR-~J#yuYq+lE^s+qHjW zA*$sVkH4}S8>t{pz1_5r@Q1*s@2+$GKU6>h*mX?|!g97OYR6Y*lDuPG;S$#r+hvjR zo;yPvEZ{Q)eE+7{_{X{axVB_$97SyavGpJS@_J&Pa6rM4ALipN zcV7f2XGw4&C_4H)Fk}-y{1UNNj#95n!zagQZ)fmB*erV31=rmv%08mC{`U3KhBtmh zEd+L)sk=3iY9#ALs<<*s>@Lc3!I#E_^@WtY?=MGrw0H9o?((M&6o(CnKl|mm-Zwyh zg!kP1+jZoXE|KK;-=F$7-~0dV)VLzHJkin6S6NB^q=I30C(hC1>l2$sZEsQX-@adS z4NurYt*OFyS?2kuXUIk@V^ZTe8>oB{=RUicL$p^81!dPR-HWE&mt>mKQ~*96L2`nX z(VkZ-x<#QDTHw{_5T0gj#o_)Pyh2mqN}eM__7UyuS;0F`(A-%k&|0#y!<-n>l{5!Qpln|i;EV?p-#JjBQI(uuP0ZlZNE!T|T zSqEgz9ODmYCl~#(ict>6=jHWDcg3Ke(@E6t;8ot>-*x}g&-xl|Tv;U6x&V%y0Qg>M z)c;#!mvuI_xBZoBXygDtc=W`P znZuR`$80p%E+aKNWyOAMTs{ejXIfE182@mt!AKTCcOZ#Ln@6}7R}Hmgg`_4a;uVsZ z;^Dfl7Q4ZbgEfJy%KvUTOWFRvKl*P94=8CFI@!N2i*x(i z(SPZ!7`XKa4d>*vKrFfkDt`+(&&NEuhT8-|v(?h@$>`ZjtDF^U>dj|`t}crqt#v0B zR~OFDA;e?0lHs;YVJ;bpiFaG_P5{Pc-Wp>4-huAQRAtYon-q_`FFFBydHk+c3Y`iB zLJnA2bWf%~HAcM7K~AcU9^L{1i88=+&A%-v{l3KMm$K5UAFoqc2C!kmculBQegt36 zn90Yk4Em-3A`J~=+F)>?(`*??NEPu$^MaT|d+ysh+42QVga;-oABL~kX9p<-BQUaa z#uG;%KOy2^qJ%89ALh8o9NhK~8E`^~F$~=x{dU}GXAttNXD+r3tHJyI+-ZH{dfC=;8WCroXx6mR%Dot0LL{$JGSJV@Uw~Ik`l~bDr zsnV>pB?QrT)mE>@2$2`lgE(CYr!tYkZ+>GU`w*+iCkRD{`*1eUV0ZiN;prj5$1$jr zmgvayBR&~1JOv9$R|{M00-d)yiYfTqWy+)uB+>1lFY>mxx={Vxp*7jFlWBA3EcPyi zI56*99P1C>@gbuO(_lLA^c0^^@J^Dm>d@oBWzU02?n*CJS*ba7O>Ah{iKA-ApzB9` z7Q7d>o(hWrI~HSMD=1Z`Qm_CD?pTOowARu{<2|lqg-ofUQ8$P8we{LeI{Y9Kg_@UDUx`#FzMbk`T>Anc_j(c`cSzG@)l_?U{B>@6h0S5YvBFwGg&wsms~bPb z`qHiA+rJdPce2(GRdX#=0a|SFqL>d#8_RI;3n?LF;4ZqSAcNVubsXj3-Rt&72MJg> zO*5yRi%`MTF|aH`Zh6xo)E!WgS?{$ssqXJxqjG2AN=1%3B$zl)+TG{HwLir=z;A16 z|3NMl#-Cve2eW+6O!R&sJi42V&SY0rOL0L1F}Z%*^yR5Xqy>z5J6Gj>$a7w4~X# zUK%Iy1~?QD=6;$nH)|25O;)vb){PFIm)?&IrY?Ozvg7?QK)?jN(~6)cpXrX(Ct{GH zLtcaripl5&qaqZHamg-K`o#&x&&+n=lpz_YZ2*J}T3M%iC5rFm=!Jl(UC3LjRJBF< z425h$?^~fXy{of#)nd1*?aD4?dBJRLz+S%l@!E~k_1f-kc6mv&R!-#iLhqkqomWup zO>7Ai0e~g}{QoO`{lB^Fe+Tuq0QWWJ`bv`w$mhKx>J>9$4rroz?Jb}nUI1&zUe1S? zSmMtLo3?}%h#9EsO!WV-LhS$OL9#53PdqDuHMUaX;PjwJg)IU)tidi7oDti)l_ApH zB2yrrEAq)GK-jgG)rT=cj#GDdINALJ&Nqj=fW%}vO^XOazNzV^wUnuFP2R-jxJ>dk zQP^it;WJ8SSo6;%Si0dTmRhw@opj6P79`o0bw9;(KkKPzgN z;0V0fQAu__%^bjEyE_WTZ2iv1f~5p3vjNG9Uu;j1LpYxwvzp@wnLKyF029Vq<3;J&@2(Kjazx?)# zfq2PlS^&}_-lrApz}Xc0dKJwa`Q?*Iu%sSTVp6hZYEso&`67>}l5{FKjoiCCo(*xA zccoOgBA|={ut=^ z>L>A=rody%n*MpQaPZcy<|T`K{xv;^zS+)N;%O!q@9hF@hVzC;4E7xvQxLq-#o#XM z<~1;r3gV}LtlBmFEsggfA%HcZ+oq%2BO?+0zdWhfg5@QZA_jI+C>S@Zos#BhMVCP8 z^)`=SG{T^s`qvo1EPwQikvoF^oR!;czzAv%Q>IxmUdi#rCMq8;Yu13%$&o6$w=FUv zZpc$te?i_-a~+m$>wJSV#ic^suFL5of!M;g#o#1Bp9&<7$NW%hQBQDYGX&rJSj=?V zF83IO<8a!hs>sKwR_y4A%98MSq{+L(=6*;h`;T}EN#^w`V2(1;hU6yu47VK_*OM@uQI_XiM%20Sw8$<` zoW^Jy;pjmim$|Xefnr(Zpa#~Q7;V1OZzX-$+>3PtE0C9PhQ0PHm21_ei65Qc9vU(Gj{x+xx*PL9b?MnZ#t(U`eA>6=Zx znrxzH8hv>}cJ+cD=u`_^5)@7$$CBo129df;*kfW?t%xSp#FZpP5VCB z+zN+1!u(SgnGi3Qlt|)?k6)gPzwVVK?5rgM^W3-gGl*H%pberT7E@D(qS+k&7JC!7 zMP`!cv(cT7uVy@;r3{Fq6 zIL-@H_-+&)+A`7hUH&j;gYED!AN|C(2DQ zq4D~D3cX*Y)BjXk`Z`uM4v>)kKeVF%w{+y}ZLDnmI$9O+=Q2Krvq?YnigLodHdiWF zN0I!R8s=yzLDIKL(=R8MVW9?7>5Or=?QC%^L9G+xuu^ZK>1xqruj^z|uAe_Fa*$!D zGa>a*?s>-%x*uekW-6!^bU%gKZtROcSV4W}E=ft%iLHoJ@-E3NQ=EO$Cl{N&Bk5D} zidCGvI@h!Nf)1mHUDzG?-ZJ|c;Zqcctx*vaI{V2+r;Ih%VfTXn2UvvR#m+DrrXJJ` zy7`Sh$}%hZ$L-42fQ+GyHvtw@Kty1>aFHEbeGtof>s%8zFCf&Q1r@=2Nhv;#r+)?> zuMp#>c;+<&pnc`={iiYHPwUcNi@$V#{#{z%-s1OquyGV0G!O$!->r8j3>*~gIHmpm z)<*7j7vfAhnunR$j6mK|@kO$0DhtQ7%xTP}JA)<`5xZ@q z7>soIF)hq~F3&UzNC#}lvS>nI4nhN$QmOC|jMHu$wkzFmQHA5I2iZOW!_vEFI2L-7 zyG?MZhI2nRj6&p*MJ~T~h$3hp?e_xaZGxO$9x^DTudLB+89veH;7#Fh=0mzaDv+cC zv4-lWFu6Z}Gt>DiV!psTAr%0`?f~C^j~KvPSpR`oxA>^wyK1f^24#oC)==yKBU1(Uo^L3oHov3n=vfE)tx*ARwBx~Rd1dk?j8`W$Tlm&%r6azUBc~Vvt+%PZ8~_Vl}4=$PED?!U8DP zKdo~8sYt)>cKGw}04jX|H~gzV6^R_P2B?+)sT&mj%^ND>uMXKXl(Lg}EwjVy`NG4T zDqCXO1Z!;+PhA7&o=i1vU*kCUQV2ijpp5uh)~YvIo+jRoL&|8OgyLkgk`E5z!D8LQ03k9G%_JV5^po^WI}VVH_%;r=RQ7=P8HGvaBgb~@54?By zRLR|B58(UU*nw(Uy1Gvq@C*nzCD8%I^pWwo3<;L!4_vjzlLUw*Rk}|Ed|i{MLM6KZ zzq)2#e|FRE|GMG<{jXYPjz1U_3V<#a&=Y44fbpNa?f!&|?vI;E(GjqBRNvl6@t1YM zfBuhO{=+YUM1q2(WDh?AfJrA@P7DYUMW9PVvI?D!Q0YuBuQV-$mbhkQ9E1iiv9n|v z5k+}o=EAsc*giDG&h1Z3F*QeO(2tan5I_xlVakV33Yh}Nfe}Uzsn2^IVaJ@g2!49V zgm1@-C_o9Tp00bpq#jgSnAmWg>4xMPD{c0K_53!tAL=%DPGaPi4%girq(bY{-Y^Cg zODQYm`+P9m2+R)#C^#dL_f+VOq+b`_LH4j_>~Os0$!?pWRH9M0``l^wo`YrNXhw;? zay9SH8V)Qk@xrii=9$IneLE*&UIYl&hN-@R($Z)QU=i+Z?L`$sY#zFqPUo2Z+xHEi zVwUprb$%Vhd`r~wdD!m@1;j>Ps)pw#i_v zx1?Z3Yf4wQ05qO5yaQ4KB0-UzGc6*>EyB=f#n&LFBMxXY=&M?Bygv>WrQ7C79vA`_ zbDyoeTj%!AqIqWNSVL?#)hw2)=A9*nk+lo#d{2)$HEH9al{C%|Ddx+jZn7R;u)RgB z{DV0sw-zM{C{sYA!r5W<6YO0|Dc#n)G{?{naz^oU-~t7j=Ai6dr4F z+7m&N=PcJmW6k3>`+^!{%O9>i>4K9E`>NAa&dji=+TDKdWSd&el$>J<9OVK6Wt0A!6eYRY8HV*Oc5zg8f&Jha@k!!hyGv=m=2Dph$Q!Exkm+@bBk z{W%##NO%n$*!s)-I)}#&NngSp~~cZ_{C6+`poIn!(K) zP=IQ^dO8oOVXf$wJuK#J%L%juo}NR+l;V1{B~9K4Wz<7*N2bw$U2>AnAltttYluz<#cKZPq2@oUWB;v>@UZ1jI<`^vDawykZEZcvaG z=@yXg?(Xge=>|bMrCUNeB&55$8|m%_>HZe(|mlBB|O8+DG2V*-XC=shkU^R5apRDqV z3`f=koti5TTQ5$tfW3!}xXvd(4tSgQ9_+9nLtZsX?=<^Xyr-OA=lmLyO|%Dm;TTm@ zJBSc*{f(SqJ`o*kkt5!Hnt~fWpUT{b<#LAbM*^&ngpc!c+TOp37#$zuK~n+te*;{- z{?lUhul8?a>0qL7U}H=DV~hK7@(1WV4IcMA;Jp9+7mufg!k=R}wp%)Ar%M$IVkXG- z(E9@FWO@#wpjW!Y$ib&giSwmiQ>uu`Vv#-dhwMFblBgHL zu!_))O-0hVgjVkM@U^9_ER{C%Q><>4FrQ?Hqa}qL8>iLFfW<Q212)8(p@iJ0gDC$}nhXmhmVMP_iWt-oKE@g~wV zx2Z91A*ZZB2Sx#T(rWKT=Tcck)PmiY`xSNMy5Qp&DaWqv+S~W>KK#Aph@N#KDND82 z9ERu>L<$}e7>-?mTAKa~u4libHXh?v(*EMI2(V_G06o}$n#%uW-Tr0>`}x_gq)GB> z0Qo8kK;%9A3JD{!MRSY+&zup;6kU6MaUBRs)%>P9m)cjr#^=A0CRZO*AYs`f9Ip<2#RWST&4o3GT3$^PXe%7WdYwmd3)bHzAmQB&#O~}8CPlOqk?lnn zZRS9PtCiL!4g|rC(wc=^6IHERv2wj^9vYc?fzXbRA%%G|=6tmSujI10#LsphzUit% zIr{FvbX8Ys%fHjNcvaE;NP9d&m^spTmGBz#z4J!uN&B!h7FHfXI82WwOTs&BR|1B< z8U~{$$r0eI+NQ=s^}>ce*GYaM-eWbw#2m@28)5^*LT=oR*7Y`xL2G(STxj*nuLane ziXf0Dq)LVsUPWM(izT6^X~IF_;8VP!Z7Y^qk2-baXIY9Qrd|k+oaZ(U&dbs-**cZG z!_)-xA4D+9M5@?PK&z)yt5nus0WU%?T)q<#Z2BhkezbP?c%T6OLJN&s$O*}TmHMj} zVy;6(Wsy8%;?!V^DY_A=?CHjY&`6%t{G&20l>R`f}#xDJU6-#OWusTl2`Z>C z%2g5y4TrCM8=KQpug!v2UW?{_f{|ahdakA8=_~SCI%f|GXV=SNBO?SdW_V9!l0X7^SF(LDEojagMl zK_fh%WB+KFt9EjHl2#P+0>di93DGhIJ$KG9J|o+a`>aIp3-VEMhg&vb0W1|CO|hy- zXt+8aS*0XLY253=TAQsa(_WIJ+7MPEjf#^jYg;nAcSvBT`e!sAgBv<`I|f#mu%`i9 z9D#Gh8FEpcn%8+S@EMG-M*Z`oTuI{x{?ApIyLw9c1PU<^2P!Htg+fwP`EIjhBvjda zd9aL9xNVUiEV`@Tn>QKdXbnGJfySflWSfQDTQLirzlAQ->^=M)7 zgxFWMm@!!?@5HU+ltomaMG>-?Gl!tTTl2(?Be?{tU;{6bTu`&eviC2_dPJ<{FAw;8 zv-q4s31xY7!4Om0Rvu8IDnC@Ik9RMnzjvLKf@s!aBc{P=*`L?6pH!PQ#=84$Uj%>S zFHa7{lwrVt|I^|6pN9G~ru_WuuY>$QY!?`Ld>l;Oq_COt_Il}3SSS$9D@CQTZNf8Z z9Sgrlj7L|3dc4SXP^n-|Hp*f^>}@3#^r$E1)ZUt+3J&E?A6Yvk*Uu#j@=J%gh0hf+LGW&T#hSz_lNG* zSZh1JT}49$7C2hI;JWv>^sUFwx|RZgjJWJ+%Bb9Z0^3$y4$s*`8T%{^OitCvluGCM zc8Wpcg0?(cRu->I9Ex26b}{ovKB^N5ZnOs^-b_fbmUI$iPTBA|U&Cy^=HO@-_6Mw_ zyh#i@|A>PDIiqog46$HVJ(EC*=YCag2teGh{EN^1#{MciG5U z4>+gkO?u8vzcl{Rg8dk1Ufi!GKL(l#AkgUiPXf(vRNFB?kQw_PWRBW031u&u&AM3a zDFQ&!Wz~F;cw%?w99{9;p(pG# zZK0}2gy}y^JS7hzq-c@<0E(fcz$ioX{7vEsWL6Mc79N%w>>HyOc#K;x5CM#?_9!MN|jOmRg?KTC8LvvvYEZEj zpP)L67YW@!ycU9Y|AaVW$CWB;RSS~sNUoDxAl7_A4h`Q(Kt;qvh&-B&s7WGgS=hOx}(RLNVMHwfLl2jv%Nl*%zQ>w=$igy$vN2%91LEwj)yBF!rZC?>86P z!PQvmw&s6f(_2s#wIlURc88pc?<(-U;K2=%OW^%4Egz4DtBP2D1q~z&HlhCW_ST;P z<=+LFU)pJYJ;KO~JyOLto={{z8$A$3%2Sf%HW7(Al_n1u=L=9Abb+!!n=Nf1%H08| z;P$zlu5f1 zuNfxqNB44(c_&hAO4|_A%@vH?KEqJuMLmbV{uFKJXE5mCQ-yt@Izq+vbpx}ouL?tB zj%p}Tji&3qrIRUx6t!+J{#Gc{zhL;ql^S28`=B&iTIM_@OmgrCmQz91D>Danj>|n& z8Rz^bRnD4wzJz9p_GuMwEKU*(J`h}82@A}Osv*cbnJrhqcuehLUy#o4x=3U}G(mC; zp@l`mzJ*P=BJ`L$-Zj!m4wtf~R!29S=-R4x(|Uq#b1gwk!*#4yo0oJ&N5At#PWfGu zIJPS=XRT~Tg-T+(EyX@VYGQr=!N?zH^a+0@+=uZD8LY2PiXxU*u&=U4Xg*~^UNLu- zDV{zh4A=zA6oZUku@dy_yX5VC@S`7%vK}5mUKB&O(-$X@PrG}4Xov< zUz(KJI2p=B&23Kdkr?z#O7AKQ&*OsOHKe!=MOFIOjfd95(~vaD$;A}KGWJ51u)81LE(KQ}KF2hL*sk>mWqx9}kpmW;A((b8lb?V)lvMl1 z4`)>$OzUgkm+koh(<_dwu-ysM8kmn%twvN(38myzcC8#)+pxOTXoL#62d=7J+>P59ZJA`Eqvl`hcF}Pfz{D6$=%9=#ixPb7Kd&W*?No1aZk)hVva-SPda!8N{j<51YUWn#2kKgw{W20Ry%$Vc%lc%$G*JJP0qVE zvMbGoGwL>$5GPPj#( z=w~gZFf1&e6*mTQ@v<--`E>|iu6J!(#7yGbR%n-5mj)%|yT~K87y$y=Ch-vupJ7sl zrYNMd-Ez@~%DTWOS>SZ~pYq`F<7|+i2X1lr-g}ASUAiK)IVWMS>rsTg{wQDhoF@|& zns-8)I(D}=6^X74MaOR+3hqlZQ+suksK zZy00}+qfxr+zj8LKvt`0A7g#_sllph_*ZjNv9R5bFnQwZ9z@DD0kx>%gYrm)HQgoO zx|+P$g-0ZW`B+j;!RX5F7Ihio*Q}$^LjpCn3(&>=127gpZRA!}+@kuVk`X>FUhB^q z!|s?6L1cvV6`O=P)qVF&+b3sf_Q}8%ikn9Nd&0g%C-=DcIBIM5Ft#{n(x!r<7SRUP zmpswOBtnaD?v8PiEDiS{9WK~>N-ai;5=Ij1E_TKS)%20@{->sQ7Gp=Cd5Y>u@a95P z?7Ej$MtsqvpWZN-eC0(N;ha+Sgc`Z4J2|on$Rk2JSXaImh>PojNl!^R%Fua({LL#- zEn@f(Cj(SNGzN*N&dcl#%TF0$vphQDk*5l{>t&wGX23XmJ-{1@YNzXWRg>y| zZv3`s1i06F&4?llNzZ-zFe}~Mz6(pHeek1qLHPtTgQ;Y0W`5D}o=xJx_euKhU9N9G zIJ@d5DMW0l=Z2b4(L~k8Mwb<9!?i1CmL46cRb=mc`YOzeAsO*CIl6n{4SyNCFI+t9 z#t8j{vtzjXw-vH1Fe32$>NHaPBohfV{+jRJg{AnhFbm%p|8siZRY09UhOw8}D*8^U zp>g^-ag>$cf@A0zc`GqQm69Ai-dP_uP7K1w_G`xtf;!gx@xy&8uv}gmiBn%u>aEeU zr!q8E2AhM@WKSH2wArOdgs$R0XXF#dY5U%@GF?3g@W^(5Iy5 zr)IB!ce>yX3AM~%)Y8lq;wl%HI=O(C(NiqR$J&1itwsolIp9+b`zmItq|gnbtoF9X z2~YTtxT0g_qcmPj5oR$|{_AuL(015$aA-6P#e>tFIA_}0lRWAiIx!lKp$95O@4%GG zh_7+Rutq+qb$q8&?vp}aE59)zd37Q|H%FGePTn9bkffY~LwT)1F`R!M=z;vw+w3X* zrtPV7#qEp2!`AgM;ih*mZ3fKM{d!kK`dp(}+6l?rFZez;vNgmiD^8bzdyCj(NTf zvqA&A(zF;q{2swea%ycR;Uc-r_WrkPkmMJD0RXtN76OmWohdh!u@W3?;DXmFQ0X#68g@u$wkUYo59b;bNIVxCF$r!}bq7nCX(=Rg9AwfNz z6Y4LX*|?%Pj>J>dekJZ#dB)-##mBEX*afRszaO4q4<+!y9)ne^v1snK&p9WM%0NC< z+r{~cn$5wYZ*X=Sc5icM145yny`%-r^@7CR1blLQIRi~RL^8D&-g(w*uoq71S}T*^ zb(YikT#@(9CkT4oCX*hXF;|k$(CvJ-_c<6JF5!rqaC8V^RNkVIaBFIxrj*}`H=^k) zx8AzE1I3!(*LP*a#ZNo!(Hhn{+o#hoA%aGGqhYTjHh?!&R632gtpYKB6|;>D(UHOO z@wd~1OoeCOJ=l{cpfCPNC&}OGuE!n{V3^>SGsC{}ti>uLlG_C^$O9tcv0wRRro!8< zEEqx~HJI6a;225mQvr$ITQG! zGnJ*a$Rm*Kvm97r`VPIBqM+L_Vpxb#k~gk4J{U3UBr;6fq%^L2SxCmDQ?`B>9{3nk z=OYcR>dVf3kMkJZGAo=^`2(-JEiH0$s}}3$W}NxUlG>d=!o<}4$hu-^L4I6_EN!W8RDNS`y(9~*e{w|NAA}Fu|ex7Jcun*zF2gT{e@9Q$Q zD;A>4QU;Y+;3N!cXaOE#rBoBet}uIhn-f=Yy$1!4Y>~Q2relW6VFau|5dW^gJ|E03 zJxxS)f8(Gt-8|IPuACn2fs@L*JB0S(=xA!XHJT?M1&^4ZWM&mQPxV%pPC0dun}o#Z z6=wMdl?)a(^K-kG!QV}OZo)`opl1%w)WU^q6*0_06fmJ+P%?I)@k^KpvJ z=SP#zg${?56p7w@okbNdyfS%8RGa#MBLDfMd#~LggYmo^nx=c}j>g3<`<+zmT~+Sr z-oOWfGIvUrg)D3#F5Q~5zS}`ol3k2^PPV`ZE`WJZzIc&%8pgEo>BN>Bk?y7tEV!ov z#dC3!<|l@YqBVsh@WnNax1k_++Mu~e&eai`TSsUTBMmB2A}=Q2%cZ~82?rbSnt$Uy zbl#UNgm-PB9f#&MoE>mIUZH}C1pf62Q$?C;t>!kYqt3I~id|vw7wxA6x#VDc681Cm zIhF22T9v*O+j1nDW%*IAn=9uOUqS}IFjH;4r6ith`e-)mZT2ns3%^J|ZnYIwFE&`Z z0f?bPXhI{BhPM0ac|9JqTVNF_W`!2Z1Zdt2Oe#upq_>6sA{$W-E<0+aL|V|YXFn)VE4T?FxoffWCwkOncvT|dT|{Sp@U zlL?CVTQM`2@3P3#UU_tG;LbHF(0DFDw@)S!-adX{VRIZWCC)bNI5CFUEel4k!ngmpZajrS8aMd%dEW zZOx&>+6R$3e69z@`s$R+>Yi;${O#uvIURpBT;e_ z!Lm?5O$HN+imC%|R&9Behvc*g8G7P>w%0RnDHl-LcQBHt`AGj2PQM{Z)f=)rI?R z3^|k-PHxvTxZbGol*@x`F4^9lpeZv#bk|Q(8d)I&an<%kN!8p}%06$?sAM^<6}<$P z34`BB79XZFU0s=e9s%bGrqLKsU4Nq(gK)+!oBP1%5g$?(=BN3fr_F=iSMK%3B(B(` z)ReY0nCE&>(2Z2MtIOU5iE$*I5b{XehW;df&;FSg9AX#+UAj9ilGfe>=Q4ZD0#E0SLPQ$BRGEvGfB@pu+!;4erP1k1)rC{c95W z_Is0Qk^8HTgCKjjZf6c!X==QhApCnrIe|hiFD9Qpv6m_Jt9gsgS)#2lPwg|nf=gqg za+onr1x0E1$XvKb6E27yU5nqs%&{m9sK1H|M2c$`Hr!Btn%eF&af~%wpPs>8Jb zYK-x1Vvf>_FQ|lj2^;MG6_&n8Nl~Qa^cwtZw$gJtU$52{d=AmvvQd+F4SAG1<^!Z( zOU|iXFA6;mmfW^?!*F*b69yNgtM1V3f2$~HLYCDw0QmU>_!<34OZ~rP%3m=|mXbi^ zp+%~{P&!@WURl{8@N$e6wt9~LIi9kM8CdRv9ReHB_wxfLhK4tE4YBG zds30wCgie6TD;UaQZGYD@+`5|leYK$WF7jYpNCaA3tk_mG}6Jah1d-dgz|2DGclp> zRVeMAQ86i+x)wuFX`3C6w&XM@>~9!}#Z^yg$M|QRml#MXg9GS2sv7)(g5nR9e)aXg zT5o=Q^Js&~;k1v8)4q-mFo-y+fxaVG?9=J0b{R0? z1(mFbP)uH*k?Zkn)&`UAR$>_qK1*_d8a-4~ne$7ie!{LJm<#Qc=4My)2ge32bcn!N zixC~&{X);X2h9~g02*&nJ!W>#W9l_e4ZK&_^-^LAB?-x}mc^Qi6N^X#^EU2M^Py?tQlk5Mi#TZo zGrH~#y04I%{<#j)Rds7KfCaArYhm#xE&10g{P#|%AJwscEJzrK*;5`QzneQ$IrTK{ zC`MwiV9*7tYSGiQ4@^d9B?XBgP_J zr%1}0pRW1zu)k7*1nQvhCfr~aQoznQX@$70*<|)w_=Z+vyXGK^5b1=>fx3Tj`jRuD zg~|EkwR`vGSg@zWDu$*UN$cdKr~r<^VGtwA#_KhwQ${U_ zQP_dfQn205h-`|0{pt2Dui>+zdb|t=^kxa_?o4=Z3zlwr0ht26hnm@%fHPOA8dnDMNsr>aH$|Qb}C_UIo4t}I`KD;9Q7sk zS(OvsEbG4YYi>$RCQ(UhwD$4NgdaJ!qb#2Hopm_vs5hq&;nDWXn(j_zAe!?fqSrb1 z&kf466wn}5ouJbb1=V86?abA&9_LB?&%*o=F)Lapcq729rn zI-Xm9%CV@LThC}raLk9;HFz`SJcBTPFyN^`KE&v251sh}LBFatpau^v19w<@q%omc zg)~>6nmDH=RW{0@UTU>3N*{Er?pNNb$BdLrCyr1B0Inba@*imJ`vKywA?26a;g7E$ z!FfR zA;aWhBHET77w@dmW6S8Dw|++Omh*VySVW#D*Quz+{Hy}pxxmJ-Tves{^Q%5h5P#v_ zHtN+{(#C2W+d)aoXW_c9#9LJS4j^qvNb0+Iw26`UBlVVYEIRn7c2jcM~`_g~e)&2vW zU%~so^{XGh`W~C50aC(8H2_p5ed8?30x)?63CL_kAApU16Sg9HD)vyeg7=n9k~~!a zB+rR?vFu>p)!i|;7*-UcRZ-|;34ic6$}aAA@9C(cZE6V+Frj1d#uf{8q|Jdtlg7i0YO|)MlkDR8*rTHJ6=*yVOcNSIzr7)h5J!W z9f@pH*`HmQmlnMJ_A-$+kxUM?qe0;MgFpkBFv%%(p@6ZAzixwfCu!uRpO#`R1x;%k= zUGR(IJu^ciL)a=uUKAfxCrpTQOy@o$AstT1Y+iI`X)6!HxWT;fm)uw}s|z!x1{`@r zbO}%4B2`t|UWW7eOr#+WtB(YJ%5Y`6197?vxA;m+CD&Xs%Bg)a3u;?BKam>(&e`3?B*<;_x-R3V&Y!E6AW5a1w>;ogs@uMou!*MViUW!EA1MG zyHmF8U{}4^zOTk_)$J=)o_1&eN&+A}{HMyZKTibIj}i$$)9)iw)vse!AtT?LW&nQ8 z6nscTn1<82Aj&iRm#UvnN2%VhVK9V?kLt?;qDYqVs-kFOws4DU4{dWpE1cv8P&kB` zMj|f^2;4H+8lK38&aTU%!sE z-rx_je7;cYTe8Ea@znTYra5>`2A-Lu1f_1ojT2o&5<93eKHEylSiJC-#;Q_hhYlA7lErHU?#Zm`iO>G>1faO%G6ozP-#`tJI*ziq=x~0KZ8$Q*C z6w}v(8va|9CG2CaX_OB~U&F)FiXd-@&L){N!5UsVKcle+k7;Ps80N?|ro8 zf(p!Mk9@FZ0QkE9eQbUN|1X;M|6|KP=G#JmwnE@e>ox6oMtinFT#aOA0 zadZVD{`!ova3$~5CY&y^TM2%3jwRm-202z5gvSc&-o`6T7$*JIFZv(=XX^yg@X3d(pr>k zMhvIE6;sW__N-R$D&^vX&8Ye+sXZk5F*P@2gVf~f>gMhvQr;(Q^iIiMf+aJ8qA%n4 zM6N5Z4XK7RPo8#Dt}%X#Q=3;QDjV_$wp~SsOuHpPCCGrr>*6TMarQ9&G{|F9hY z3}M*m8U2|Ps;gTaw;VI}gpAv7d7~YuiOk1XFAglp9|}&t+{1q?g6|OR<6Q-O$^Cr? z3K`01CL=zv5-FH0e*r>h&9sctWWu^bCBR!+7e@}kn|;5qI zUL^C7RyN%x*ih2*XKin?Do5xbOq#Y*F&FKZ984ZZ8fOhpR6y%qq3dX$k{>^2SNj z@j*JYqbA~AyQtX+W<3HcTIBxz#vn^4zwGdH`m9rPN%ZQ)E4{&ETBRK-s^$QRjxw#cx5aj$=FjdCb-`IZS9&8o;pVf zg-dJpchI*UuN$u572_(I-Ur%*Y`vZHQlV#5FZoP=jr&#bR?wX&f8;PBu0)w)uvj#c zdB$d{wQm=7rg?jB@Zh(TM>QP8hdKaFdH~h`l)v;RjNiA)pa1-;(ewwX0F(0L;I=P7 z{`1%1HvYnal|>3REn3B}m{=l$|K(y~5NUwQ;)P~o2f4ZzElyNh_iE-yWF;$@WZ$&D z#Ru&nvRAYPe8%L988O+}!50>*1WaZMu?W7^c@DF(%ql#P5hW)p5TtcvE&iWT8FFAy z2PU{{!ovoiC6$J&QV&g*?S_#{p<0zbDU?L{7iSgsTyuK@hw=xc@^Go-Oxc2yD-LR2^jD!P!YiIMnPzSI#ck+t#?!;$)Qs3-CWB{*2i7?sB8UBh}2tuyR>Q0naQF8kQD>_(4U9xk+b-RrG)^D z#s4}Gut1TYj@nY-pW$<$e6F&Huzr(IHcdDnju3pgh-F^)LcgM>(Q;$Jb(xjAkxFz$d4!VaAbcCvybBYkrwTf5$?Q@jaF`Z-5b~i^CGtkXf=y8MC4tQ~UF zpQ8;E^$vF9_|x=V>Up1URE4xQ?3=Dj^Ej)9n#3Ehf5rePMwKV$0B-jHe*df8NYTW= z@$rK8olS%X5NbZ5uu(RK)nqq|=+JceHrx?RA;y|G<2l_=)APz~8a6Vh`jeffMqAgXL;8(k!}Dws_V9WpW?HZ`-qMcF)7)z>cuDm~qfY@K_qy2q(s68Y1j8OyLrtj;D?FnyKK}p&Q1(-zpsLGjFBHQAb`$IS2A#75d~+1UUYXnXt8d1YQEY;_7GVVHMA(*zb3mAUEf*tO$Zj3rjp@ih zV(J@cpnB`A?bEsy)sDPpQFtU#=zriVg8Q_orU5jO-HsONEhHYiNUAwmU?5!P7{L+f z^-+{j{P{!sj&qK=p0O)m{39fwgd3bxK@ zS-Oxw+sjXq!*J)2j#h{Nv|y&WG^Snv(N_SXe}Y&8hycHwLxKGHzlb#q27h|~vL9Hf zodvJ($1G_m!Yr{b*sLldbC>#hebEGK^Sg|EV)+tBch?MBopSV@Z=A*1dp=^DZcmW9XbRwz}WSy1u0$<6{7T7XJ$X z|4JGBv_iMA@Ao0!ziKz(#P<03B_gOa4k_5SWqRr=Msf4gD@YG@yBNaVJlSrGH}My> zAG-b`!ijw(!tw8RK4yPUD|pn;f=^qZ`*w2qgXD}9tKZTh?}|fKuP$&OIy=vJfgm}| zr(4c*`(z@K?p7KrJABXYFB9zehY5<{C5JRqcL(xD33k=FT_-Lq#!(yFY)gsP7Sa*- z8(%`)%aNM)L{)#OOG{&wa#rn(w(=leSprp6Znk*P-gq>}n%{2uO+CX}MF5gdz@I#k z0sj1f4gE3M^%KDmISI=Z8l;9BrGAjSR~7yZm9S9e)D3&0Suz*rr)KH zCo*uMXSkyaB`QE=f}2VLf}C1`#c`OZ%)C0~YMH|QQeSrUB zv(#fkat_-|NtdXZvli z*EYNJG8FV=1!M8YoY}lm@{$nj(@bP TqPs&f)MyTOwP`XWrN>m%C`Arl$CKu-BS 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 literal 0 HcmV?d00001 diff --git a/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6.zip b/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6.zip new file mode 100644 index 0000000000000000000000000000000000000000..f8f7630f44184022447bf43ef0f725fa0fba9c7b GIT binary patch literal 264240 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%0DPoQB<+}h)V10IUQ!NLCD3yYkryGN5 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≻M*dewbp#k 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%0D??6`d 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 O4C~R*gK|PMw*LbPP>aU^ literal 0 HcmV?d00001 diff --git a/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7.zip b/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7.zip new file mode 100644 index 0000000000000000000000000000000000000000..837826774b6a928b2595402a500a0e8de83d8f96 GIT binary patch literal 322839 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�$ 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%0Dt~l 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 z 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 jlP3#hdQmL}l;BM3@& literal 0 HcmV?d00001 diff --git a/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8.zip b/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8.zip new file mode 100644 index 0000000000000000000000000000000000000000..9cb4a9a4c5c448ba2e839403f9bc7758342310a2 GIT binary patch literal 426782 zcmb@u1#nzhmMtpD7BjPCF{8!I%*@Qp%*+fHS{rZs?=+ye{%|Bl7fN+4U^d0nFjIDGX4b5zAt#l1- zZJdnVoOJEX^c{^E=#-Tpfj+EAVp@PnVOlu5K?4DQ{Pn-Ty~qKsivsus;@R*AM(_AyLnfNfl^?~@IE�X>E*cM=pLaq?&(az_ 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 #l_3>#E*VC(-=BEgYrt7?(<@E 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�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%0AJJptgXvC7@HV77y~4mzZmdiYb*d+RrvW88ja4% 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%0DMT@)fX1Cud?-j6-o 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¬gN6f;Fcy|k&Ym;p;zCpKl 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 IBJkt$f6M16y#N3J literal 0 HcmV?d00001 diff --git a/docs/modular_plans/phase_10_migration_release_readiness_execution_plan_islamic.md b/docs/modular_plans/phase_10_migration_release_readiness_execution_plan_islamic.md new file mode 100644 index 00000000..06e5eea1 --- /dev/null +++ b/docs/modular_plans/phase_10_migration_release_readiness_execution_plan_islamic.md @@ -0,0 +1,1561 @@ +# Phase 10 Execution Plan: Migration, Release, and Production Readiness + +## 1. Purpose + +Phase 10 turns the modular architecture work into a controlled production rollout. + +Earlier phases define and enforce the architecture: + +```text +Phase 1: SchoolContext +Phase 2: Core contracts +Phase 3: Finance +Phase 4: Attendance +Phase 5: Student lifecycle +Phase 6: Communication +Phase 7: Reporting +Phase 8: Controller/API cleanup +Phase 9: Boundary enforcement +``` + +Phase 10 answers the uncomfortable operational questions: + +```text +How do we migrate without breaking the current app? +How do we cut over safely? +How do we validate old vs new behavior? +How do we rollback? +How do we monitor correctness? +How do we prove Islamic Sunday School still works? +How do we prevent this from becoming a never-ending refactor swamp? +``` + +The goal is not to “finish architecture.” Architecture is never finished. It just becomes less embarrassing when guarded properly. + +--- + +## 2. Release Principle + +Do not big-bang rewrite the platform. + +Use controlled vertical releases: + +```text +1. build modular slice +2. run in shadow/parallel where possible +3. compare outputs +4. enable behind feature flag +5. roll out to internal/test school +6. roll out to Islamic Sunday School production tenant +7. monitor +8. remove legacy path after confidence window +``` + +A big-bang release is just a theatrical way to discover all integration bugs at once. Very efficient, in the same way driving into a lake is efficient transportation to the bottom. + +--- + +## 3. Release Scope + +Phase 10 applies to: + +```text +feature flags +data migration +compatibility adapters +parallel run validation +production rollout +rollback plans +monitoring and observability +audit verification +performance checks +security checks +user acceptance testing +staff/admin training +support playbooks +legacy deprecation/removal +post-release governance +``` + +Covered modules: + +```text +SchoolContext +Core Contracts +Finance +Attendance +Students +Communication +Reporting +Controller/API layer +Boundary enforcement +IslamicSundaySchool extension +``` + +--- + +## 4. Target Release Model + +Recommended release model: + +```text +Release Track A: internal/dev validation +Release Track B: staging with production-like data copy +Release Track C: pilot school/tenant +Release Track D: Islamic Sunday School production rollout +Release Track E: broader multi-school rollout +Release Track F: legacy removal +``` + +Each track has explicit entry and exit criteria. + +No track advances because “it seems fine.” That phrase belongs in horror movies and production postmortems. + +--- + +## 5. Feature Flag Strategy + +Use feature flags to control rollout by school/domain/module. + +Required flags: + +```text +school_context.enabled +core_contracts.enabled +finance.modular_payments.enabled +finance.modular_file_access.enabled +attendance.modular_scanner.enabled +attendance.modular_manual_override.enabled +students.modular_creation.enabled +students.modular_enrollment.enabled +communication.preview_required.enabled +communication.modular_send.enabled +reporting.modular_reports.enabled +api.v2.enabled +islamic_sunday_school.extension.enabled +boundary_enforcement.fail_ci.enabled +``` + +Flag dimensions: + +```text +global +environment +school_id +domain_profile +user role +route group +module +``` + +Rules: + +```text +- every risky module cutover must be flag-controlled +- flags must default safe +- flags must be auditable +- flags must have owners +- flags must have removal dates +``` + +Feature flags without removal dates become permanent haunted switches. + +--- + +## 6. Migration Environments + +### 6.1 Development + +Purpose: + +```text +verify compile, tests, architecture checks, developer flow +``` + +Exit criteria: + +```text +unit tests pass +architecture tests pass +static analysis passes +module contracts compile +feature flags work +``` + +### 6.2 Staging + +Purpose: + +```text +validate migrations and behavior using production-like data +``` + +Exit criteria: + +```text +database migrations pass +rollbacks tested +shadow comparisons completed +performance acceptable +security checks passed +UAT completed +``` + +### 6.3 Pilot Tenant + +Purpose: + +```text +validate with limited real users and real workflows +``` + +Exit criteria: + +```text +no P0/P1 defects +support playbook validated +finance and attendance reconciled +communication sends verified +reports match expected data +``` + +### 6.4 Production + +Purpose: + +```text +controlled rollout and monitoring +``` + +Exit criteria: + +```text +module rollout stable +legacy adapters retired according to schedule +post-release audit complete +``` + +--- + +## 7. Data Migration Strategy + +### 7.1 General migration rules + +```text +- migrations must be backward-compatible during rollout +- additive schema changes before destructive changes +- destructive changes only after legacy removal +- every migration has rollback plan +- every migration has validation query +- every sensitive table migration has backup checkpoint +``` + +Use expand-and-contract: + +```text +1. expand schema +2. write to old and new paths if needed +3. backfill +4. validate +5. read from new path +6. stop writing old path +7. remove old path later +``` + +### 7.2 Finance migration rules + +Finance migrations require stronger controls: + +```text +- backup before migration +- balance reconciliation before and after +- audit log verification +- payment file access validation +- no destructive payment/invoice migration during business hours +``` + +Required validation: + +```text +total invoice count +total payment count +sum invoice totals +sum payment amounts +outstanding balances by school +refund/reversal counts +payment file count +finance audit count +``` + +### 7.3 Attendance migration rules + +Required validation: + +```text +attendance session count +attendance record count +scan log count +duplicate scan handling +student/staff attendance count by date +wrong-school scan isolation +manual override audit count +``` + +### 7.4 Student lifecycle migration rules + +Required validation: + +```text +student count by school +guardian count by school +student_guardian links +enrollment count +assignment count +student identifier uniqueness +Islamic profile extension row count +sensitive field authorization +``` + +### 7.5 Communication migration rules + +Required validation: + +```text +message count +recipient log count +delivery attempt count +preference count +template count/version +preview snapshot count +provider callback mapping +``` + +### 7.6 Reporting migration rules + +Required validation: + +```text +report registry entries +core report availability +Islamic report availability +report snapshot access +export audit logs +scheduled report recipient validation +``` + +--- + +## 8. Parallel Run and Shadow Validation + +For high-risk modules, run old and new logic in parallel before cutover where practical. + +### 8.1 Finance shadow mode + +Compare: + +```text +legacy invoice balance +modular BalanceCalculator result +legacy payment edit behavior +modular PaymentService result simulation +legacy finance report +modular finance report +``` + +Do not double-write real payments in shadow mode unless explicitly designed. Simulate and compare. Duplicating payments because of “testing” would be a bold new genre of self-harm. + +### 8.2 Attendance shadow mode + +Compare: + +```text +legacy scanner result +modular ScannerService result +legacy late/present status +modular AttendanceStatusPolicy result +legacy attendance summary +modular Attendance read model summary +``` + +### 8.3 Student lifecycle shadow mode + +Compare: + +```text +legacy student creation payload +modular DTO mapping +legacy generated identifier +modular identifier format +legacy enrollment assignment +modular enrollment/assignment result +``` + +Do not create duplicate students in production shadow mode. + +### 8.4 Communication shadow mode + +Compare: + +```text +legacy recipient query +modular recipient preview +legacy recipient count +modular deduped count +legacy excluded recipients +modular preference exclusions +``` + +Do not send duplicate messages. Shadow recipient resolution only. + +### 8.5 Reporting shadow mode + +Compare: + +```text +legacy student roster +modular student roster +legacy attendance summary +modular attendance summary +legacy finance balance report +modular outstanding balance report +``` + +--- + +## 9. Cutover Strategy + +### 9.1 Cutover order + +Recommended order: + +```text +1. SchoolContext read-only enforcement +2. Payment file access hardening +3. Communication preview-before-send +4. Student identifier generation +5. Finance payment recording/editing +6. Attendance scanner and manual override +7. Student enrollment/assignment/promotion +8. Reporting registry and exports +9. API/controller v2 routes +10. Islamic Sunday School extension routes/reports +11. Legacy route deprecation/removal +``` + +Why this order: + +```text +- security fixes first +- low-side-effect safety improvements early +- money and attendance after validation +- reports after domain truth is stable +- extension routes after core contracts are stable +``` + +### 9.2 Cutover checklist + +Before enabling a module flag: + +```text +- tests pass +- architecture checks pass +- migration validation passes +- shadow comparison reviewed +- rollback procedure tested +- monitoring dashboard ready +- support team briefed +- owner approval recorded +``` + +### 9.3 Cutover window + +For high-risk modules: + +```text +finance: low-activity window +attendance/scanner: outside active program/class session +communication: never immediately before critical announcement +student lifecycle: outside registration rush if possible +reporting: normal hours acceptable if read-only +``` + +Apparently releasing attendance scanner changes five minutes before morning check-in is considered “bad.” Humanity retains some instincts. + +--- + +## 10. Rollback Strategy + +Every module must have rollback steps. + +Rollback types: + +```text +feature flag rollback +route rollback +service binding rollback +database rollback +data repair +provider integration rollback +``` + +### 10.1 Feature flag rollback + +Preferred rollback: + +```text +disable modular feature flag +route traffic back to adapter/legacy path +preserve new logs for analysis +``` + +### 10.2 Database rollback + +Avoid destructive rollback when production writes have occurred. + +Use: + +```text +forward-fix migration +compatibility read adapters +data repair scripts +manual reconciliation for finance +``` + +### 10.3 Finance rollback + +Finance rollback must include: + +```text +payment/invoice reconciliation +audit log review +idempotency key review +manual correction plan +finance owner approval +``` + +### 10.4 Communication rollback + +Communication rollback must avoid duplicate sends. + +Required: + +```text +check idempotency records +check message logs +disable scheduled sends if needed +verify no retry storm +``` + +### 10.5 Attendance rollback + +Required: + +```text +preserve scan logs +compare attendance records +repair duplicate/missing records +notify operations if scanner behavior affected +``` + +--- + +## 11. Observability and Monitoring + +Create dashboards and alerts before production rollout. + +### 11.1 Platform-level metrics + +```text +request count by route +error rate by route +latency by route +auth failures +authorization failures +school context resolution failures +wrong-school access attempts +feature flag state by school +``` + +### 11.2 Finance metrics + +```text +payment create count +payment edit count +payment reversal/refund count +invoice recalculation count +finance audit log count +payment file download count +payment file authorization denial count +balance mismatch count +idempotency conflict count +``` + +Critical alerts: + +```text +balance mismatch detected +payment mutation without audit log +payment file wrong-school access attempt +finance exception spike +``` + +### 11.3 Attendance metrics + +```text +scan count +duplicate scan count +scan failure count +badge not found count +late status count +manual override count +attendance audit log count +scanner latency +``` + +Critical alerts: + +```text +scanner error spike +duplicate scan spike +attendance mutation without audit +wrong-school badge attempt +``` + +### 11.4 Student lifecycle metrics + +```text +student create count +identifier collision count +guardian link count +enrollment count +assignment count +promotion count +status transition count +student audit count +``` + +Critical alerts: + +```text +identifier collision spike +student creation failure spike +wrong-school guardian link attempt +``` + +### 11.5 Communication metrics + +```text +recipient preview count +bulk send count +recipient dedupe count +preference exclusion count +delivery failure count +retry count +provider error count +scheduled send count +``` + +Critical alerts: + +```text +bulk send without preview attempt +provider failure spike +retry storm +wrong-school recipient attempt +``` + +### 11.6 Reporting metrics + +```text +report run count +export count +snapshot count +scheduled report count +sensitive export count +report authorization denial count +cache hit/miss +``` + +Critical alerts: + +```text +sensitive export by unauthorized actor +report export without audit +cross-school report attempt +scheduled report failure spike +``` + +--- + +## 12. Audit Verification + +Audit logs are part of production readiness. + +Verify audits for: + +```text +finance mutations +payment file downloads +attendance mutations +manual overrides +student lifecycle changes +guardian links +bulk communication sends +report exports +sensitive Islamic Sunday School profile access +role/permission changes +``` + +Audit verification checklist: + +```text +- audit row created +- actor_user_id present +- school_id present +- action present +- entity type/id present +- before/after present where required +- reason present where required +- request_id present +``` + +If an operation mutates important data and does not create audit logs, it is not production-ready. It is just leaving footprints in wet cement and hoping nobody checks. + +--- + +## 13. Security Readiness + +Security checks before production: + +```text +cross-school access tests +wrong-role access tests +file download authorization +bulk communication authorization +report export authorization +extension route domain-profile checks +sensitive field access checks +rate limits on risky endpoints +provider callback signature verification +``` + +High-risk Islamic Sunday School extension data: + +```text +imam/admin sensitive notes +Qur'an/Arabic/Islamic studies placement details +scholarship/sadaqah support indicators +family/community profile notes +guardian contact information +``` + +These require explicit permissions and audit on access/export. + +--- + +## 14. Performance Readiness + +Baseline performance before rollout. + +Targets should be defined per project, but recommended checks: + +```text +student list response time +scanner process latency +payment record latency +recipient preview generation time +bulk send queueing time +report run time +export generation time +SchoolContext resolution overhead +``` + +Performance risks: + +```text +unscoped queries +N+1 relationships in resources +large recipient previews +large exports +report joins across extension tables +scanner latency during check-in rush +``` + +Mitigation: + +```text +indexes +read models +chunking +queues +pagination +export jobs +caching only when safe +``` + +Fast wrong answers remain wrong. Optimize after correctness unless the system is timing out, in which case enjoy doing both at once, nature’s punishment for optimism. + +--- + +## 15. User Acceptance Testing + +UAT must be scenario-based, not vague clicking. + +### 15.1 Admin scenarios + +```text +create student +link guardian +enroll student +assign class/group +record payment +edit payment +download payment file +run attendance report +send bulk communication with preview +export student roster +``` + +### 15.2 Teacher/staff scenarios + +```text +view assigned students +record attendance +scanner check-in/check-out +manual override if permitted +view attendance summary +send class communication if permitted +``` + +### 15.3 Finance user scenarios + +```text +record payment +edit payment with reason +reverse/refund payment +view invoice balance +download payment file +export outstanding balance report +``` + +### 15.4 Islamic Sunday School scenarios + +```text +create Islamic Sunday School student profile +assign Qur'an level +assign Arabic level +assign Islamic studies track +assign halaqa/group +record Sunday program attendance +view Qur'an progress report +view halaqa attendance report +message Qur'an class guardians with preview +export masjid family/community summary with permissions +``` + +### 15.5 Guardian/parent scenarios, if applicable + +```text +view own student profile +view allowed attendance +view allowed finance info +receive communication +not see unrelated students +not see sensitive notes +``` + +--- + +## 16. Training and Support + +Prepare support materials before rollout. + +Required materials: + +```text +admin quick guide +finance quick guide +attendance/scanner guide +student lifecycle guide +communication preview/send guide +reporting/export guide +Islamic Sunday School extension guide +support escalation guide +known changes/changelog +``` + +Support playbooks: + +```text +payment balance discrepancy +scanner not recognizing badge +duplicate scan complaint +guardian cannot see student +bulk message sent to unexpected recipients +report export missing data +Islamic profile field missing/unauthorized +``` + +--- + +## 17. Data Reconciliation + +Run reconciliation before and after module cutovers. + +### 17.1 Finance reconciliation + +```text +invoice totals match +payment totals match +balances match +refund/reversal totals match +audit counts match mutation counts +payment files accessible only through authorized routes +``` + +### 17.2 Attendance reconciliation + +```text +attendance counts by date/session match +duplicate scans not counted +manual overrides preserved +staff/student attendance separated correctly +audit counts match mutation counts +``` + +### 17.3 Student reconciliation + +```text +student count stable +guardian links stable +enrollments stable +assignments stable +identifiers unique +Islamic extension profiles linked correctly +``` + +### 17.4 Communication reconciliation + +```text +recipient previews match expected audiences +dedupe counts reviewed +preference exclusions correct +message logs complete +delivery attempts tracked +``` + +### 17.5 Reporting reconciliation + +```text +core reports match source domain read models +Islamic reports match extension read models +exports match report view +sensitive columns filtered +``` + +--- + +## 18. Production Readiness Review + +Hold a readiness review before each major module rollout. + +Required attendees: + +```text +platform owner +module owner +security reviewer +QA/test owner +support owner +Islamic Sunday School domain owner, if extension affected +finance owner, if finance affected +``` + +Review checklist: + +```text +tests passing +known issues reviewed +migration plan approved +rollback plan approved +monitoring ready +support docs ready +UAT signoff complete +owner approval recorded +``` + +--- + +## 19. Legacy Removal Strategy + +Legacy removal must be deliberate. + +Removal order: + +```text +1. disable legacy route behind flag +2. monitor for usage +3. add deprecation warning/header +4. notify clients/admins if needed +5. remove route +6. remove adapter controller +7. remove legacy service method +8. remove old tests +9. remove old schema only after data retention review +``` + +Never remove old paths while unknown clients still use them unless the route is unsafe. In that case, security wins and the support team gets coffee. + +--- + +## 20. API Client Migration + +If external/admin clients consume the API, provide migration guidance. + +Required docs: + +```text +v1 to v2 route mapping +request payload changes +response envelope changes +error envelope changes +deprecation dates +new auth/permission requirements +new Islamic extension endpoints +``` + +For each breaking change: + +```text +old endpoint +new endpoint +old payload +new payload +old response +new response +migration notes +sunset date +``` + +--- + +## 21. Incident Response Plan + +Define incident categories. + +### P0 incidents + +```text +cross-school data leak +unauthorized payment file access +incorrect payment balances at scale +bulk communication sent to wrong audience +sensitive report export leak +scanner outage during active session +student data corruption +``` + +### P1 incidents + +```text +module unavailable +report incorrect for subset +payment edit failure +attendance duplicate spike +communication provider failure +Islamic extension profile unavailable +``` + +### Response steps + +```text +1. disable feature flag if applicable +2. stop affected queues/jobs +3. preserve logs and audit evidence +4. notify owner/security/support +5. run reconciliation +6. apply rollback or forward fix +7. document root cause +8. add regression test +``` + +--- + +## 22. Post-Release Review + +After each module rollout, run a post-release review. + +Review: + +```text +incidents +support tickets +performance metrics +audit completeness +reconciliation results +missed tests +missed docs +flag cleanup +legacy usage +``` + +Output: + +```text +post-release report +follow-up tickets +test additions +docs corrections +legacy removal decisions +``` + +No “we survived, ship the next one” ritual. Survival is not evidence of quality. Cockroaches survive too. + +--- + +## 23. Final Modular Platform Acceptance Criteria + +The modular platform is production-ready when: + +```text +SchoolContext is enforced. +SchoolCore contracts exist and are used by controllers. +IslamicSundaySchool is isolated as extension layer. +Finance file access is payment-scoped and authorized. +Finance payment mutation is transactional and audited. +Attendance scanner is idempotent and service-owned. +Student identifier generation is race-safe. +Student lifecycle behavior is service-owned. +Communication bulk sends require preview and dedupe. +Reporting consumes read models/domain truth. +Controllers are adapters. +Architecture tests and CI gates are active. +Route inventory and OpenAPI docs are current. +Cross-school access tests pass. +Sensitive data access is audited. +Legacy unsafe routes are removed or disabled. +Production monitoring is active. +Rollback plans are tested. +``` + +--- + +## 24. Implementation Tickets + +## REL-001: Create feature flag rollout map + +### Description + +Define module flags, owners, default states, rollout scope, and removal dates. + +### Acceptance Criteria + +```text +- All high-risk modules have flags. +- Flags support school/domain rollout. +- Each flag has owner and removal target. +- Flag state is auditable. +``` + +--- + +## REL-002: Create migration validation scripts + +### Description + +Create validation scripts for finance, attendance, students, communication, and reporting. + +### Acceptance Criteria + +```text +- Scripts run in staging. +- Scripts compare pre/post counts. +- Scripts detect cross-school anomalies. +- Finance validation includes balance totals. +``` + +--- + +## REL-003: Add shadow comparison jobs + +### Description + +Add jobs or commands to compare legacy and modular outputs. + +### Acceptance Criteria + +```text +- Finance balance comparison exists. +- Attendance scanner comparison exists. +- Communication recipient comparison exists. +- Reporting comparison exists. +- Output includes mismatch details. +``` + +--- + +## REL-004: Build production monitoring dashboards + +### Description + +Create dashboards and alerts for modular rollout. + +### Acceptance Criteria + +```text +- Platform metrics visible. +- Finance alerts configured. +- Attendance alerts configured. +- Communication alerts configured. +- Reporting/export alerts configured. +- SchoolContext failures visible. +``` + +--- + +## REL-005: Create rollback playbooks + +### Description + +Create module-specific rollback procedures. + +### Acceptance Criteria + +```text +- Finance rollback playbook exists. +- Attendance rollback playbook exists. +- Student rollback playbook exists. +- Communication rollback playbook exists. +- Reporting rollback playbook exists. +- Rollback tested in staging. +``` + +--- + +## REL-006: Run security readiness review + +### Description + +Validate authorization, file access, report exports, extension routes, and sensitive fields. + +### Acceptance Criteria + +```text +- Cross-school tests pass. +- Sensitive Islamic Sunday School fields protected. +- Payment file access protected. +- Bulk send protected. +- Report export protected. +``` + +--- + +## REL-007: Run performance readiness review + +### Description + +Baseline key endpoint and job performance. + +### Acceptance Criteria + +```text +- Scanner latency acceptable. +- Payment mutation latency acceptable. +- Recipient preview performance acceptable. +- Report/export performance acceptable. +- Slow query risks documented. +``` + +--- + +## REL-008: Complete UAT scenarios + +### Description + +Run scenario-based UAT for admin, finance, attendance, students, communication, reporting, and Islamic Sunday School extension. + +### Acceptance Criteria + +```text +- UAT scenarios completed. +- P0/P1 defects fixed or rollout blocked. +- Islamic Sunday School owner signs off extension workflows. +``` + +--- + +## REL-009: Prepare support and training material + +### Description + +Create guides and support playbooks. + +### Acceptance Criteria + +```text +- Admin guide exists. +- Finance guide exists. +- Attendance/scanner guide exists. +- Communication guide exists. +- Reporting/export guide exists. +- Islamic Sunday School guide exists. +- Support escalation playbook exists. +``` + +--- + +## REL-010: Execute pilot rollout + +### Description + +Enable modular features for a controlled pilot scope. + +### Acceptance Criteria + +```text +- Pilot school/tenant selected. +- Flags enabled progressively. +- Monitoring reviewed daily during pilot. +- Reconciliation passes. +- No unresolved P0/P1 defects. +``` + +--- + +## REL-011: Execute Islamic Sunday School production rollout + +### Description + +Roll out Islamic Sunday School extension with core modular services. + +### Acceptance Criteria + +```text +- islamic_sunday_school domain profile enabled. +- Extension routes active. +- Qur'an/Arabic/Islamic studies/halaqa workflows validated. +- Masjid family/community reports validated. +- Sensitive permissions verified. +``` + +--- + +## REL-012: Remove legacy unsafe routes + +### Description + +Disable or remove legacy routes that are unsafe or superseded. + +### Acceptance Criteria + +```text +- filename-based payment file route removed/disabled. +- blind bulk send route removed/disabled. +- unsafe student identifier path removed. +- legacy scanner mutation path removed/disabled. +- deprecated routes have replacements. +``` + +--- + +## REL-013: Complete post-release review + +### Description + +Review rollout metrics, incidents, support tickets, and cleanup items. + +### Acceptance Criteria + +```text +- Post-release report exists. +- Follow-up tickets created. +- Regression tests added for incidents. +- Legacy removal schedule updated. +``` + +--- + +## 25. Rollout Timeline Template + +Use this as a planning template, not a divine prophecy. + +```text +Week 1: + - finalize flags + - complete validation scripts + - run staging migrations + +Week 2: + - run shadow comparisons + - fix mismatches + - complete monitoring dashboards + +Week 3: + - complete security/performance readiness + - complete UAT + - prepare support docs + +Week 4: + - pilot rollout + - monitor and reconcile + - patch defects + +Week 5: + - Islamic Sunday School production rollout + - monitor and reconcile + - freeze unsafe legacy paths + +Week 6: + - broader rollout + - remove/deprecate legacy routes + - post-release review +``` + +Actual timing depends on defect count, data quality, team size, and how many legacy surprises crawl out from under the floorboards. + +--- + +## 26. Definition of Done for Phase 10 + +Phase 10 is done when: + +```text +- Feature flag rollout map exists. +- Migration validation scripts exist. +- Shadow comparison jobs exist for high-risk modules. +- Production dashboards and alerts exist. +- Rollback playbooks exist and are tested in staging. +- Security readiness review is complete. +- Performance readiness review is complete. +- UAT scenarios are complete. +- Support/training materials exist. +- Pilot rollout completed successfully. +- Islamic Sunday School production rollout completed successfully. +- Legacy unsafe routes are removed or disabled. +- Post-release review is complete. +- Follow-up cleanup tickets are created. +``` + +--- + +## 27. Non-Goals + +Do not include in Phase 10: + +```text +- brand-new feature development +- major UI redesign +- full external SIS integration +- full analytics warehouse +- provider migration unrelated to modular rollout +- complete rewrite of all legacy modules +- speculative optimizations without measured bottlenecks +``` + +Phase 10 is about safe release, not ambition cosplay. + +--- + +## 28. Main Risks + +### Risk: data migration corrupts production data + +Mitigation: + +```text +- additive migrations +- backups +- validation scripts +- staging rehearsal +- rollback/forward-fix plan +``` + +### Risk: modular and legacy paths diverge + +Mitigation: + +```text +- shadow comparisons +- compatibility adapters +- feature flags +- mismatch reports +``` + +### Risk: finance balances differ + +Mitigation: + +```text +- finance reconciliation +- BalanceCalculator comparison +- manual review threshold +- rollback flag +``` + +### Risk: scanner disruption + +Mitigation: + +```text +- rollout outside active session +- scanner latency monitoring +- duplicate scan monitoring +- legacy scanner fallback flag +``` + +### Risk: accidental communication blast + +Mitigation: + +```text +- preview required +- confirmation token +- idempotency +- send limit/rate controls +- pilot audience first +``` + +### Risk: Islamic Sunday School extension leaks sensitive data + +Mitigation: + +```text +- explicit permissions +- extension route middleware +- sensitive export audit +- UAT with domain owner +``` + +### Risk: team leaves feature flags forever + +Mitigation: + +```text +- flag removal dates +- post-release cleanup tickets +- release gate warning on expired flags +``` + +--- + +## 29. Immediate Next Work Queue + +Start here: + +```text +1. REL-001 Create feature flag rollout map +2. REL-002 Create migration validation scripts +3. REL-003 Add shadow comparison jobs +4. REL-004 Build production monitoring dashboards +5. REL-005 Create rollback playbooks +6. REL-006 Run security readiness review +7. REL-007 Run performance readiness review +8. REL-008 Complete UAT scenarios +9. REL-009 Prepare support and training material +10. REL-010 Execute pilot rollout +11. REL-011 Execute Islamic Sunday School production rollout +12. REL-012 Remove legacy unsafe routes +13. REL-013 Complete post-release review +``` + +Start with flags, validation, and rollback. If you cannot turn it off, prove it, and recover from it, you are not ready to ship it. You are ready to gamble with extra steps. diff --git a/docs/modular_plans/phase_1_school_context_execution_plan_islamic.md b/docs/modular_plans/phase_1_school_context_execution_plan_islamic.md new file mode 100644 index 00000000..cb728682 --- /dev/null +++ b/docs/modular_plans/phase_1_school_context_execution_plan_islamic.md @@ -0,0 +1,764 @@ +# Phase 1 Execution Plan: SchoolContext Foundation + + +# Islamic Sunday School Alignment Update + +Phase 1 must support **Islamic Sunday School** as a domain profile, not generic Sunday School or church-oriented Sunday School. + +Add the domain profile value: + +```text +islamic_sunday_school +``` + +`SchoolContext` may expose this profile neutrally as `domain_profile`, but `SchoolCore` services must not branch on Islamic-specific concepts directly. Any Islamic Sunday School behavior must be resolved through extension bindings, policy contracts, or context-aware providers. + +Examples of extension-only concepts: + +```text +masjid_id +program_session_id +halaqa_id +quran_level_id +arabic_level_id +islamic_studies_track_id +volunteer_team_id +imam_admin_note_permission +``` + +The core still uses neutral terms: `school`, `term`, `session`, `program`, `group`, `family`, `guardian`, `student`, and `staff`. + +--- +## 1. Objective + +Create a mandatory, immutable `SchoolContext` foundation so every reusable service can operate safely across different school systems. + +This phase is the base layer for the modular platform. Without it, `SchoolCore` cannot be reliably reused by Islamic Sunday School, traditional schools, training centers, after-school programs, or any other future domain. A modular platform without tenant/context isolation is just a data leak wearing a nicer folder structure. + +## 2. Target Outcome + +At the end of Phase 1: + +- Every new core service receives an explicit `SchoolContext`. +- Controllers no longer rely only on scattered `auth()`, request values, global configuration, or session-like assumptions to determine school scope. +- Cross-school access fails by default. +- Islamic Sunday School can resolve its own domain profile through context, without forcing Islamic Sunday School concepts into global services. +- Finance, attendance, students, files, reporting, and communication can begin migration into `SchoolCore` safely. + +## 3. Current Problem to Fix + +The current app has school/year/semester context scattered across: + +- authenticated user fields such as `school_id`, `school_year`, and `semester`; +- global configuration access such as `Configuration::getConfig('school_year')` and `Configuration::getConfig('semester')`; +- request query/body values; +- controller-specific assumptions; +- service-level fallback behavior; +- model methods that directly read global configuration; +- finance, attendance, reporting, and student queries that depend on string school-year/semester filters. + +This makes the app hard to reuse for multiple school types because context is implicit instead of explicit. + +## 4. Design Principle + +`SchoolContext` is not a convenience object. It is a safety boundary. + +Core rule: + +```php +SchoolCore services must not guess school, year, term, actor, timezone, currency, or domain profile. +``` + +They must receive those values from an explicit context object created at the API boundary. + +## 5. Proposed Namespace Structure + +Create these namespaces: + +```txt +app/ + Domain/ + SchoolCore/ + Context/ + SchoolContext.php + SchoolContextResolver.php + SchoolContextFactory.php + SchoolContextValidator.php + SchoolContextStore.php + SchoolContextException.php + Contracts/ + RequiresSchoolContext.php + Support/ + SchoolContextAware.php + Http/ + Middleware/ + ResolveSchoolContext.php +``` + +Optional later namespaces: + +```txt +app/ + Domain/ + IslamicSundaySchool/ + Context/ + IslamicSundaySchoolContextExtender.php +``` + +Do not create the Islamic Sunday School extender in Phase 1 unless there is a concrete field or rule that cannot live in the neutral core context. Premature extension objects are how clean architecture becomes a museum of unused abstractions. + +## 6. `SchoolContext` Value Object + +### 6.1 Required Fields + +Initial version: + +```php +final readonly class SchoolContext +{ + public function __construct( + public int $schoolId, + public int $actorUserId, + public array $actorRoleIds, + public ?string $schoolYear, + public ?string $term, + public string $timezone, + public string $locale, + public string $currency, + public string $domainProfile, + ) {} +} +``` + +### 6.2 Field Rules + +| Field | Required? | Purpose | +|---|---:|---| +| `schoolId` | Yes | Primary isolation boundary. Every scoped query must use it where schema supports it. | +| `actorUserId` | Yes | Audit, authorization, ownership checks. | +| `actorRoleIds` | Yes | Policy/gate checks without repeated role queries. | +| `schoolYear` | Nullable during migration | Current academic year or legacy string value. | +| `term` | Nullable during migration | Current term/semester. Keep name neutral in core. | +| `timezone` | Yes | Date boundaries for attendance, deadlines, reports, finance timestamps. | +| `locale` | Yes | Formatting, translation, report language. | +| `currency` | Yes | Finance defaults. | +| `domainProfile` | Yes | Example: `standard_school`, `islamic_sunday_school`, `training_center`. | + +### 6.3 Naming Decision + +Use `term` in the core context, not `semester`. + +Reason: `semester` is one possible academic model. A global school platform may use quarters, trimesters, sessions, Sunday program cycles, training cohorts, or rolling terms. Use `semester` only inside legacy adapters until migration is complete. + +## 7. Context Resolution Strategy + +### 7.1 Resolution Priority + +`SchoolContextResolver` should resolve context in this order: + +1. Authenticated user from JWT/Auth. +2. Explicit school selector from request header or route, if allowed. +3. User default school, currently likely `users.school_id`. +4. Current school year/term from request, if allowed and validated. +5. Config fallback for legacy behavior, such as current `Configuration::getConfig('school_year')` and `Configuration::getConfig('semester')`. +6. Safe defaults for timezone/locale/currency. + +### 7.2 Recommended Request Headers + +Support these headers during migration: + +```txt +X-School-Id +X-School-Year +X-School-Term +X-Domain-Profile +``` + +Rules: + +- `X-School-Id` may only switch context if the actor belongs to that school or has platform-level permission. +- `X-School-Year` and `X-School-Term` must be validated against available academic periods once those models exist. +- `X-Domain-Profile` must not override server-side school configuration unless explicitly allowed for test/dev tooling. + +## 8. Middleware Plan + +### 8.1 Create `ResolveSchoolContext` + +Middleware behavior: + +```php +public function handle(Request $request, Closure $next): Response +{ + $context = $this->resolver->resolve($request); + $this->validator->assertValid($context, $request->user()); + $this->store->set($context); + $request->attributes->set(SchoolContext::class, $context); + + return $next($request); +} +``` + +### 8.2 Middleware Order + +Run after authentication and before authorization-sensitive controllers: + +```txt +ApiJwtAuth +ResolveSchoolContext +RequirePermission / policies / controller +``` + +Do not run it before authentication unless supporting public routes. Public routes should either not use `SchoolContext`, or should use an explicit public context resolver with sharply limited behavior. + +### 8.3 Route Group Rollout + +Start with high-risk route groups only: + +```txt +/api/finance/* +/api/payments/* +/api/invoices/* +/api/students/* +/api/attendance/* +/api/scanner/* +/api/files/* +/api/reports/* +/api/messages/* +/api/roles/* +``` + +Then expand to all authenticated API routes after compatibility is verified. + +## 9. Service Container Bindings + +Create container bindings: + +```php +$this->app->singleton(SchoolContextStore::class); +$this->app->bind(SchoolContextResolver::class); +$this->app->bind(SchoolContextValidator::class); +$this->app->bind(SchoolContextFactory::class); +``` + +Add a helper only if necessary: + +```php +school_context(): SchoolContext +``` + +Do not let the helper become the main service API. Core services should receive context explicitly in command DTOs or method arguments. A global helper is useful for legacy adapters, not for clean new code. Humans love turning helpers into hidden dependencies, and then act surprised when tests are brittle. + +## 10. Service Usage Pattern + +### 10.1 Preferred Command DTO Pattern + +```php +final readonly class RecordPaymentCommand +{ + public function __construct( + public SchoolContext $context, + public int $invoiceId, + public int $studentId, + public string $method, + public int $amountCents, + public ?UploadedFile $file, + public ?string $idempotencyKey, + ) {} +} +``` + +### 10.2 Allowed Transitional Pattern + +```php +public function recordPayment(SchoolContext $context, array $payload): PaymentResult +``` + +### 10.3 Forbidden New Pattern + +```php +public function recordPayment(array $payload): PaymentResult +{ + $user = auth()->user(); + $schoolYear = Configuration::getConfig('school_year'); +} +``` + +That pattern is legacy-only and must be marked as such. + +## 11. Repository and Query Scoping + +### 11.1 Scope Helper + +Create a reusable query helper or trait: + +```php +trait AppliesSchoolContext +{ + protected function applySchoolScope(Builder $query, SchoolContext $context, string $column = 'school_id'): Builder + { + return $query->where($column, $context->schoolId); + } +} +``` + +### 11.2 Legacy Schema Handling + +Some tables may not have `school_id`. For Phase 1, classify tables into: + +| Type | Handling | +|---|---| +| Has `school_id` | Apply strict `school_id` filter. | +| Has academic year/term only | Apply `schoolYear` and `term` filters as legacy scope. | +| Global lookup table | Explicitly mark as global. | +| Missing required scope | Add to schema remediation backlog. | + +Do not silently use `Schema::hasColumn()` inside business logic forever. Temporary schema detection is acceptable only inside migration adapters with comments and removal tickets. + +## 12. Migration Strategy + +### Step 1: Add classes without changing behavior + +Create: + +- `SchoolContext` +- `SchoolContextFactory` +- `SchoolContextResolver` +- `SchoolContextValidator` +- `SchoolContextStore` +- `ResolveSchoolContext` middleware + +Add tests for object creation and resolution. + +### Step 2: Resolve context for authenticated routes + +Enable middleware in a small route group first. Recommended first group: + +```txt +finance/payment read-only endpoint or student read-only endpoint +``` + +Avoid starting with payment mutation until context resolution has tests. Bravery is not a rollout strategy. + +### Step 3: Add context to audit/logging + +Every high-risk action should have actor and school context available, even before full service refactor. + +Add to logs where possible: + +```txt +school_id +actor_user_id +school_year +term +domain_profile +request_id +``` + +### Step 4: Convert first vertical slice + +Choose one low-risk read path first: + +```txt +Student list/read +``` + +Then one high-risk mutation path: + +```txt +Manual payment record/edit after tests exist +``` + +### Step 5: Enforce context in new services + +Any new `SchoolCore` service must accept context. No exceptions except explicitly global lookup services. + +## 13. First Vertical Slice: Student Read Context + +Use student read/list endpoints as the first validation slice because they are easier to test than finance mutations. + +### Tasks + +- Add `ResolveSchoolContext` to student read route group. +- Inject/request `SchoolContext` in controller. +- Pass context to student query service. +- Apply `school_id` scope where available. +- If student table lacks correct school scoping, document schema gap. +- Add wrong-school read test. + +### Acceptance Criteria + +- User from School A can list School A students. +- User from School A cannot list School B students. +- Missing/invalid context returns `403` or `422`, not a silent fallback. +- Existing valid Islamic Sunday School requests still work. + +## 14. Second Vertical Slice: Payment File Access Context + +This should connect to the P0 fix already identified. + +### Tasks + +- Add context to payment file download route. +- Change route from filename-only to payment/file-id-based access. +- Load payment under `school_id` context. +- Authorize actor against payment/invoice/family/finance role. +- Resolve physical file only from stored payment record. +- Log access attempt with context. + +### Acceptance Criteria + +- Finance/admin from same school can download payment file. +- Parent/guardian can download only if policy allows and relationship matches. +- User from another school cannot download even if they know the filename. +- Unknown payment returns `404`. +- Known payment with unauthorized actor returns `403`. + +## 15. Validation Rules + +`SchoolContextValidator` must check: + +- actor user exists; +- actor is active/not suspended; +- `schoolId` is positive; +- actor belongs to selected school; +- selected school is active; +- selected year/term is allowed for selected school when academic-period tables are available; +- timezone is valid IANA timezone; +- locale is supported; +- currency is valid ISO currency code; +- domain profile is supported. + +During migration, when academic period tables are not yet reliable, log warnings instead of blocking all requests. Do not pretend this is perfect. Transitional systems lie unless you make the lies visible. + +## 16. Authorization Integration + +Policies and gates should receive or resolve context. + +Preferred: + +```php +$this->authorize('view', [$student, $context]); +``` + +Alternative transitional behavior: + +```php +$context = app(SchoolContextStore::class)->current(); +$this->authorize('view', $student); +``` + +Policy checks must compare resource scope against context: + +```php +return $student->school_id === $context->schoolId; +``` + +If a model does not have `school_id`, the policy must use a documented relationship path. + +## 17. Jobs, Events, and Notifications + +Any job created from a scoped action must carry context values explicitly. + +### Required Job Fields + +```txt +school_id +actor_user_id +school_year +term +domain_profile +locale +timezone +request_id or correlation_id +``` + +Do not let queued jobs recalculate context from the current logged-in user. There is no current logged-in user in a worker. This is apparently easy to forget until production sends the wrong family a message. + +## 18. Files and Storage + +File services must receive context. + +Recommended storage path pattern: + +```txt +schools/{school_id}/{module}/{resource_type}/{resource_id}/{filename} +``` + +Examples: + +```txt +schools/12/payments/checks/8821/check_8821.pdf +schools/12/students/documents/440/immunization.pdf +``` + +Rules: + +- never serve files by arbitrary filename alone; +- never infer authorization from path; +- always authorize resource first; +- path resolution happens after authorization; +- logs include context and resource ID. + +## 19. Reporting + +Reports must include context in every query. + +Minimum rules: + +- every report query must accept `SchoolContext`; +- report export filenames should include school/year/term where appropriate; +- cross-school report access must fail; +- raw SQL reports must bind context parameters explicitly. + +## 20. Test Plan + +### 20.1 Unit Tests + +Create tests for: + +- `SchoolContext` construction; +- invalid school ID rejection; +- invalid timezone rejection; +- invalid currency rejection; +- resolver reads authenticated user school; +- resolver rejects unauthorized `X-School-Id` switch; +- resolver applies legacy school year/term fallback; +- context store returns current context; +- context store throws when missing context. + +### 20.2 Feature Tests + +Create tests for: + +- authenticated route receives context; +- unauthenticated route cannot resolve protected context; +- School A user cannot access School B student; +- School A finance user cannot access School B payment file; +- `X-School-Id` override works only for authorized multi-school/platform actor; +- timezone affects attendance date boundary; +- context is logged for high-risk mutation. + +### 20.3 Architecture Tests + +Add static tests/rules: + +```txt +SchoolCore services must not call auth() +SchoolCore services must not read Request directly +SchoolCore services must not call Configuration::getConfig directly +SchoolCore services must accept SchoolContext for scoped operations +SchoolCore must not import IslamicSundaySchool namespace +``` + +## 21. Implementation Tickets + +### SCX-001: Create `SchoolContext` value object + +**Goal:** Define immutable context object used by core services. + +**Tasks:** + +- Create `App\Domain\SchoolCore\Context\SchoolContext`. +- Add constructor fields listed in this plan. +- Add helper methods: + - `isIslamicSundaySchool(): bool` + - `requiresTerm(): bool` + - `auditPayload(): array` + - `withTerm(?string $term): self` +- Add unit tests. + +**Done when:** object is immutable, tested, and contains no request/auth dependencies. + +### SCX-002: Create context resolver and factory + +**Goal:** Build context from authenticated request safely. + +**Tasks:** + +- Create `SchoolContextFactory`. +- Create `SchoolContextResolver`. +- Read user, headers, legacy config, and defaults. +- Validate switch permissions for `X-School-Id`. +- Return deterministic context. + +**Done when:** resolver works for normal user, admin user, invalid school, and missing school cases. + +### SCX-003: Create context validator + +**Goal:** Prevent invalid or unauthorized context. + +**Tasks:** + +- Create `SchoolContextValidator`. +- Validate actor belongs to selected school. +- Validate school active state where model exists. +- Validate timezone/locale/currency/domain profile. +- Add migration warnings for missing academic period tables. + +**Done when:** invalid contexts fail before controller logic executes. + +### SCX-004: Add middleware + +**Goal:** Attach context to authenticated API requests. + +**Tasks:** + +- Create `ResolveSchoolContext` middleware. +- Register middleware alias. +- Add to selected route groups after auth. +- Store context in request attributes and `SchoolContextStore`. + +**Done when:** protected routes can retrieve context and tests prove middleware order. + +### SCX-005: Add query scoping helpers + +**Goal:** Make school scoping repeatable. + +**Tasks:** + +- Create `AppliesSchoolContext` trait or query helper. +- Add strict school scope behavior. +- Add legacy year/term scope behavior. +- Add table classification list for global vs scoped tables. + +**Done when:** first read service uses helper and wrong-school reads fail. + +### SCX-006: Convert first student read/list slice + +**Goal:** Prove context works on a low-risk endpoint. + +**Tasks:** + +- Add context middleware to selected student route. +- Pass context to student query service. +- Scope query by school. +- Add cross-school tests. + +**Done when:** same-school student reads pass and cross-school reads fail. + +### SCX-007: Convert payment file access slice + +**Goal:** Use context on a high-risk P0 issue. + +**Tasks:** + +- Replace filename-only access with payment-id-based access. +- Load payment using context. +- Authorize resource before file path resolution. +- Add logs and tests. + +**Done when:** guessed filenames cannot access files and cross-school access fails. + +### SCX-008: Add job/event context payload convention + +**Goal:** Prevent async work from losing school/actor context. + +**Tasks:** + +- Define `ContextPayload` array format. +- Add helper to create payload from `SchoolContext`. +- Update one notification or payment event as pilot. +- Add tests. + +**Done when:** queued pilot job does not depend on live auth/session/request state. + +### SCX-009: Add architecture enforcement + +**Goal:** Stop new code from bypassing context. + +**Tasks:** + +- Add static/architecture tests. +- Ban `auth()`, `request()`, and direct `Configuration::getConfig()` inside new `SchoolCore` services. +- Ban `SchoolCore -> IslamicSundaySchool` imports. + +**Done when:** CI fails on forbidden dependency direction or hidden context access. + +## 22. Rollout Timeline by Workstream + +### Workstream A: Foundation + +1. `SchoolContext` +2. Factory/resolver/validator +3. Middleware/store +4. Tests + +### Workstream B: First Usage + +1. Student read/list +2. Payment file access +3. Context-aware logging + +### Workstream C: Enforcement + +1. Static rules +2. Architecture tests +3. Migration checklist for all future services + +## 23. Acceptance Criteria for Phase 1 + +Phase 1 is complete only when all of this is true: + +- `SchoolContext` exists and is immutable. +- Context is resolved for selected authenticated API routes. +- Context includes school, actor, year/term, timezone, locale, currency, and domain profile. +- Cross-school student read test passes. +- Cross-school payment file access test passes. +- At least one read service and one high-risk access path use explicit context. +- New `SchoolCore` services are forbidden from reading request/auth/config directly. +- `SchoolCore` cannot depend on `IslamicSundaySchool` namespace. +- Islamic Sunday School still works through context profile and legacy adapters. +- Known schema gaps are documented instead of silently hidden. + +## 24. Risks + +| Risk | Impact | Mitigation | +|---|---:|---| +| Tables lack `school_id` | Cross-school isolation may be incomplete | Classify tables and add schema remediation tickets. | +| Legacy code depends on global config | Context behavior may differ from old behavior | Use resolver fallback during migration and log warnings. | +| Too much migration at once | High regression risk | Start with student read/list, then payment file access. | +| Developers bypass context | Architecture decay | Add static rules and CI checks. | +| Islamic Sunday School assumptions leak into core | Platform becomes non-reusable | Enforce dependency direction and neutral vocabulary. | + +## 25. Non-Goals + +Phase 1 does not include: + +- moving every service into `SchoolCore`; +- fully refactoring finance; +- fully refactoring attendance; +- replacing all `semester` fields; +- adding a full multi-tenant school administration UI; +- converting every controller; +- renaming every legacy table. + +Trying to do all of that in Phase 1 would be how a refactor becomes a bonfire. + +## 26. Immediate Next Implementation Order + +Use this order: + +```txt +1. Create SchoolContext value object +2. Create resolver/factory/validator/store +3. Add middleware after ApiJwtAuth +4. Add unit tests for resolver and validator +5. Add student read/list context slice +6. Add cross-school student tests +7. Add payment file context slice +8. Add cross-school payment file tests +9. Add architecture rules +10. Document remaining schema gaps +``` + +## 27. Definition of Success + +A developer should be able to write this in a future core service: + +```php +public function listStudents(SchoolContext $context, StudentListQuery $query): StudentListResult +``` + +And the service should not need to know whether the school is a Islamic Sunday School, a private academy, a tutoring center, or a training program. + +That is the point. The global platform owns the universal school workflow. Islamic Sunday School supplies policies, labels, calendars, and domain-specific extensions. The core stays boring, reusable, and annoyingly difficult to misuse. Good architecture is mostly removing opportunities for future nonsense. diff --git a/docs/modular_plans/phase_2_core_contracts_execution_plan_islamic.md b/docs/modular_plans/phase_2_core_contracts_execution_plan_islamic.md new file mode 100644 index 00000000..9065e9ad --- /dev/null +++ b/docs/modular_plans/phase_2_core_contracts_execution_plan_islamic.md @@ -0,0 +1,942 @@ +# Phase 2 Execution Plan: Core Contracts and Module Boundaries + + +# Islamic Sunday School Alignment Update + +Phase 2 must define contracts that support **Islamic Sunday School** through extension implementations, not by adding Islamic-specific language to the core interfaces. + +Preferred extension namespace: + +```text +App\Domain\IslamicSundaySchool +``` + +The core contracts remain school-neutral. Islamic Sunday School implementations may bind policies for: + +```text +Qur'an progression +Arabic level placement +Islamic studies tracks +halaqa/class grouping +masjid family/community profile +program-session attendance +volunteer team communication +tuition, sadaqah, scholarship, and fee classification +``` + +Do not put these terms in `SchoolCore` contracts. The contracts define capabilities. The extension defines Islamic Sunday School behavior. + +--- +## Purpose + +Phase 2 establishes the contract layer for the modular school platform. The goal is to define stable interfaces for shared school operations before moving implementation logic into `SchoolCore`. + +This phase prevents the platform from becoming Sunday-School-shaped by accident. Islamic Sunday School may extend the global platform, but the global platform must not know Islamic Sunday School exists. + +## Phase 2 Outcome + +At the end of this phase: + +- `SchoolCore` exposes stable contracts for core school operations. +- Islamic Sunday School behavior plugs into the platform through policies, providers, and extension services. +- Controllers and application services begin depending on contracts instead of concrete legacy services. +- Dependency direction is enforced by automated tests. +- No `SchoolCore` class imports from `IslamicSundaySchool`. +- New implementation work has a clear place to go instead of continuing the existing service sprawl. + +## Dependency Rule + +The dependency direction must be enforced as architecture law: + +```text +Http / Controllers / Requests / Resources + ↓ +Application Services / Use Cases + ↓ +SchoolCore Contracts + ↓ +SchoolCore Implementations + ↑ +Domain Extensions, such as IslamicSundaySchool, may provide policies/providers +``` + +Allowed: + +```text +IslamicSundaySchool → SchoolCore +Controllers → SchoolCore Contracts +Application Services → SchoolCore Contracts +SchoolCore Implementations → SchoolCore Models / Repositories +``` + +Forbidden: + +```text +SchoolCore → IslamicSundaySchool +SchoolCore → Http Request +SchoolCore → auth() +SchoolCore → controller classes +SchoolCore → route-specific assumptions +SchoolCore → Islamic Sunday School program calendar assumptions +SchoolCore → masjid/community/ministry vocabulary unless stored as extension metadata +``` + +## Required Namespace Structure + +Create this structure first. Do not migrate every class immediately. Empty boundaries are acceptable at the start. Fake modularity is not. + +```text +app/ + Domain/ + SchoolCore/ + Contracts/ + Context/ + Identity/ + Students/ + Guardians/ + Enrollment/ + Attendance/ + Academics/ + Finance/ + Communication/ + Files/ + Reporting/ + Authorization/ + Support/ + IslamicSundaySchool/ + Contracts/ + Providers/ + Policies/ + Attendance/ + Curriculum/ + Ministry/ + Families/ + Reports/ + Shared/ + Contracts/ + ValueObjects/ + Exceptions/ + Support/ + Providers/ + SchoolCoreServiceProvider.php + IslamicSundaySchoolServiceProvider.php +``` + +## Contract Design Rules + +Every contract must follow these rules: + +1. Accept `SchoolContext` explicitly or be resolved from a context-aware application service. +2. Use DTOs/value objects for input where payloads are complex. +3. Return DTOs/read models where behavior crosses module boundaries. +4. Never accept raw `Request` objects. +5. Never call `auth()` inside domain services. +6. Never use Islamic Sunday School terminology in `SchoolCore` contracts. +7. Never expose Eloquent models as the required public contract unless the service is strictly internal. +8. Define authorization expectations explicitly. +9. Define transaction ownership explicitly for mutation methods. +10. Include failure behavior in the contract documentation. + +## Core Contracts to Create + +### Context + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface RequiresSchoolContext +{ + public function setSchoolContext(SchoolContext $context): void; +} +``` + +### Students + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Students\Data\CreateStudentData; +use App\Domain\SchoolCore\Students\Data\UpdateStudentData; +use App\Domain\SchoolCore\Students\Data\StudentReadModel; + +interface StudentServiceContract +{ + public function create(SchoolContext $context, CreateStudentData $data): StudentReadModel; + + public function update(SchoolContext $context, int $studentId, UpdateStudentData $data): StudentReadModel; + + public function find(SchoolContext $context, int $studentId): ?StudentReadModel; + + public function archive(SchoolContext $context, int $studentId, string $reason): void; +} +``` + +### Student Identifier Generation + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface StudentIdentifierGeneratorContract +{ + public function generate(SchoolContext $context, int $studentId): string; +} +``` + +### Guardians + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Guardians\Data\GuardianRelationshipData; + +interface GuardianServiceContract +{ + public function attachGuardian(SchoolContext $context, int $studentId, GuardianRelationshipData $data): void; + + public function detachGuardian(SchoolContext $context, int $studentId, int $guardianId): void; + + public function listForStudent(SchoolContext $context, int $studentId): array; +} +``` + +### Enrollment + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Enrollment\Data\EnrollmentData; + +interface EnrollmentServiceContract +{ + public function enroll(SchoolContext $context, int $studentId, EnrollmentData $data): void; + + public function transfer(SchoolContext $context, int $studentId, EnrollmentData $data): void; + + public function withdraw(SchoolContext $context, int $studentId, string $reason): void; +} +``` + +### Attendance + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Attendance\Data\AttendanceMarkData; +use App\Domain\SchoolCore\Attendance\Data\AttendanceScanData; +use App\Domain\SchoolCore\Attendance\Data\AttendanceResult; + +interface AttendanceServiceContract +{ + public function markStudent(SchoolContext $context, AttendanceMarkData $data): AttendanceResult; + + public function processScan(SchoolContext $context, AttendanceScanData $data): AttendanceResult; + + public function summarizeDay(SchoolContext $context, string $date): array; +} +``` + +### Attendance Policy + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use DateTimeInterface; + +interface AttendancePolicyContract +{ + public function isSchoolDay(SchoolContext $context, DateTimeInterface $date): bool; + + public function determineStatus(SchoolContext $context, DateTimeInterface $scanTime, array $session): string; + + public function duplicateScanWindowSeconds(SchoolContext $context): int; +} +``` + +### Academic Calendar + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use DateTimeInterface; + +interface AcademicCalendarProviderContract +{ + public function currentAcademicYear(SchoolContext $context): ?int; + + public function currentTerm(SchoolContext $context): ?int; + + public function sessionsForDate(SchoolContext $context, DateTimeInterface $date): array; +} +``` + +### Academics + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface GradeScalePolicyContract +{ + public function gradeForScore(SchoolContext $context, float $score): string; + + public function passingScore(SchoolContext $context): float; +} +``` + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface PromotionPolicyContract +{ + public function canPromote(SchoolContext $context, int $studentId): bool; + + public function nextPlacement(SchoolContext $context, int $studentId): array; +} +``` + +### Finance + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Finance\Data\CreateInvoiceData; +use App\Domain\SchoolCore\Finance\Data\InvoiceReadModel; + +interface InvoiceServiceContract +{ + public function create(SchoolContext $context, CreateInvoiceData $data): InvoiceReadModel; + + public function recalculate(SchoolContext $context, int $invoiceId): InvoiceReadModel; + + public function find(SchoolContext $context, int $invoiceId): ?InvoiceReadModel; +} +``` + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Finance\Data\RecordPaymentData; +use App\Domain\SchoolCore\Finance\Data\EditPaymentData; +use App\Domain\SchoolCore\Finance\Data\PaymentReadModel; + +interface PaymentServiceContract +{ + public function record(SchoolContext $context, RecordPaymentData $data): PaymentReadModel; + + public function edit(SchoolContext $context, int $paymentId, EditPaymentData $data): PaymentReadModel; + + public function void(SchoolContext $context, int $paymentId, string $reason): void; +} +``` + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface PaymentAllocationPolicyContract +{ + public function allocate(SchoolContext $context, int $invoiceId, float $amount): array; +} +``` + +### Files + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface FileAccessPolicyContract +{ + public function canAccess(SchoolContext $context, string $filePurpose, int $ownerId, array $metadata = []): bool; +} +``` + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface FileStorageServiceContract +{ + public function store(SchoolContext $context, string $purpose, mixed $file, array $metadata = []): string; + + public function resolvePath(SchoolContext $context, string $fileReference): string; + + public function delete(SchoolContext $context, string $fileReference): void; +} +``` + +### Communication + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Communication\Data\MessageData; +use App\Domain\SchoolCore\Communication\Data\RecipientQuery; + +interface CommunicationServiceContract +{ + public function previewRecipients(SchoolContext $context, RecipientQuery $query): array; + + public function send(SchoolContext $context, MessageData $message): array; +} +``` + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; +use App\Domain\SchoolCore\Communication\Data\RecipientQuery; + +interface RecipientResolverContract +{ + public function resolve(SchoolContext $context, RecipientQuery $query): array; +} +``` + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface CommunicationPreferencePolicyContract +{ + public function mayContact(SchoolContext $context, int $recipientId, string $channel, string $purpose): bool; +} +``` + +### Reporting + +```php +namespace App\Domain\SchoolCore\Contracts; + +use App\Domain\SchoolCore\Context\SchoolContext; + +interface ReportServiceContract +{ + public function generate(SchoolContext $context, string $reportKey, array $filters = []): array; +} +``` + +## DTO and Read Model Rules + +Create DTOs only where contracts need them. Do not invent DTOs for every two-field method just to feel enterprise. + +Recommended naming: + +```text +CreateStudentData +UpdateStudentData +StudentReadModel +AttendanceMarkData +AttendanceScanData +AttendanceResult +CreateInvoiceData +RecordPaymentData +EditPaymentData +PaymentReadModel +MessageData +RecipientQuery +``` + +Rules: + +- DTOs must be immutable where practical. +- DTOs must be created from validated request data, not raw request data. +- DTOs must not call the database. +- Read models must not expose sensitive fields by default. +- Read models must include `school_id` only when needed for authorization/debugging, not casually leaked in every response. + +## Service Provider Bindings + +Create `SchoolCoreServiceProvider`. + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Contracts\StudentServiceContract; +use App\Domain\SchoolCore\Students\Services\StudentService; + +class SchoolCoreServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(StudentServiceContract::class, StudentService::class); + // Bind additional core contracts as implementations are introduced. + } +} +``` + +Create `IslamicSundaySchoolServiceProvider` for extension policies. + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Contracts\AttendancePolicyContract; +use App\Domain\IslamicIslamicSundaySchool\Attendance\IslamicSundaySchoolAttendancePolicy; + +class IslamicSundaySchoolServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(AttendancePolicyContract::class, IslamicSundaySchoolAttendancePolicy::class); + } +} +``` + +Important: core contract bindings may point to core defaults. Islamic Sunday School may override only extension contracts/policies, not replace the entire platform unless a module-specific reason is documented. + +## Binding Strategy + +Use this three-level binding model: + +### 1. Core service contracts + +These are stable platform services. + +Examples: + +```text +StudentServiceContract → SchoolCore\Students\Services\StudentService +PaymentServiceContract → SchoolCore\Finance\Services\PaymentService +AttendanceServiceContract → SchoolCore\Attendance\Services\AttendanceService +``` + +### 2. Policy/provider contracts + +These are extension points. + +Examples: + +```text +AttendancePolicyContract → IslamicSundaySchool\Attendance\IslamicSundaySchoolAttendancePolicy +AcademicCalendarProviderContract → IslamicSundaySchool\Providers\IslamicSundaySchoolCalendarProvider +PaymentAllocationPolicyContract → IslamicSundaySchool\Policies\IslamicSundaySchoolPaymentAllocationPolicy +``` + +### 3. Infrastructure contracts + +These provide storage, messaging, and integration adapters. + +Examples: + +```text +FileStorageServiceContract → LaravelLocalFileStorageService +CommunicationServiceContract → LaravelCommunicationService +``` + +## First Migration Slice: Student Identifier Generation + +This is the safest first slice because it fixes a real design bug without moving the whole student module. + +### Current Problem + +Student creation currently risks race conditions when identifiers are generated using `max(id) + 1` before the student row is safely persisted. + +### Target Design + +```text +StudentController + → CreateStudentRequest + → CreateStudentData + → StudentServiceContract + → StudentService + → StudentIdentifierGeneratorContract +``` + +### Tasks + +1. Create `StudentIdentifierGeneratorContract`. +2. Create default implementation: `SequentialStudentIdentifierGenerator`. +3. Generate identifier after student insert using the persisted student ID. +4. Add unique database constraint for `(school_id, school_id_number)` or equivalent identifier column. +5. Add retry behavior for collisions. +6. Add concurrent creation test. +7. Keep the existing API response compatible. + +### Acceptance Criteria + +- Two concurrent student creations cannot produce the same identifier. +- Student ID format can be changed by binding a different generator. +- Islamic Sunday School-specific identifier formatting does not live inside core student creation logic. +- Existing student creation endpoint still works. + +## Second Migration Slice: Payment File Access Policy + +This slice validates that contracts can enforce security boundaries. + +### Current Problem + +Filename-based file serving risks unauthorized access if a user can guess a payment file name. + +### Target Design + +```text +PaymentManualController + → PaymentFileDownloadRequest + → PaymentServiceContract or PaymentFileService + → FileAccessPolicyContract + → FileStorageServiceContract +``` + +### Tasks + +1. Create `FileAccessPolicyContract`. +2. Create `PaymentFileAccessPolicy` implementation. +3. Replace filename-only lookup with payment-ID-based lookup. +4. Resolve file path from the payment record. +5. Authorize against school context and actor permissions. +6. Add audit log entry for file access. +7. Return `403` for unauthorized access. +8. Return `404` for missing file or missing payment. +9. Add tests for guessed filename access. + +### Acceptance Criteria + +- Users cannot download payment files by guessing filenames. +- Finance/admin users can download authorized payment files. +- Parents can only download files tied to their own financial records, if product rules allow parent access. +- Cross-school access fails. +- Payment file access uses `SchoolContext`. + +## Third Migration Slice: Attendance Policy Stub + +This slice prepares Phase 4 without fully extracting scanner logic yet. + +### Target Design + +```text +ScannerController + → AttendanceServiceContract + → AttendancePolicyContract + → AcademicCalendarProviderContract +``` + +### Tasks + +1. Create `AttendancePolicyContract`. +2. Create default `StandardSchoolAttendancePolicy`. +3. Create `IslamicSundaySchoolAttendancePolicy`. +4. Create `AcademicCalendarProviderContract`. +5. Create default provider. +6. Bind Islamic Sunday School provider in `IslamicSundaySchoolServiceProvider`. +7. Update scanner service extraction plan to call policies instead of hardcoded date/session assumptions. + +### Acceptance Criteria + +- Islamic Sunday School program attendance logic lives outside core. +- Attendance duplicate window is policy-driven. +- Scanner code can call a policy without knowing the school type. + +## Controller Dependency Rule + +New or touched controllers should depend on contracts, not concrete domain services. + +Good: + +```php +public function __construct(private StudentServiceContract $students) {} +``` + +Bad: + +```php +public function __construct(private IslamicSundaySchoolStudentService $students) {} +``` + +Also bad: + +```php +public function store(Request $request) +{ + $schoolId = auth()->user()->school_id; + // 120 lines of student creation logic +} +``` + +Because apparently controllers become landfill if left unsupervised. + +## Architecture Tests + +Add architecture tests using one of these approaches: + +- Pest architecture tests if Pest is available. +- PHPUnit custom tests scanning namespaces/imports. +- Static analysis rule in PHPStan/Larastan if already installed. + +### Required Architecture Tests + +#### `SchoolCore` must not import `IslamicSundaySchool` + +```php +public function test_school_core_does_not_depend_on_islamic_sunday_school(): void +{ + $files = glob(app_path('Domain/SchoolCore/**/*.php')); + + foreach ($files as $file) { + $contents = file_get_contents($file); + $this->assertStringNotContainsString('App\\Domain\\IslamicSundaySchool', $contents, $file); + } +} +``` + +#### Domain services must not use raw request + +```php +public function test_domain_services_do_not_depend_on_http_request(): void +{ + $files = glob(app_path('Domain/**/*.php')); + + foreach ($files as $file) { + $contents = file_get_contents($file); + $this->assertStringNotContainsString('Illuminate\\Http\\Request', $contents, $file); + } +} +``` + +#### Domain services must not call `auth()` + +```php +public function test_domain_services_do_not_call_auth_helper(): void +{ + $files = glob(app_path('Domain/**/*.php')); + + foreach ($files as $file) { + $contents = file_get_contents($file); + $this->assertStringNotContainsString('auth()', $contents, $file); + } +} +``` + +#### Core contracts must be neutral + +Search contract names and method names for Islamic Sunday School vocabulary: + +```text +masjid/community +ministry +sunday +bible +servant +service_day +``` + +Those words may appear in `IslamicSundaySchool`, not `SchoolCore`. + +## Contract Review Checklist + +Before approving a contract, answer: + +- Is the name globally meaningful for any school? +- Does it require `SchoolContext`? +- Does it avoid `Request`? +- Does it avoid `auth()`? +- Does it avoid Eloquent leakage across module boundaries? +- Does it describe transaction ownership? +- Does it describe authorization expectations? +- Can Islamic Sunday School customize behavior without editing the contract? +- Can another school type use this contract without pretending to be a Islamic Sunday School? + +## Implementation Tickets + +### CC-001: Create Domain Namespace Skeleton + +**Objective:** Create the folder and namespace structure for `SchoolCore`, `IslamicSundaySchool`, and `Shared`. + +**Tasks:** + +- Add directory structure. +- Add placeholder README files for each major module. +- Document dependency direction in `app/Domain/README.md`. + +**Acceptance Criteria:** + +- Namespace structure exists. +- Dependency rule is documented. +- No production behavior changes. + +### CC-002: Create Core Contract Interfaces + +**Objective:** Add first-pass contracts for students, attendance, finance, files, communication, academics, enrollment, and reporting. + +**Tasks:** + +- Add contracts under `App\Domain\SchoolCore\Contracts`. +- Add minimal DTO namespaces. +- Add docblocks for transaction and authorization expectations. + +**Acceptance Criteria:** + +- Contracts compile. +- Contracts use `SchoolContext`. +- Contracts do not mention Islamic Sunday School concepts. + +### CC-003: Add Service Providers and Bindings + +**Objective:** Bind contracts to initial implementations. + +**Tasks:** + +- Create `SchoolCoreServiceProvider`. +- Create `IslamicSundaySchoolServiceProvider`. +- Register providers. +- Bind first implementations. + +**Acceptance Criteria:** + +- Container resolves all initial contracts. +- Islamic Sunday School extension policies can override policy/provider contracts. +- Core service bindings remain neutral. + +### CC-004: Add Architecture Boundary Tests + +**Objective:** Prevent forbidden dependencies. + +**Tasks:** + +- Add tests for `SchoolCore -> IslamicSundaySchool` imports. +- Add tests preventing `Request` in domain services. +- Add tests preventing `auth()` in domain services. +- Add tests for forbidden vocabulary in `SchoolCore` contracts. + +**Acceptance Criteria:** + +- Tests fail when forbidden dependencies are introduced. +- Tests run in CI. + +### CC-005: Migrate Student Identifier Generation Behind Contract + +**Objective:** Fix student identifier race condition and introduce the first real core contract usage. + +**Tasks:** + +- Create `StudentIdentifierGeneratorContract`. +- Add default implementation. +- Update student creation flow. +- Add unique constraint. +- Add concurrency test. + +**Acceptance Criteria:** + +- No duplicate student identifiers under concurrent creation. +- Identifier format can be replaced by binding. +- Existing API response is preserved. + +### CC-006: Migrate Payment File Access Behind Policy Contract + +**Objective:** Use contract architecture to fix payment file authorization. + +**Tasks:** + +- Create `FileAccessPolicyContract`. +- Create payment-specific policy implementation. +- Replace filename-only access with payment-ID-based access. +- Add audit log. +- Add authorization tests. + +**Acceptance Criteria:** + +- Guessed filenames cannot access files. +- Cross-school file access fails. +- Authorized finance/admin access succeeds. + +### CC-007: Add Attendance Policy Stub + +**Objective:** Prepare attendance extraction by separating attendance rules from scanner implementation. + +**Tasks:** + +- Create `AttendancePolicyContract`. +- Create `AcademicCalendarProviderContract`. +- Add default and Islamic Sunday School implementations. +- Bind policy/provider implementations. + +**Acceptance Criteria:** + +- Islamic Sunday School attendance rules are outside `SchoolCore`. +- Scanner extraction can use contracts in Phase 4. + +## Phase 2 Rollout Order + +Use this order: + +1. Create namespace skeleton. +2. Add core contracts. +3. Add DTO/read model skeletons. +4. Add providers and empty bindings. +5. Add architecture tests. +6. Migrate student identifier generation. +7. Migrate payment file access. +8. Add attendance policy stub. +9. Update modular platform plan with completed contracts. + +## Phase 2 Done Definition + +Phase 2 is complete when: + +- Core contracts exist and compile. +- Initial service providers are registered. +- `SchoolCore` cannot depend on `IslamicSundaySchool` without failing tests. +- Domain services cannot use `Request` or `auth()` without failing tests. +- Student identifier generation is contract-based and race-safe. +- Payment file access uses policy-based authorization. +- Attendance has policy/provider contracts ready for extraction. +- Islamic Sunday School behavior is expressed through extension contracts, not hardcoded core logic. + +## Risks + +### Risk: Too many contracts too early + +Mitigation: only create contracts that are needed by migration slices. Keep method count small. + +### Risk: Interfaces mirror bad legacy services + +Mitigation: design contracts around platform capabilities, not current class names. + +### Risk: Islamic Sunday School rules leak into core + +Mitigation: forbidden vocabulary tests and provider-based extension points. + +### Risk: Controllers keep calling old services + +Mitigation: each touched controller must move toward contract injection. + +### Risk: DTO explosion + +Mitigation: create DTOs for cross-module payloads only. Do not manufacture object bureaucracy for two strings and a prayer. + +## Non-Goals + +Phase 2 does not fully refactor finance, attendance, students, communication, or reporting. + +Phase 2 does not remove every legacy service. + +Phase 2 does not redesign every database table. + +Phase 2 creates the contract layer and proves the boundary works through a few real migration slices. + +## Final Notes + +This phase must be boring on purpose. Contracts are not where creativity belongs. They are where the platform decides what it promises and what it refuses to know. + +The most important rule: `SchoolCore` must remain generic. Islamic Sunday School extends it. It does not secretly define it. diff --git a/docs/modular_plans/phase_3_modular_finance_execution_plan_islamic.md b/docs/modular_plans/phase_3_modular_finance_execution_plan_islamic.md new file mode 100644 index 00000000..9de46432 --- /dev/null +++ b/docs/modular_plans/phase_3_modular_finance_execution_plan_islamic.md @@ -0,0 +1,1511 @@ +# Phase 3 Execution Plan: Modular Finance Extraction + + +# Islamic Sunday School Alignment Update + +Phase 3 finance now treats the extension as **Islamic Sunday School**. + +`SchoolCore\Finance` owns financial correctness: invoices, payments, refunds, allocation, files, transactions, audit, idempotency, and balance calculation. + +`IslamicSundaySchool\Finance` may customize labels and policies for: + +```text +tuition +registration fees +supply/book fees +Qur'an/Arabic/Islamic studies program fees +sibling discounts +need-based scholarships +sadaqah/zakat-sponsored scholarships, if the organization supports them +masjid-family reporting labels +``` + +Do not put religious finance labels into core contracts. Core should use neutral concepts like charge, payment, discount, scholarship, donation classification, and allocation policy. The Islamic Sunday School layer maps those to local terminology. + +--- +## 1. Purpose + +Phase 3 extracts finance into a reusable `SchoolCore` module that can support any school system while allowing Islamic Sunday School-specific finance behavior through policies and extension services. + +The finance module must own the invariant parts of school finance: + +- invoices +- invoice items +- charges +- discounts +- payments +- refunds +- balances +- payment files +- financial audit logs +- payment allocation +- transaction safety +- authorization boundaries + +Islamic Sunday School may customize labels, tuition rules, donation classification, family/group billing behavior, scholarships, and reporting views, but it must not alter core payment correctness. + +The goal is not to make finance merely “cleaner.” The goal is to make it hard to corrupt money, leak files, or fork business logic across controllers like a spreadsheet that learned HTTP and got overconfident. + +--- + +## 2. Required Dependency Direction + +Finance must follow the modular platform boundary: + +```text +App\Domain\IslamicIslamicSundaySchool\Finance + ↓ depends on +App\Domain\SchoolCore\Finance + ↓ depends on +App\Domain\SchoolCore\Shared +``` + +Forbidden dependencies: + +```text +SchoolCore\Finance -> IslamicSundaySchool\* +SchoolCore\Finance -> Http\Request +SchoolCore\Finance -> auth() +SchoolCore\Finance -> controller classes +SchoolCore\Finance -> Islamic Sunday School vocabulary +SchoolCore\Finance -> direct unscoped school queries +``` + +Allowed dependencies: + +```text +IslamicSundaySchool\Finance -> SchoolCore\Finance contracts +Http\Controllers -> finance contracts +Jobs -> finance contracts +Finance services -> SchoolContext +Finance services -> shared audit/transaction/file contracts +``` + +--- + +## 3. Target Namespace Structure + +Create the finance module under `SchoolCore`: + +```text +app/ + Domain/ + SchoolCore/ + Finance/ + Contracts/ + InvoiceServiceContract.php + PaymentServiceContract.php + RefundServiceContract.php + ChargeServiceContract.php + PaymentAllocationPolicyContract.php + TuitionPolicyContract.php + FinanceAuditLoggerContract.php + FinanceFileServiceContract.php + DTO/ + CreateInvoiceData.php + InvoiceItemData.php + RecordPaymentData.php + EditPaymentData.php + RefundPaymentData.php + PaymentFileData.php + FinanceActorData.php + MoneyData.php + Enums/ + InvoiceStatus.php + PaymentStatus.php + PaymentMethod.php + LedgerDirection.php + FinanceAuditAction.php + Exceptions/ + FinanceException.php + InvoiceNotFoundException.php + PaymentNotFoundException.php + UnauthorizedFinanceAccessException.php + InvalidPaymentAmountException.php + InvoiceOverpaymentException.php + FinanceConcurrencyException.php + Services/ + InvoiceService.php + PaymentService.php + RefundService.php + ChargeService.php + BalanceCalculator.php + PaymentFileService.php + FinanceAuditLogger.php + Policies/ + DefaultPaymentAllocationPolicy.php + DefaultTuitionPolicy.php + Repositories/ + InvoiceRepository.php + PaymentRepository.php + FinanceReadRepository.php + Support/ + Money.php + FinanceTransactionRunner.php + FinanceIdempotencyKey.php + PaymentFileLocator.php +``` + +Islamic Sunday School-specific finance goes here: + +```text +app/ + Domain/ + IslamicSundaySchool/ + Finance/ + Policies/ + IslamicSundaySchoolTuitionPolicy.php + IslamicSundaySchoolPaymentAllocationPolicy.php + Reports/ + IslamicSundaySchoolFinanceReportBuilder.php + Providers/ + IslamicSundaySchoolFinanceServiceProvider.php +``` + +--- + +## 4. Core Design Rules + +### 4.1 Finance services must require `SchoolContext` + +Every public finance service method must receive or resolve `SchoolContext`. + +Example: + +```php +public function recordPayment( + SchoolContext $context, + RecordPaymentData $data +): PaymentResult; +``` + +A finance operation without context is invalid. + +### 4.2 Money must use fixed precision + +No float math in finance service logic. + +Allowed: + +- integer cents +- fixed decimal string +- database decimal with explicit rounding strategy +- dedicated `Money` value object + +Forbidden: + +```php +$amount = (float) $request->amount; +$total += $amount; +``` + +That is not financial software. That is numerology with database writes. + +### 4.3 Every mutation must be transactional + +Required transactional operations: + +- invoice creation +- invoice item update +- charge application +- discount application +- payment recording +- payment editing +- payment deletion/reversal +- refund creation +- invoice recalculation +- payment file association +- financial audit log creation + +### 4.4 Row locking is required for invoice/payment mutation + +Any mutation that changes invoice balance or payment amount must lock the relevant records. + +Required pattern: + +```php +DB::transaction(function () use ($context, $invoiceId, $data) { + $invoice = Invoice::query() + ->where('school_id', $context->schoolId()) + ->whereKey($invoiceId) + ->lockForUpdate() + ->firstOrFail(); + + // mutate payment/invoice safely here +}); +``` + +### 4.5 Controllers must not calculate balances + +Controllers may: + +- validate request +- authorize route +- build DTO +- call finance contract +- return resource + +Controllers may not: + +- calculate invoice totals +- calculate remaining balance +- determine payment allocation +- decide finance status +- serve files by arbitrary filename +- update invoice after payment manually + +--- + +## 5. Core Contracts + +### 5.1 `InvoiceServiceContract` + +```php +namespace App\Domain\SchoolCore\Finance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Finance\DTO\CreateInvoiceData; + +interface InvoiceServiceContract +{ + public function createInvoice(SchoolContext $context, CreateInvoiceData $data): InvoiceResult; + + public function recalculateInvoice(SchoolContext $context, int $invoiceId): InvoiceBalanceResult; + + public function voidInvoice(SchoolContext $context, int $invoiceId, string $reason): InvoiceResult; + + public function getInvoice(SchoolContext $context, int $invoiceId): InvoiceView; +} +``` + +### 5.2 `PaymentServiceContract` + +```php +namespace App\Domain\SchoolCore\Finance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Finance\DTO\RecordPaymentData; +use App\Domain\SchoolCore\Finance\DTO\EditPaymentData; + +interface PaymentServiceContract +{ + public function recordPayment(SchoolContext $context, RecordPaymentData $data): PaymentResult; + + public function editPayment(SchoolContext $context, int $paymentId, EditPaymentData $data): PaymentResult; + + public function reversePayment(SchoolContext $context, int $paymentId, string $reason): PaymentResult; + + public function getPayment(SchoolContext $context, int $paymentId): PaymentView; +} +``` + +### 5.3 `RefundServiceContract` + +```php +namespace App\Domain\SchoolCore\Finance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Finance\DTO\RefundPaymentData; + +interface RefundServiceContract +{ + public function refundPayment(SchoolContext $context, RefundPaymentData $data): RefundResult; +} +``` + +### 5.4 `PaymentAllocationPolicyContract` + +```php +namespace App\Domain\SchoolCore\Finance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface PaymentAllocationPolicyContract +{ + public function allocate( + SchoolContext $context, + InvoiceView $invoice, + Money $paymentAmount + ): PaymentAllocationResult; +} +``` + +Islamic Sunday School may override this contract to support family-level rules, scholarships, donations, or program-specific payment behavior. + +### 5.5 `TuitionPolicyContract` + +```php +namespace App\Domain\SchoolCore\Finance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface TuitionPolicyContract +{ + public function calculateExpectedCharges( + SchoolContext $context, + StudentFinanceProfile $student + ): ChargeCalculationResult; +} +``` + +### 5.6 `FinanceFileServiceContract` + +```php +namespace App\Domain\SchoolCore\Finance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use Symfony\Component\HttpFoundation\BinaryFileResponse; + +interface FinanceFileServiceContract +{ + public function attachPaymentFile( + SchoolContext $context, + int $paymentId, + PaymentFileData $file + ): PaymentFileResult; + + public function downloadPaymentFile( + SchoolContext $context, + int $paymentId, + string $mode + ): BinaryFileResponse; +} +``` + +Critical rule: payment files are accessed by payment ID or file record ID, never by arbitrary filename. + +--- + +## 6. DTO Requirements + +Create DTOs for finance inputs. Do not pass raw request arrays into finance services. + +### 6.1 `RecordPaymentData` + +Fields: + +```text +invoice_id +student_id, nullable +guardian_id, nullable +amount +currency +payment_method +payment_date +reference_number, nullable +notes, nullable +idempotency_key, nullable +uploaded_file, nullable +metadata, nullable +``` + +Validation belongs in FormRequest, but DTO construction must still guard required invariants. + +### 6.2 `EditPaymentData` + +Fields: + +```text +amount, nullable +payment_method, nullable +payment_date, nullable +reference_number, nullable +notes, nullable +replacement_file, nullable +edit_reason +metadata, nullable +``` + +`edit_reason` is required for auditability. + +### 6.3 `MoneyData` + +Fields: + +```text +amount_minor +currency +scale +``` + +Example: + +```text +amount_minor = 12500 +currency = USD +scale = 2 +``` + +This represents `$125.00`. + +--- + +## 7. Payment File Access Hardening + +Current risk: file access based on filename can allow unauthorized users to guess or retrieve files if route authorization is incomplete. + +New rule: + +```text +No finance file download may accept only a filename. +``` + +Target route: + +```text +GET /api/finance/payments/{payment}/file +``` + +Required flow: + +```text +1. Resolve SchoolContext. +2. Load payment scoped to school_id. +3. Authorize actor against payment/invoice/student/guardian. +4. Resolve file from payment record. +5. Confirm file path belongs to configured finance storage disk/path. +6. Log access. +7. Stream/download file. +``` + +Forbidden flow: + +```text +1. Accept filename. +2. basename(filename). +3. Search upload folders. +4. Download first matching file. +``` + +Basename prevents traversal. It does not prove authorization. This is apparently a distinction computers need humans to explain. + +--- + +## 8. Transaction and Locking Strategy + +### 8.1 Payment recording + +Required transaction: + +```text +BEGIN + lock invoice + validate invoice belongs to school + validate actor authorization + validate payment amount + create payment + attach payment file, if provided + allocate payment + recalculate invoice + write audit log +COMMIT +``` + +### 8.2 Payment editing + +Required transaction: + +```text +BEGIN + lock payment + lock invoice + capture before state + validate actor authorization + validate new amount/method/date + update payment + reallocate payment if needed + recalculate invoice + write audit log with before/after +COMMIT +``` + +### 8.3 Payment reversal + +Required transaction: + +```text +BEGIN + lock payment + lock invoice + mark payment reversed + recalculate invoice + write audit log +COMMIT +``` + +### 8.4 Refund + +Required transaction: + +```text +BEGIN + lock payment + lock invoice + validate refundable amount + create refund record + update payment refunded amount/status + recalculate invoice + write audit log +COMMIT +``` + +--- + +## 9. Audit Logging Requirements + +Every finance mutation must create a finance audit event. + +Required audit fields: + +```text +school_id +academic_year_id +term_id, nullable +actor_user_id +actor_role_snapshot +action +entity_type +entity_id +before_json, nullable +after_json, nullable +reason, nullable +request_id +ip_address, nullable +user_agent, nullable +idempotency_key, nullable +created_at +``` + +Required actions: + +```text +invoice.created +invoice.updated +invoice.voided +invoice.recalculated +payment.recorded +payment.edited +payment.reversed +payment.file_attached +payment.file_downloaded +refund.created +charge.applied +discount.applied +``` + +Audit logs are append-only. Do not update old audit rows unless the project enjoys inventing evidence after the fact. + +--- + +## 10. Idempotency Requirements + +Payment mutations must support idempotency. + +Minimum implementation: + +```text +idempotency_key +actor_user_id +school_id +operation +payload_hash +result_entity_type +result_entity_id +created_at +expires_at +``` + +Behavior: + +```text +- Same key + same operation + same payload returns original result. +- Same key + same operation + different payload fails. +- Expired keys may be purged. +- Missing idempotency key is allowed for legacy endpoints during transition, but new clients should send one. +``` + +Apply first to: + +```text +- record payment +- edit payment +- refund payment +``` + +--- + +## 11. Extension Model for Islamic Sunday School + +Islamic Sunday School finance must extend the core through policies and adapters, not by modifying core services. + +### 11.1 Islamic Sunday School allowed customizations + +```text +- family-based billing labels +- donation classification +- ministry scholarship logic +- Islamic Sunday School-specific tuition plans +- custom discount labels +- custom finance dashboards +- masjid/family reports +``` + +### 11.2 Islamic Sunday School forbidden customizations + +```text +- bypassing invoice row locks +- bypassing payment audit logs +- downloading files by filename +- calculating balances in controllers +- writing payments without SchoolContext +- storing Islamic Sunday School terms inside core contracts +``` + +### 11.3 Binding example + +```php +$this->app->bind( + TuitionPolicyContract::class, + IslamicSundaySchoolTuitionPolicy::class +); + +$this->app->bind( + PaymentAllocationPolicyContract::class, + IslamicSundaySchoolPaymentAllocationPolicy::class +); +``` + +--- + +## 12. Migration Strategy + +### 12.1 Do not rewrite all finance at once + +Use vertical slices. + +Recommended order: + +```text +1. Payment file access +2. Payment recording +3. Payment editing +4. Invoice recalculation +5. Refunds/reversals +6. Discounts/charges +7. Reports +``` + +Why this order: + +- File access is a security boundary. +- Payment recording/editing affects money. +- Invoice recalculation must become single-source-of-truth. +- Refunds and discounts build on stable payment/invoice primitives. +- Reports should consume stable finance read models last. + +### 12.2 Compatibility layer + +Existing controllers may remain temporarily, but must delegate to new contracts. + +Example: + +```text +PaymentManualController + -> RecordPaymentRequest + -> SchoolContext + -> RecordPaymentData + -> PaymentServiceContract::recordPayment() + -> PaymentResource +``` + +Legacy service methods should become wrappers or be deprecated. + +### 12.3 Deprecation rule + +Every legacy finance method must be labeled as one of: + +```text +canonical +adapter +deprecated +remove +``` + +No unlabeled duplicate finance logic. + +--- + +## 13. First Implementation Slice: Payment File Access + +### Objective + +Replace filename-based payment file download with payment-scoped, authorized access. + +### Tasks + +```text +FIN-001. Create FinanceFileServiceContract. +FIN-002. Create PaymentFileService implementation. +FIN-003. Create FileAccessPolicyContract if not already present from Phase 2. +FIN-004. Add payment-file route using payment ID. +FIN-005. Add FormRequest for file mode validation. +FIN-006. Update controller to call FinanceFileServiceContract. +FIN-007. Add audit log action payment.file_downloaded. +FIN-008. Mark old filename route deprecated or disable it behind compatibility flag. +``` + +### Required tests + +```text +- admin can download payment file in same school +- finance user can download payment file in same school +- parent can download payment file only for own student/family, if policy allows +- unrelated parent cannot download +- teacher cannot download unless explicitly allowed +- user from another school cannot download +- guessed filename cannot download +- missing file returns 404 +- payment without file returns 404 +- invalid mode fails validation +- file download creates audit log +``` + +### Done when + +```text +- No active endpoint downloads payment files by filename alone. +- Payment file authorization is policy-based. +- Cross-school file access is blocked by test. +- Access is audited. +``` + +--- + +## 14. Second Implementation Slice: Payment Recording + +### Objective + +Move manual payment recording into modular finance service. + +### Tasks + +```text +FIN-009. Create RecordPaymentData. +FIN-010. Create PaymentServiceContract. +FIN-011. Implement PaymentService::recordPayment(). +FIN-012. Create Money value object. +FIN-013. Add FinanceTransactionRunner. +FIN-014. Lock invoice during payment recording. +FIN-015. Move invoice recalculation into BalanceCalculator. +FIN-016. Add payment.recorded audit event. +FIN-017. Add idempotency support. +FIN-018. Update PaymentManualController to delegate. +``` + +### Required tests + +```text +- records valid payment +- rejects zero amount +- rejects negative amount +- rejects overpayment unless policy permits +- rejects invoice from another school +- recalculates invoice balance +- creates audit log +- creates same result for repeated idempotency key +- rejects same idempotency key with different payload +- concurrent payment attempts do not corrupt invoice balance +``` + +### Done when + +```text +- Controller no longer calculates payment balance. +- Payment creation is transactional. +- Invoice recalculation is single-source. +- Duplicate payment submission is idempotent. +``` + +--- + +## 15. Third Implementation Slice: Payment Editing + +### Objective + +Make payment editing transaction-safe and auditable. + +### Tasks + +```text +FIN-019. Create EditPaymentData. +FIN-020. Implement PaymentService::editPayment(). +FIN-021. Require edit reason. +FIN-022. Lock payment and invoice rows. +FIN-023. Capture before/after state. +FIN-024. Recalculate invoice inside transaction. +FIN-025. Add payment.edited audit event. +FIN-026. Update controller to delegate. +``` + +### Required tests + +```text +- edits amount safely +- edits method safely +- rejects unauthorized actor +- rejects cross-school payment edit +- rejects edit without reason +- recalculates invoice balance +- creates before/after audit log +- concurrent edits do not corrupt balance +``` + +### Done when + +```text +- Payment edit is fully transactional. +- Audit record includes before and after values. +- Invoice balance cannot drift during concurrent edits. +``` + +--- + +## 16. Fourth Implementation Slice: Invoice Recalculation + +### Objective + +Centralize all invoice balance calculations. + +### Tasks + +```text +FIN-027. Create BalanceCalculator. +FIN-028. Define invoice total calculation. +FIN-029. Define paid amount calculation. +FIN-030. Define refund/reversal handling. +FIN-031. Define status transition rules. +FIN-032. Replace scattered recalculation calls. +FIN-033. Add invoice.recalculated audit event where mutation-triggered. +``` + +### Invoice status rules + +Example baseline: + +```text +draft: invoice created but not issued +open: invoice issued with outstanding balance +partial: invoice has payment but balance remains +paid: balance is zero +overpaid: paid amount exceeds expected amount, only if policy permits +void: invoice intentionally canceled +``` + +### Required tests + +```text +- invoice total includes invoice items +- discount reduces balance correctly +- payment reduces balance correctly +- reversed payment restores balance +- refund restores balance correctly +- paid status is applied correctly +- partial status is applied correctly +- void invoice cannot receive payment unless policy permits +``` + +### Done when + +```text +- Invoice balance is calculated by one service. +- Controllers and reports do not duplicate balance logic. +- Finance reports use read models derived from the calculator. +``` + +--- + +## 17. Fifth Implementation Slice: Refunds and Reversals + +### Objective + +Add safe, auditable reversal/refund behavior. + +### Tasks + +```text +FIN-034. Create RefundServiceContract. +FIN-035. Create RefundPaymentData. +FIN-036. Implement refundPayment(). +FIN-037. Implement reversePayment(). +FIN-038. Add reason requirement. +FIN-039. Add refund.created and payment.reversed audit events. +FIN-040. Add refund/reversal status handling to BalanceCalculator. +``` + +### Required tests + +```text +- refund cannot exceed paid amount +- refund requires reason +- reversal requires reason +- reversed payment is excluded from paid total +- refunded amount affects balance +- refund creates audit log +- reversal creates audit log +- cross-school refund fails +- unauthorized refund fails +``` + +### Done when + +```text +- Refund and reversal behavior is explicit. +- Existing payment rows are not silently deleted. +- Financial history remains auditable. +``` + +--- + +## 18. Finance Reports + +Reports must not define finance truth. They display finance truth. + +### Tasks + +```text +FIN-041. Create FinanceReadRepository. +FIN-042. Create invoice balance read model. +FIN-043. Create payment summary read model. +FIN-044. Create outstanding balance read model. +FIN-045. Update finance reports to consume read models. +FIN-046. Add school context to all report queries. +``` + +### Required tests + +```text +- finance report excludes other schools +- outstanding balance matches BalanceCalculator +- payment report handles refunds/reversals +- report authorization is enforced +- export output matches approved snapshot +``` + +--- + +## 19. Database and Schema Requirements + +### 19.1 Required constraints + +Add or verify: + +```text +payments.school_id indexed +payments.invoice_id indexed +payments.student_id indexed, nullable +payments.guardian_id indexed, nullable +payments.status indexed +payments.idempotency_key indexed, nullable +payments.amount uses decimal or integer minor amount + +invoices.school_id indexed +invoices.student_id indexed, nullable +invoices.status indexed +invoices.total_amount fixed precision +invoices.balance_amount fixed precision + +finance_audit_logs.school_id indexed +finance_audit_logs.actor_user_id indexed +finance_audit_logs.entity_type/entity_id indexed +finance_audit_logs.created_at indexed + +payment_files.school_id indexed +payment_files.payment_id indexed +payment_files.storage_disk +payment_files.storage_path +``` + +### 19.2 Unique constraints + +Recommended: + +```text +unique(school_id, idempotency_key, operation) where idempotency_key is not null +unique(payment_id, file_type) if only one file per type is allowed +``` + +### 19.3 Migration caution + +Do not rename columns casually in the first slice. Wrap legacy schema with repositories/adapters first. Database heroics during finance extraction are how downtime earns a dramatic soundtrack. + +--- + +## 20. Authorization Requirements + +Finance authorization must be policy-based. + +Minimum actions: + +```text +invoice.view +invoice.create +invoice.update +invoice.void +payment.view +payment.record +payment.edit +payment.reverse +payment.refund +payment.file.download +finance.report.view +``` + +Every finance endpoint must have tests for: + +```text +unauthenticated +wrong school +wrong role +wrong owner/family +authorized admin +authorized finance staff +``` + +Authorization must check both: + +```text +actor role/capability +resource ownership/school boundary +``` + +--- + +## 21. FormRequest Requirements + +Create or update: + +```text +RecordPaymentRequest +EditPaymentRequest +RefundPaymentRequest +ReversePaymentRequest +DownloadPaymentFileRequest +CreateInvoiceRequest +VoidInvoiceRequest +ApplyChargeRequest +ApplyDiscountRequest +``` + +Each FormRequest must define: + +```text +authorize() +rules() +messages(), if needed +toDTO(), optional but recommended +``` + +Controllers should use: + +```php +$data = $request->toDTO(); +``` + +Not: + +```php +$data = array_merge($request->all(), $request->query->all(), $request->json()->all()); +``` + +That merge pattern should be retired, preferably with a small ceremony and no witnesses. + +--- + +## 22. Service Provider Bindings + +Create or update: + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Finance\Contracts\PaymentServiceContract; +use App\Domain\SchoolCore\Finance\Services\PaymentService; + +final class SchoolCoreFinanceServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(PaymentServiceContract::class, PaymentService::class); + $this->app->bind(InvoiceServiceContract::class, InvoiceService::class); + $this->app->bind(RefundServiceContract::class, RefundService::class); + $this->app->bind(FinanceFileServiceContract::class, PaymentFileService::class); + $this->app->bind(FinanceAuditLoggerContract::class, FinanceAuditLogger::class); + + $this->app->bind( + PaymentAllocationPolicyContract::class, + DefaultPaymentAllocationPolicy::class + ); + + $this->app->bind( + TuitionPolicyContract::class, + DefaultTuitionPolicy::class + ); + } +} +``` + +Islamic Sunday School may override policy bindings in its own provider. + +--- + +## 23. Architecture Tests + +Add tests that fail if finance boundaries are violated. + +Required assertions: + +```text +SchoolCore\Finance must not depend on Domain\IslamicIslamicSundaySchool +SchoolCore\Finance must not depend on Illuminate\Http\Request +SchoolCore\Finance services must not call auth() +SchoolCore\Finance services must not call request() +Controllers must not instantiate finance concrete services directly +Finance mutations must use FinanceTransactionRunner or DB transaction +Payment file downloads must go through FinanceFileServiceContract +``` + +Optional static checks: + +```text +No float casts in SchoolCore\Finance +No direct response()->download in finance controllers +No filename-only payment file route +No raw DB update for invoice balance outside BalanceCalculator +``` + +--- + +## 24. Rollout Plan + +### Step 1: Add finance module scaffolding + +```text +- create namespaces +- create contracts +- create DTOs +- create service provider +- bind default implementations +``` + +### Step 2: Add tests around existing behavior + +```text +- payment file download tests +- payment record tests +- payment edit tests +- invoice recalculation tests +``` + +Some tests may expose current failures. Good. That is the point. A failing test is cheaper than explaining to a parent why their invoice time-traveled. + +### Step 3: Implement payment file slice + +```text +- safest isolated security win +- minimal balance/invoice interaction +``` + +### Step 4: Implement payment record slice + +```text +- introduce transaction runner +- introduce money value object +- introduce audit log +``` + +### Step 5: Implement payment edit slice + +```text +- fix transaction safety +- before/after audit +``` + +### Step 6: Centralize invoice recalculation + +```text +- remove duplicate balance logic +- point reports toward read models +``` + +### Step 7: Add refunds/reversals + +```text +- build on stable payment/invoice model +``` + +### Step 8: Deprecate legacy methods + +```text +- mark adapters +- remove unreachable duplicate logic +- update docs +``` + +--- + +## 25. Implementation Tickets + +## FIN-001: Create finance module scaffold + +### Description + +Create the `SchoolCore\Finance` namespace and initial empty contracts, DTO folders, service folders, and provider. + +### Acceptance Criteria + +- Namespace exists. +- Service provider is registered. +- Empty contracts compile. +- No controller behavior changes yet. + +--- + +## FIN-002: Add Money value object + +### Description + +Create a `Money` value object using integer minor units or fixed decimal strategy. + +### Acceptance Criteria + +- No float input accepted without explicit parsing. +- Supports add, subtract, compare, equals, isZero, isPositive. +- Currency mismatch throws exception. +- Unit tests cover rounding and comparison. + +--- + +## FIN-003: Add finance audit logger + +### Description + +Create append-only finance audit log service. + +### Acceptance Criteria + +- Logs actor, context, action, entity, before/after, reason. +- Audit rows are school-scoped. +- Unit tests verify required fields. +- Mutation services can call logger inside transaction. + +--- + +## FIN-004: Replace payment file download flow + +### Description + +Implement payment-scoped file download. + +### Acceptance Criteria + +- Route uses payment ID. +- File is resolved from payment/file record. +- Authorization uses policy. +- Cross-school access fails. +- Filename guessing fails. +- Audit event is written. + +--- + +## FIN-005: Extract payment recording + +### Description + +Move payment recording into `PaymentService`. + +### Acceptance Criteria + +- Uses `SchoolContext`. +- Uses transaction. +- Locks invoice. +- Uses `Money`. +- Writes audit log. +- Supports idempotency. +- Controller delegates only. + +--- + +## FIN-006: Extract payment editing + +### Description + +Move payment editing into `PaymentService`. + +### Acceptance Criteria + +- Uses transaction. +- Locks payment and invoice. +- Requires reason. +- Writes before/after audit log. +- Recalculates invoice inside lock. +- Concurrent edit test passes. + +--- + +## FIN-007: Centralize invoice recalculation + +### Description + +Create `BalanceCalculator` and remove duplicate invoice balance logic. + +### Acceptance Criteria + +- All payment/refund/discount operations use same calculator. +- Tests cover partial, paid, overpaid, void, refund, reversed. +- No controller calculates invoice balance. + +--- + +## FIN-008: Add refunds and reversals + +### Description + +Create explicit refund and reversal flows. + +### Acceptance Criteria + +- Refunds cannot exceed refundable amount. +- Reversals require reason. +- No silent deletion of financial history. +- Audit logs exist. +- Balance recalculation is correct. + +--- + +## FIN-009: Add finance architecture tests + +### Description + +Enforce modular finance boundaries in CI. + +### Acceptance Criteria + +- `SchoolCore\Finance` cannot import `IslamicSundaySchool`. +- Services cannot call `auth()` or `request()`. +- No filename-only payment file download route remains active. +- No float casts in finance module. +- CI fails on boundary violation. + +--- + +## 26. Definition of Done for Phase 3 + +Phase 3 is done when: + +```text +- Finance core contracts exist. +- Payment file access is payment-scoped and authorized. +- Payment recording uses modular service. +- Payment editing uses modular service. +- Invoice recalculation is centralized. +- Finance audit logs are append-only and used by mutations. +- Money math avoids floats. +- Finance services require SchoolContext. +- Islamic Sunday School finance behavior is implemented through policies. +- Cross-school finance access is blocked by tests. +- Architecture tests prevent SchoolCore from depending on IslamicSundaySchool. +- Legacy finance methods are labeled as canonical, adapter, deprecated, or remove. +``` + +--- + +## 27. Non-Goals + +Do not include in Phase 3: + +```text +- complete finance UI redesign +- total database schema rewrite +- full accounting ledger replacement +- payroll +- external payment gateway integration +- donation tax receipt system +- masjid/community management CRM +``` + +Those may come later. Phase 3 is about building the reliable reusable finance core, not adopting every financial ambition a committee can imagine after coffee. + +--- + +## 28. Main Risks + +### Risk: accidental behavior break + +Mitigation: + +```text +- snapshot current API responses +- migrate one vertical slice at a time +- keep legacy adapters temporarily +``` + +### Risk: cross-school leakage + +Mitigation: + +```text +- mandatory SchoolContext +- school-scoped repositories +- authorization tests +``` + +### Risk: balance drift + +Mitigation: + +```text +- one BalanceCalculator +- transactions +- row locks +- concurrency tests +``` + +### Risk: Islamic Sunday School leakage into core + +Mitigation: + +```text +- contract vocabulary review +- architecture tests +- Islamic Sunday School policies only +``` + +### Risk: duplicated old/new finance logic + +Mitigation: + +```text +- legacy method labels +- controller delegation +- deprecation tickets +``` + +--- + +## 29. Immediate Next Work Queue + +Start here: + +```text +1. FIN-001 Create finance module scaffold +2. FIN-002 Create Money value object +3. FIN-003 Create finance audit logger +4. FIN-004 Replace payment file download flow +5. FIN-005 Extract payment recording +6. FIN-006 Extract payment editing +7. FIN-007 Centralize invoice recalculation +8. FIN-009 Add finance architecture tests +``` + +Do not start with reports. Reports consume truth. They do not create it. Starting with reports while payment mutation is unsafe is like painting a house while the foundation is trying to leave. diff --git a/docs/modular_plans/phase_4_modular_attendance_execution_plan_islamic.md b/docs/modular_plans/phase_4_modular_attendance_execution_plan_islamic.md new file mode 100644 index 00000000..26d9f13e --- /dev/null +++ b/docs/modular_plans/phase_4_modular_attendance_execution_plan_islamic.md @@ -0,0 +1,1799 @@ +# Phase 4 Execution Plan: Modular Attendance and Scanner Extraction + + +# Islamic Sunday School Alignment Update + +Phase 4 attendance now targets **Islamic Sunday School** as the extension layer. + +`SchoolCore\Attendance` owns scanner behavior, attendance records, sessions, status, idempotency, audit, and cross-school isolation. + +`IslamicSundaySchool\Attendance` may customize: + +```text +Sunday program sessions +Qur'an class sessions +Arabic class sessions +Islamic studies sessions +halaqa/group attendance +Jumu'ah or special-program attendance, if used by the school +volunteer attendance +late arrival windows +masjid calendar rules +``` + +The core must use neutral terms such as session, group, program, student, staff, volunteer, and attendance status. Islamic-specific vocabulary belongs in extension resolvers and policies. + +--- +## 1. Purpose + +Phase 4 extracts attendance and scanner behavior into a reusable `SchoolCore` module that can support any school system while allowing Islamic Sunday School-specific attendance behavior through policies and extension services. + +The attendance module must own the invariant parts of attendance: + +- attendance sessions/days +- student attendance +- staff attendance +- check-in/check-out events +- scan logs +- badge lookup +- late/absent/present status calculation +- idempotency +- audit logging +- cross-school isolation +- authorization boundaries + +Islamic Sunday School may customize: + +- Islamic Sunday School program session rules +- program/session attendance grouping +- program volunteer attendance +- late arrival windows +- class/session mapping +- masjid/family reporting labels +- event-specific attendance rules + +Islamic Sunday School must not own the core attendance mutation rules. That way the system can serve schools, academies, training centers, camps, daycare programs, Islamic Sunday Schools, and future human organizational inventions that will somehow still need attendance. + +--- + +## 2. Required Dependency Direction + +Attendance must follow the modular platform boundary: + +```text +App\Domain\IslamicIslamicSundaySchool\Attendance + ↓ depends on +App\Domain\SchoolCore\Attendance + ↓ depends on +App\Domain\SchoolCore\Shared +``` + +Forbidden dependencies: + +```text +SchoolCore\Attendance -> IslamicSundaySchool\* +SchoolCore\Attendance -> Http\Request +SchoolCore\Attendance -> auth() +SchoolCore\Attendance -> controller classes +SchoolCore\Attendance -> Islamic Sunday School vocabulary +SchoolCore\Attendance -> direct unscoped school queries +``` + +Allowed dependencies: + +```text +IslamicSundaySchool\Attendance -> SchoolCore\Attendance contracts +Http\Controllers -> attendance contracts +Jobs -> attendance contracts +Attendance services -> SchoolContext +Attendance services -> shared audit/transaction contracts +Attendance services -> academic calendar provider contract +``` + +--- + +## 3. Target Namespace Structure + +Create the attendance module under `SchoolCore`: + +```text +app/ + Domain/ + SchoolCore/ + Attendance/ + Contracts/ + AttendanceServiceContract.php + ScannerServiceContract.php + BadgeLookupServiceContract.php + AttendancePolicyContract.php + AttendanceSessionResolverContract.php + AttendanceStatusPolicyContract.php + AttendanceAuditLoggerContract.php + AttendanceIdempotencyServiceContract.php + StaffAttendanceServiceContract.php + StudentAttendanceServiceContract.php + DTO/ + RecordStudentAttendanceData.php + RecordStaffAttendanceData.php + ProcessScanData.php + BadgeLookupData.php + AttendanceSessionData.php + AttendanceStatusData.php + AttendanceActorData.php + AttendanceAuditData.php + AttendanceIdempotencyData.php + Enums/ + AttendanceSubjectType.php + AttendanceStatus.php + ScanAction.php + ScanSource.php + AttendanceAuditAction.php + AttendanceSessionStatus.php + Exceptions/ + AttendanceException.php + AttendanceSessionNotFoundException.php + BadgeNotFoundException.php + DuplicateScanException.php + UnauthorizedAttendanceAccessException.php + InvalidAttendanceStatusException.php + AttendanceConcurrencyException.php + Services/ + AttendanceService.php + ScannerService.php + BadgeLookupService.php + StudentAttendanceService.php + StaffAttendanceService.php + AttendanceSessionResolver.php + AttendanceStatusResolver.php + AttendanceAuditLogger.php + AttendanceIdempotencyService.php + LateArrivalEvaluator.php + Policies/ + DefaultAttendancePolicy.php + DefaultAttendanceStatusPolicy.php + DefaultAttendanceSessionPolicy.php + Repositories/ + AttendanceRepository.php + AttendanceReadRepository.php + BadgeRepository.php + AttendanceSessionRepository.php + Support/ + AttendanceTransactionRunner.php + AttendanceIdempotencyKey.php + ScanFingerprint.php + AttendanceClock.php +``` + +Islamic Sunday School-specific attendance goes here: + +```text +app/ + Domain/ + IslamicSundaySchool/ + Attendance/ + Policies/ + IslamicSundaySchoolAttendancePolicy.php + IslamicSundaySchoolAttendanceStatusPolicy.php + IslamicSundaySchoolSessionPolicy.php + Services/ + IslamicSundaySchoolSessionResolver.php + IslamicSundaySchoolLateArrivalEvaluator.php + Reports/ + IslamicSundaySchoolAttendanceReportBuilder.php + Providers/ + IslamicSundaySchoolAttendanceServiceProvider.php +``` + +--- + +## 4. Core Design Rules + +### 4.1 Attendance services must require `SchoolContext` + +Every public attendance service method must receive `SchoolContext`. + +Example: + +```php +public function processScan( + SchoolContext $context, + ProcessScanData $data +): ScanResult; +``` + +A scan without context is invalid. A scan with the wrong context is worse. + +### 4.2 Controllers must not decide attendance state + +Controllers may: + +- validate request +- authorize route +- build DTO +- call service contract +- return resource + +Controllers may not: + +- decide present/late/absent +- create attendance records directly +- create scan logs directly +- lookup badges directly +- calculate session dates +- mutate attendance day/session state +- decide duplicate scan handling + +### 4.3 Attendance writes must be transactional + +Required transactional operations: + +- scanner check-in/check-out +- student attendance manual edit +- staff attendance manual edit +- late slip/log creation +- attendance day/session creation +- bulk attendance import +- absence marking +- status recalculation + +### 4.4 Scanner flow must be idempotent + +Duplicate scans must not double-count attendance. + +Minimum duplicate identity: + +```text +school_id +subject_type +subject_id +session_id or attendance_date +station_id, nullable +scan_action +scan_source +scan_time_window +``` + +Example behavior: + +```text +- same student scans same station twice within configured duplicate window + => return existing result or duplicate warning, do not create second attendance mutation +``` + +### 4.5 Attendance must separate subject from role + +Attendance subjects are not always students. + +Core supported subject types: + +```text +student +staff +volunteer +visitor +``` + +Islamic Sunday School may map program volunteers to `volunteer` or `staff`, but core must not hardcode ministry language. + +--- + +## 5. Core Contracts + +### 5.1 `ScannerServiceContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Attendance\DTO\ProcessScanData; + +interface ScannerServiceContract +{ + public function processScan(SchoolContext $context, ProcessScanData $data): ScanResult; +} +``` + +### 5.2 `AttendanceServiceContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface AttendanceServiceContract +{ + public function getSessionAttendance(SchoolContext $context, int $sessionId): AttendanceSessionView; + + public function summarizeAttendance(SchoolContext $context, AttendanceSummaryQuery $query): AttendanceSummaryResult; +} +``` + +### 5.3 `StudentAttendanceServiceContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Attendance\DTO\RecordStudentAttendanceData; + +interface StudentAttendanceServiceContract +{ + public function recordStudentAttendance( + SchoolContext $context, + RecordStudentAttendanceData $data + ): AttendanceRecordResult; +} +``` + +### 5.4 `StaffAttendanceServiceContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Attendance\DTO\RecordStaffAttendanceData; + +interface StaffAttendanceServiceContract +{ + public function recordStaffAttendance( + SchoolContext $context, + RecordStaffAttendanceData $data + ): AttendanceRecordResult; +} +``` + +### 5.5 `BadgeLookupServiceContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Attendance\DTO\BadgeLookupData; + +interface BadgeLookupServiceContract +{ + public function lookup(SchoolContext $context, BadgeLookupData $data): BadgeLookupResult; +} +``` + +### 5.6 `AttendanceSessionResolverContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface AttendanceSessionResolverContract +{ + public function resolveForScan( + SchoolContext $context, + ScanSubjectView $subject, + ScanTimestamp $timestamp + ): AttendanceSessionView; +} +``` + +Islamic Sunday School may bind this contract to a Islamic Sunday School-specific resolver. + +### 5.7 `AttendancePolicyContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface AttendancePolicyContract +{ + public function canRecordAttendance( + SchoolContext $context, + AttendanceSubjectView $subject, + AttendanceSessionView $session + ): bool; + + public function duplicateScanWindowSeconds(SchoolContext $context): int; + + public function allowCheckout(SchoolContext $context): bool; + + public function allowManualOverride(SchoolContext $context): bool; +} +``` + +### 5.8 `AttendanceStatusPolicyContract` + +```php +namespace App\Domain\SchoolCore\Attendance\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface AttendanceStatusPolicyContract +{ + public function statusForScan( + SchoolContext $context, + AttendanceSessionView $session, + ScanTimestamp $timestamp + ): AttendanceStatusResult; +} +``` + +--- + +## 6. DTO Requirements + +Do not pass raw request arrays into attendance services. + +### 6.1 `ProcessScanData` + +Fields: + +```text +badge_value +station_id, nullable +scan_action +scan_source +scanned_at +device_id, nullable +client_request_id, nullable +metadata, nullable +idempotency_key, nullable +``` + +### 6.2 `RecordStudentAttendanceData` + +Fields: + +```text +student_id +session_id, nullable +attendance_date +status +source +recorded_at +reason, nullable +notes, nullable +override_reason, nullable +idempotency_key, nullable +metadata, nullable +``` + +### 6.3 `RecordStaffAttendanceData` + +Fields: + +```text +staff_id +session_id, nullable +attendance_date +status +source +recorded_at +reason, nullable +notes, nullable +override_reason, nullable +idempotency_key, nullable +metadata, nullable +``` + +### 6.4 `BadgeLookupData` + +Fields: + +```text +badge_value +badge_type, nullable +subject_type_hint, nullable +station_id, nullable +``` + +--- + +## 7. Scanner Flow Target Design + +Current risk: scanner logic can become a giant controller/service blob that mixes lookup, validation, attendance mutation, late logic, logging, and response formatting. + +Target flow: + +```text +ScannerController + -> ProcessScanRequest + -> SchoolContext + -> ProcessScanData + -> ScannerServiceContract::processScan() + -> ScanResource +``` + +Inside `ScannerService`: + +```text +1. Validate SchoolContext. +2. Normalize scan timestamp. +3. Build idempotency fingerprint. +4. Check duplicate scan. +5. Lookup badge. +6. Resolve attendance subject. +7. Resolve session/day. +8. Authorize attendance recording. +9. Determine scan status through policy. +10. Start transaction. +11. Lock subject/session attendance row. +12. Create or update attendance record. +13. Create scan log. +14. Create late/event log if needed. +15. Write audit log. +16. Store idempotency result. +17. Commit. +18. Return stable scan result. +``` + +Controllers should not know any of that. They have one job: receive chaos from the internet and pass it to adults. + +--- + +## 8. Attendance Session Model + +Core must support multiple attendance models: + +```text +daily attendance +period attendance +session attendance +event attendance +check-in/check-out attendance +``` + +Suggested neutral terms: + +```text +attendance_session +attendance_record +attendance_event +scan_log +attendance_subject +``` + +Avoid core terms like: + +```text +Sunday program +liturgy +Islamic Sunday School class +volunteer/program group +homeroom-only +semester-only +``` + +Those can exist in extensions. + +### 8.1 Session fields + +Suggested fields: + +```text +id +school_id +academic_year_id +term_id, nullable +name +session_type +starts_at +ends_at +timezone +status +metadata +created_at +updated_at +``` + +### 8.2 Record fields + +Suggested fields: + +```text +id +school_id +attendance_session_id, nullable +attendance_date +subject_type +subject_id +status +source +first_seen_at, nullable +last_seen_at, nullable +recorded_by_user_id, nullable +override_reason, nullable +metadata +created_at +updated_at +``` + +### 8.3 Event/scan log fields + +Suggested fields: + +```text +id +school_id +attendance_record_id, nullable +subject_type +subject_id +badge_id, nullable +station_id, nullable +scan_action +scan_source +scanned_at +status_result +duplicate_of_id, nullable +raw_payload_json, nullable +created_at +``` + +--- + +## 9. Attendance Status Rules + +Core statuses: + +```text +present +late +absent +excused +unexcused +checked_in +checked_out +unknown +``` + +Optional extended statuses: + +```text +left_early +medical +field_trip +remote +tardy_excused +tardy_unexcused +``` + +Rules: + +```text +- Status calculation belongs to AttendanceStatusPolicyContract. +- Manual override requires reason. +- Override must create audit log. +- Status transitions must be explicit. +- Reports must use canonical status codes, not display labels. +``` + +Islamic Sunday School can map statuses to friendly labels, but the core should use neutral stable codes. + +--- + +## 10. Idempotency and Duplicate Scan Rules + +### 10.1 Idempotency key + +Preferred: + +```text +client_request_id or idempotency_key from scanner device/client +``` + +Fallback fingerprint: + +```text +school_id +badge_value_hash +station_id +scan_action +scan_source +rounded_scanned_at_window +``` + +### 10.2 Duplicate scan behavior + +Within duplicate window: + +```text +- do not mutate attendance again +- return original scan result, or explicit duplicate result +- create optional duplicate scan log pointing to original scan +``` + +Outside duplicate window: + +```text +- allow check-in/check-out flow if policy allows +- otherwise return current attendance state without double-counting +``` + +### 10.3 Required tests + +```text +- duplicate scan within window does not create second record +- duplicate scan within window returns stable result +- duplicate scan from another station follows policy +- same badge next session creates new record +- same badge different school cannot collide +``` + +--- + +## 11. Transaction and Locking Strategy + +### 11.1 Scanner check-in + +Required transaction: + +```text +BEGIN + lock attendance session + lock or create attendance record for subject/session/date + write attendance event/scan log + update first_seen_at/last_seen_at/status + write late/event log if needed + write audit log + store idempotency result +COMMIT +``` + +### 11.2 Manual attendance edit + +Required transaction: + +```text +BEGIN + lock attendance record + capture before state + validate actor authorization + apply status update + write override reason + write audit log before/after +COMMIT +``` + +### 11.3 Bulk attendance marking + +Required transaction strategy: + +```text +- process in chunks +- each chunk runs in transaction +- every row scoped to school_id +- failures return row-level error report +- audit each changed row or write batch audit plus row details +``` + +--- + +## 12. Audit Logging Requirements + +Every attendance mutation must create an audit event. + +Required audit fields: + +```text +school_id +academic_year_id +term_id, nullable +actor_user_id, nullable +actor_type +action +subject_type +subject_id +attendance_session_id, nullable +attendance_record_id, nullable +before_json, nullable +after_json, nullable +reason, nullable +source +station_id, nullable +request_id, nullable +ip_address, nullable +user_agent, nullable +idempotency_key, nullable +created_at +``` + +Required actions: + +```text +attendance.scan.processed +attendance.scan.duplicate +attendance.student.recorded +attendance.student.edited +attendance.staff.recorded +attendance.staff.edited +attendance.status.overridden +attendance.session.created +attendance.session.closed +attendance.bulk.updated +``` + +Audit logs are append-only. + +--- + +## 13. Authorization Requirements + +Minimum actions: + +```text +attendance.scan.process +attendance.student.view +attendance.student.record +attendance.student.override +attendance.staff.view +attendance.staff.record +attendance.staff.override +attendance.session.view +attendance.session.manage +attendance.report.view +``` + +Every attendance endpoint must have tests for: + +```text +unauthenticated +wrong school +wrong role +wrong owner/family +authorized admin +authorized staff +authorized teacher +scanner/device token, if applicable +``` + +Authorization must check: + +```text +actor role/capability +school boundary +resource relationship +session state +device/station permission, if scanner devices are used +``` + +--- + +## 14. Islamic Sunday School Extension Model + +Islamic Sunday School attendance extends core through policies. + +### 14.1 Islamic Sunday School allowed customizations + +```text +- Islamic Sunday School program session resolver +- masjid/community calendar mapping +- class/session grouping +- program volunteer attendance +- program session attendance labels +- late window policy +- family attendance summaries +- curriculum attendance reports +``` + +### 14.2 Islamic Sunday School forbidden customizations + +```text +- bypassing attendance transactions +- bypassing audit logs +- creating scan logs without core scanner service +- hardcoding Islamic Sunday School terminology into SchoolCore contracts +- bypassing SchoolContext +- reading request/auth directly in domain services +``` + +### 14.3 Binding example + +```php +$this->app->bind( + AttendanceSessionResolverContract::class, + IslamicSundaySchoolSessionResolver::class +); + +$this->app->bind( + AttendanceStatusPolicyContract::class, + IslamicSundaySchoolAttendanceStatusPolicy::class +); + +$this->app->bind( + AttendancePolicyContract::class, + IslamicSundaySchoolAttendancePolicy::class +); +``` + +--- + +## 15. Migration Strategy + +### 15.1 Do not rewrite all attendance at once + +Use vertical slices. + +Recommended order: + +```text +1. Scanner request/controller delegation +2. Badge lookup service +3. Scan idempotency service +4. Student attendance recording +5. Staff attendance recording +6. Attendance status policy +7. Attendance session resolver +8. Manual override flows +9. Reports/read models +``` + +Why this order: + +```text +- Scanner is the current high-risk blob. +- Badge lookup creates a stable seam. +- Idempotency prevents duplicate reality. +- Student/staff recording are core reusable mutations. +- Status/session policies allow Islamic Sunday School customization. +- Reports should consume stable attendance data last. +``` + +### 15.2 Compatibility layer + +Existing controllers may remain temporarily, but must delegate to new contracts. + +Example: + +```text +ScannerController + -> ProcessScanRequest + -> SchoolContext + -> ProcessScanData + -> ScannerServiceContract::processScan() + -> ScanResource +``` + +Legacy private methods should move into services or be marked deprecated. + +### 15.3 Deprecation rule + +Every legacy attendance/scanner method must be labeled as one of: + +```text +canonical +adapter +deprecated +remove +``` + +No unlabeled duplicate attendance logic. + +--- + +## 16. First Implementation Slice: Scanner Controller Delegation + +### Objective + +Make the scanner controller thin without changing behavior. + +### Tasks + +```text +ATT-001. Create attendance module scaffold. +ATT-002. Create ScannerServiceContract. +ATT-003. Create ProcessScanData. +ATT-004. Create ProcessScanRequest. +ATT-005. Create ScannerService shell using existing logic internally. +ATT-006. Update ScannerController to delegate. +ATT-007. Add response resource/snapshot tests. +``` + +### Required tests + +```text +- valid student scan still works +- valid staff scan still works +- invalid badge still fails correctly +- existing response shape remains compatible +- unauthenticated scan behavior remains as intended +- school context is resolved +``` + +### Done when + +```text +- ScannerController has no private domain methods. +- Existing scanner API remains compatible. +- ScannerService is the only scanner orchestration entry point. +``` + +--- + +## 17. Second Implementation Slice: Badge Lookup Service + +### Objective + +Extract badge lookup into reusable service. + +### Tasks + +```text +ATT-008. Create BadgeLookupServiceContract. +ATT-009. Create BadgeLookupData. +ATT-010. Create BadgeRepository. +ATT-011. Scope badge lookup by school_id. +ATT-012. Return neutral subject result. +ATT-013. Add tests for student/staff/unknown badge. +``` + +### Required tests + +```text +- finds student badge in same school +- finds staff badge in same school +- does not find badge from another school +- handles inactive badge +- handles duplicate badge conflict explicitly +- unknown badge returns controlled error +``` + +### Done when + +```text +- ScannerService no longer performs direct badge queries. +- Badge result does not contain Islamic Sunday School-specific assumptions. +``` + +--- + +## 18. Third Implementation Slice: Scan Idempotency + +### Objective + +Prevent duplicate scanner mutations. + +### Tasks + +```text +ATT-014. Create AttendanceIdempotencyServiceContract. +ATT-015. Create ScanFingerprint. +ATT-016. Add idempotency key/fingerprint table if needed. +ATT-017. Store scan result for repeated calls. +ATT-018. Add duplicate scan log behavior. +``` + +### Required tests + +```text +- repeated scan with same key returns same result +- same key with different payload fails +- repeated scan within duplicate window does not double-count +- repeated scan after duplicate window follows policy +- duplicate detection is school-scoped +``` + +### Done when + +```text +- Duplicate scans cannot create duplicate attendance records. +- Idempotency behavior is deterministic and tested. +``` + +--- + +## 19. Fourth Implementation Slice: Student Attendance Recording + +### Objective + +Move student attendance mutation into modular service. + +### Tasks + +```text +ATT-019. Create StudentAttendanceServiceContract. +ATT-020. Create RecordStudentAttendanceData. +ATT-021. Implement StudentAttendanceService. +ATT-022. Add transaction runner. +ATT-023. Lock attendance record/session during mutation. +ATT-024. Add attendance.student.recorded audit event. +ATT-025. Make ScannerService call StudentAttendanceService. +``` + +### Required tests + +```text +- records present status +- records late status +- rejects invalid status +- rejects cross-school student +- creates audit log +- duplicate scan does not double mutate +- concurrent scan does not duplicate record +``` + +### Done when + +```text +- Student attendance mutation is in one service. +- Scanner and manual endpoints share the same mutation path where practical. +``` + +--- + +## 20. Fifth Implementation Slice: Staff Attendance Recording + +### Objective + +Move staff attendance mutation into modular service. + +### Tasks + +```text +ATT-026. Create StaffAttendanceServiceContract. +ATT-027. Create RecordStaffAttendanceData. +ATT-028. Implement StaffAttendanceService. +ATT-029. Add staff attendance audit events. +ATT-030. Make ScannerService call StaffAttendanceService. +``` + +### Required tests + +```text +- records staff present status +- records staff late status +- rejects cross-school staff +- rejects inactive staff if policy says so +- creates audit log +- duplicate scan does not double mutate +``` + +### Done when + +```text +- Staff attendance uses modular service. +- Staff and student attendance share common audit/idempotency infrastructure. +``` + +--- + +## 21. Sixth Implementation Slice: Attendance Session Resolver + +### Objective + +Create neutral session resolution that Islamic Sunday School can override. + +### Tasks + +```text +ATT-031. Create AttendanceSessionResolverContract. +ATT-032. Implement DefaultAttendanceSessionResolver. +ATT-033. Implement IslamicSundaySchoolSessionResolver. +ATT-034. Bind resolver through service provider. +ATT-035. Add tests for standard school and Islamic Sunday School sessions. +``` + +### Required tests + +```text +- resolves daily session for standard school +- resolves Islamic Sunday School program session for Islamic Sunday School profile +- rejects scan outside valid session if policy requires +- handles timezone correctly +- does not resolve another school's session +``` + +### Done when + +```text +- Core scanner does not hardcode Sunday/session logic. +- Islamic Sunday School session behavior is policy/resolver-driven. +``` + +--- + +## 22. Seventh Implementation Slice: Attendance Status Policy + +### Objective + +Move late/present/absent decision-making behind policy. + +### Tasks + +```text +ATT-036. Create AttendanceStatusPolicyContract. +ATT-037. Implement DefaultAttendanceStatusPolicy. +ATT-038. Implement IslamicSundaySchoolAttendanceStatusPolicy if needed. +ATT-039. Move late window logic out of controller/legacy methods. +ATT-040. Add status transition tests. +``` + +### Required tests + +```text +- scan before start is handled by policy +- scan during on-time window returns present +- scan after late threshold returns late +- excused/manual status requires override path +- Islamic Sunday School late window differs without changing core +``` + +### Done when + +```text +- Late/present logic is not hardcoded in scanner orchestration. +- Different school profiles can define status rules. +``` + +--- + +## 23. Eighth Implementation Slice: Manual Overrides + +### Objective + +Standardize manual attendance edits. + +### Tasks + +```text +ATT-041. Create manual override FormRequests. +ATT-042. Require override reason. +ATT-043. Use StudentAttendanceService/StaffAttendanceService. +ATT-044. Capture before/after audit logs. +ATT-045. Add authorization policy checks. +``` + +### Required tests + +```text +- manual override requires reason +- unauthorized teacher cannot override outside scope +- admin can override +- cross-school override fails +- before/after audit is written +- invalid transition fails +``` + +### Done when + +```text +- Manual edits and scanner writes use consistent rules. +- Override history is auditable. +``` + +--- + +## 24. Attendance Reports + +Reports must consume attendance read models, not invent attendance truth. + +### Tasks + +```text +ATT-046. Create AttendanceReadRepository. +ATT-047. Create attendance summary read model. +ATT-048. Create student attendance history read model. +ATT-049. Create staff attendance summary read model. +ATT-050. Update attendance reports to use read models. +ATT-051. Add school context to all report queries. +``` + +### Required tests + +```text +- report excludes other schools +- report status counts match AttendanceService +- duplicate scans do not inflate report +- Islamic Sunday School report labels do not leak into core +- export output matches approved snapshot +``` + +--- + +## 25. Database and Schema Requirements + +### 25.1 Required indexes + +Add or verify: + +```text +attendance_sessions.school_id indexed +attendance_sessions.academic_year_id indexed +attendance_sessions.term_id indexed, nullable +attendance_sessions.starts_at indexed +attendance_sessions.status indexed + +attendance_records.school_id indexed +attendance_records.attendance_session_id indexed, nullable +attendance_records.attendance_date indexed +attendance_records.subject_type indexed +attendance_records.subject_id indexed +attendance_records.status indexed + +attendance_scan_logs.school_id indexed +attendance_scan_logs.subject_type/subject_id indexed +attendance_scan_logs.badge_id indexed, nullable +attendance_scan_logs.station_id indexed, nullable +attendance_scan_logs.scanned_at indexed +attendance_scan_logs.duplicate_of_id indexed, nullable + +attendance_audit_logs.school_id indexed +attendance_audit_logs.actor_user_id indexed, nullable +attendance_audit_logs.subject_type/subject_id indexed +attendance_audit_logs.created_at indexed +``` + +### 25.2 Recommended unique constraints + +```text +unique(school_id, attendance_session_id, subject_type, subject_id) +unique(school_id, attendance_date, subject_type, subject_id) for daily-only records, if used +unique(school_id, idempotency_key, operation) where idempotency_key is not null +``` + +### 25.3 Migration caution + +Do not aggressively delete or rename existing attendance tables in Phase 4. Add adapters/read repositories first. Attendance history is institutional memory, and apparently institutions become cranky when memory gets truncated by “cleanup.” + +--- + +## 26. FormRequest Requirements + +Create or update: + +```text +ProcessScanRequest +RecordStudentAttendanceRequest +RecordStaffAttendanceRequest +ManualStudentAttendanceOverrideRequest +ManualStaffAttendanceOverrideRequest +AttendanceSummaryRequest +AttendanceSessionRequest +``` + +Each FormRequest must define: + +```text +authorize() +rules() +messages(), if needed +toDTO(), optional but recommended +``` + +Controllers should use: + +```php +$data = $request->toDTO(); +``` + +Not raw request array merging. + +--- + +## 27. Service Provider Bindings + +Create: + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Attendance\Contracts\ScannerServiceContract; +use App\Domain\SchoolCore\Attendance\Services\ScannerService; + +final class SchoolCoreAttendanceServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(ScannerServiceContract::class, ScannerService::class); + $this->app->bind(BadgeLookupServiceContract::class, BadgeLookupService::class); + $this->app->bind(StudentAttendanceServiceContract::class, StudentAttendanceService::class); + $this->app->bind(StaffAttendanceServiceContract::class, StaffAttendanceService::class); + $this->app->bind(AttendanceSessionResolverContract::class, DefaultAttendanceSessionResolver::class); + $this->app->bind(AttendanceStatusPolicyContract::class, DefaultAttendanceStatusPolicy::class); + $this->app->bind(AttendancePolicyContract::class, DefaultAttendancePolicy::class); + $this->app->bind(AttendanceAuditLoggerContract::class, AttendanceAuditLogger::class); + $this->app->bind(AttendanceIdempotencyServiceContract::class, AttendanceIdempotencyService::class); + } +} +``` + +Islamic Sunday School may override policy/resolver bindings in its own provider. + +--- + +## 28. Architecture Tests + +Add tests that fail if attendance boundaries are violated. + +Required assertions: + +```text +SchoolCore\Attendance must not depend on Domain\IslamicIslamicSundaySchool +SchoolCore\Attendance must not depend on Illuminate\Http\Request +SchoolCore\Attendance services must not call auth() +SchoolCore\Attendance services must not call request() +Controllers must not instantiate attendance concrete services directly +ScannerController must not contain domain private methods +Attendance mutations must use transaction runner or DB transaction +Scanner writes must go through ScannerServiceContract +``` + +Optional static checks: + +```text +No Sunday/masjid/community/ministry vocabulary inside SchoolCore\Attendance contracts +No direct attendance DB writes inside controllers +No duplicate scan mutation without idempotency check +No manual override without reason +``` + +--- + +## 29. Rollout Plan + +### Step 1: Add attendance module scaffolding + +```text +- create namespaces +- create contracts +- create DTOs +- create provider +- bind default implementations +``` + +### Step 2: Add regression tests around current scanner behavior + +```text +- student scan +- staff scan +- invalid badge +- duplicate scan +- late scan +- cross-school badge +``` + +Some tests may fail because current behavior is unsafe or ambiguous. Good. Ambiguity is a bug wearing a cardigan. + +### Step 3: Delegate ScannerController + +```text +- move orchestration behind ScannerServiceContract +- preserve response shape initially +``` + +### Step 4: Extract badge lookup + +```text +- centralize badge resolution +- school-scope lookup +``` + +### Step 5: Add idempotency + +```text +- prevent duplicate scan mutation +- add scan fingerprinting +``` + +### Step 6: Extract student/staff attendance services + +```text +- shared mutation path +- transactions +- audit logging +``` + +### Step 7: Add session/status policies + +```text +- enable Islamic Sunday School extension +- remove hardcoded late/session logic +``` + +### Step 8: Manual override standardization + +```text +- require reasons +- before/after audit +- policy authorization +``` + +### Step 9: Reports/read models + +```text +- consume stable attendance truth +- school context enforced +``` + +--- + +## 30. Implementation Tickets + +## ATT-001: Create attendance module scaffold + +### Description + +Create the `SchoolCore\Attendance` namespace and initial contracts, DTO folders, service folders, enum folders, exception folders, and provider. + +### Acceptance Criteria + +```text +- Namespace exists. +- Service provider is registered. +- Empty contracts compile. +- No controller behavior changes yet. +``` + +--- + +## ATT-002: Delegate ScannerController to ScannerService + +### Description + +Move scanner orchestration behind `ScannerServiceContract` while preserving current response behavior. + +### Acceptance Criteria + +```text +- ScannerController validates and delegates only. +- Existing scanner responses remain compatible. +- ScannerService is the only orchestration entry point. +- Tests cover student/staff/invalid badge scans. +``` + +--- + +## ATT-003: Extract BadgeLookupService + +### Description + +Centralize badge lookup and scope it by school. + +### Acceptance Criteria + +```text +- Student badge lookup works. +- Staff badge lookup works. +- Unknown badge returns controlled error. +- Cross-school badge lookup fails. +- Inactive badges are handled explicitly. +``` + +--- + +## ATT-004: Add scanner idempotency + +### Description + +Prevent duplicate scans from creating duplicate attendance mutations. + +### Acceptance Criteria + +```text +- Same idempotency key returns same result. +- Same key with different payload fails. +- Duplicate scan within window does not double-count. +- Duplicate scan is logged. +- Idempotency is school-scoped. +``` + +--- + +## ATT-005: Extract StudentAttendanceService + +### Description + +Move student attendance mutation into modular service. + +### Acceptance Criteria + +```text +- Uses SchoolContext. +- Uses transaction. +- Locks relevant record/session. +- Creates audit log. +- Rejects cross-school student. +- Handles duplicate scan safely. +``` + +--- + +## ATT-006: Extract StaffAttendanceService + +### Description + +Move staff attendance mutation into modular service. + +### Acceptance Criteria + +```text +- Uses SchoolContext. +- Uses transaction. +- Creates audit log. +- Rejects cross-school staff. +- Shares idempotency/audit infrastructure. +``` + +--- + +## ATT-007: Add AttendanceSessionResolver + +### Description + +Create neutral session resolution with Islamic Sunday School override support. + +### Acceptance Criteria + +```text +- Default resolver works for generic school. +- Islamic Sunday School resolver works through binding. +- Timezone is respected. +- Cross-school sessions fail. +- Core resolver contains no Islamic Sunday School vocabulary. +``` + +--- + +## ATT-008: Add AttendanceStatusPolicy + +### Description + +Move status and late logic behind policy. + +### Acceptance Criteria + +```text +- Present/late logic is policy-driven. +- Islamic Sunday School can use different late window. +- Manual-only statuses cannot be set through scan. +- Tests cover status boundaries. +``` + +--- + +## ATT-009: Standardize manual overrides + +### Description + +Move manual edit flows through attendance services with audit trail. + +### Acceptance Criteria + +```text +- Override requires reason. +- Authorization is enforced. +- Before/after audit is recorded. +- Cross-school override fails. +``` + +--- + +## ATT-010: Add attendance architecture tests + +### Description + +Enforce attendance module boundaries in CI. + +### Acceptance Criteria + +```text +- SchoolCore\Attendance cannot import IslamicSundaySchool. +- Attendance services cannot call auth() or request(). +- Controllers cannot write attendance rows directly. +- ScannerController has no domain private methods. +- CI fails on boundary violation. +``` + +--- + +## 31. Definition of Done for Phase 4 + +Phase 4 is done when: + +```text +- Attendance core contracts exist. +- Scanner controller delegates to ScannerService. +- Badge lookup is modular and school-scoped. +- Scanner idempotency prevents duplicate mutations. +- Student attendance mutation is modular. +- Staff attendance mutation is modular. +- Attendance sessions are resolved through a contract. +- Attendance status is policy-driven. +- Manual overrides require reason and audit trail. +- Attendance services require SchoolContext. +- Islamic Sunday School attendance behavior is implemented through policies/resolvers. +- Cross-school attendance access is blocked by tests. +- Architecture tests prevent SchoolCore from depending on IslamicSundaySchool. +- Legacy attendance/scanner methods are labeled canonical, adapter, deprecated, or remove. +``` + +--- + +## 32. Non-Goals + +Do not include in Phase 4: + +```text +- full attendance UI redesign +- total attendance schema rewrite +- biometric device integration +- facial recognition +- external hardware vendor SDK integration +- parent-facing attendance portal redesign +- full reporting redesign +``` + +Those may happen later. Phase 4 is about making attendance reliable, reusable, scoped, and extensible. + +--- + +## 33. Main Risks + +### Risk: duplicate attendance records + +Mitigation: + +```text +- idempotency key +- scan fingerprint +- unique constraints +- row locks +- duplicate tests +``` + +### Risk: cross-school leakage + +Mitigation: + +```text +- mandatory SchoolContext +- school-scoped repositories +- authorization tests +``` + +### Risk: scanner behavior break + +Mitigation: + +```text +- snapshot current responses +- delegate first, refactor internals second +- preserve compatibility adapter +``` + +### Risk: Islamic Sunday School leakage into core + +Mitigation: + +```text +- contract vocabulary review +- architecture tests +- Islamic Sunday School resolver/policies only +``` + +### Risk: status logic drift + +Mitigation: + +```text +- single AttendanceStatusPolicyContract +- tests for status boundary times +- report counts based on canonical statuses +``` + +--- + +## 34. Immediate Next Work Queue + +Start here: + +```text +1. ATT-001 Create attendance module scaffold +2. ATT-002 Delegate ScannerController to ScannerService +3. ATT-003 Extract BadgeLookupService +4. ATT-004 Add scanner idempotency +5. ATT-005 Extract StudentAttendanceService +6. ATT-006 Extract StaffAttendanceService +7. ATT-007 Add AttendanceSessionResolver +8. ATT-008 Add AttendanceStatusPolicy +9. ATT-010 Add attendance architecture tests +``` + +Do not start with reports. Reports are mirrors. Fix the face first. diff --git a/docs/modular_plans/phase_5_modular_student_lifecycle_execution_plan_islamic.md b/docs/modular_plans/phase_5_modular_student_lifecycle_execution_plan_islamic.md new file mode 100644 index 00000000..315a21a5 --- /dev/null +++ b/docs/modular_plans/phase_5_modular_student_lifecycle_execution_plan_islamic.md @@ -0,0 +1,2017 @@ +# Phase 5 Execution Plan: Modular Student Lifecycle Extraction + + +# Islamic Sunday School Alignment Update + +Phase 5 student lifecycle now treats Sunday School as **Islamic Sunday School**. + +`SchoolCore\Students` owns neutral student identity, guardians, households, enrollment, assignment, status transitions, promotion, and audit. + +`IslamicSundaySchool\Students` may extend student profiles with: + +```text +masjid family/community profile +Qur'an level +Arabic level +Islamic studies track +halaqa/group +memorization progress summary +recitation placement +volunteer/family participation flags +sensitive imam/admin notes, only with strict authorization +``` + +Do not store these fields in the core student model. Core should remain reusable for any school system. + +--- +## 1. Purpose + +Phase 5 extracts student lifecycle behavior into a reusable `SchoolCore` module that can support any school system while allowing Islamic Sunday School-specific student profile behavior through extension tables, policies, and domain services. + +The student lifecycle module must own the invariant parts of student management: + +- student identity +- student profile +- guardian relationships +- family/household relationships +- enrollment +- class/group assignment +- student identifiers +- status transitions +- promotion +- transfer +- withdrawal/archive +- student search/read models +- audit logging +- cross-school isolation +- authorization boundaries + +Islamic Sunday School may customize: + +- masjid family/community profile fields +- Qur'an, Arabic, Islamic studies, halaqa, and masjid-family fields +- Islamic Sunday School class grouping +- Qur'an/Islamic studies curriculum level +- family/masjid/community relationship labels +- Islamic Sunday School promotion rules +- imam/admin notes, if allowed by policy +- ministry participation flags + +Islamic Sunday School must not define the global student model. It extends it. That distinction matters unless the plan is to make every school system pretend it is a Islamic Sunday School wearing a fake mustache. + +--- + +## 2. Required Dependency Direction + +Student lifecycle must follow the modular platform boundary: + +```text +App\Domain\IslamicIslamicSundaySchool\Students + ↓ depends on +App\Domain\SchoolCore\Students + ↓ depends on +App\Domain\SchoolCore\Shared +``` + +Forbidden dependencies: + +```text +SchoolCore\Students -> IslamicSundaySchool\* +SchoolCore\Students -> Http\Request +SchoolCore\Students -> auth() +SchoolCore\Students -> controller classes +SchoolCore\Students -> Islamic Sunday School vocabulary +SchoolCore\Students -> direct unscoped school queries +``` + +Allowed dependencies: + +```text +IslamicSundaySchool\Students -> SchoolCore\Students contracts +Http\Controllers -> student lifecycle contracts +Jobs -> student lifecycle contracts +Student services -> SchoolContext +Student services -> shared audit/transaction contracts +Student services -> enrollment/promotion policy contracts +``` + +--- + +## 3. Target Namespace Structure + +Create the student lifecycle module under `SchoolCore`: + +```text +app/ + Domain/ + SchoolCore/ + Students/ + Contracts/ + StudentServiceContract.php + StudentProfileServiceContract.php + StudentIdentifierGeneratorContract.php + GuardianServiceContract.php + HouseholdServiceContract.php + EnrollmentServiceContract.php + AssignmentServiceContract.php + PromotionServiceContract.php + PromotionPolicyContract.php + StudentLifecycleAuditLoggerContract.php + StudentReadServiceContract.php + DTO/ + CreateStudentData.php + UpdateStudentData.php + StudentProfileData.php + CreateGuardianData.php + UpdateGuardianData.php + LinkGuardianData.php + HouseholdData.php + EnrollmentData.php + AssignmentData.php + PromotionData.php + StudentStatusTransitionData.php + StudentSearchQuery.php + Enums/ + StudentStatus.php + GuardianRelationshipType.php + EnrollmentStatus.php + AssignmentStatus.php + PromotionResult.php + StudentAuditAction.php + Exceptions/ + StudentException.php + StudentNotFoundException.php + StudentIdentifierCollisionException.php + InvalidStudentStatusTransitionException.php + UnauthorizedStudentAccessException.php + EnrollmentException.php + GuardianException.php + PromotionException.php + Services/ + StudentService.php + StudentProfileService.php + StudentIdentifierService.php + GuardianService.php + HouseholdService.php + EnrollmentService.php + AssignmentService.php + PromotionService.php + StudentLifecycleAuditLogger.php + StudentReadService.php + Policies/ + DefaultPromotionPolicy.php + DefaultStudentIdentifierGenerator.php + DefaultEnrollmentPolicy.php + Repositories/ + StudentRepository.php + GuardianRepository.php + HouseholdRepository.php + EnrollmentRepository.php + AssignmentRepository.php + StudentReadRepository.php + Support/ + StudentTransactionRunner.php + StudentIdentifier.php + StudentLifecycleStateMachine.php + StudentSearchNormalizer.php +``` + +Islamic Sunday School-specific student lifecycle behavior goes here: + +```text +app/ + Domain/ + IslamicSundaySchool/ + Students/ + DTO/ + IslamicSundaySchoolStudentProfileData.php + Policies/ + IslamicSundaySchoolPromotionPolicy.php + IslamicSundaySchoolEnrollmentPolicy.php + IslamicSundaySchoolStudentIdentifierGenerator.php + Services/ + IslamicSundaySchoolStudentProfileService.php + IslamicSundaySchoolFamilyProfileService.php + Reports/ + IslamicSundaySchoolStudentReportBuilder.php + Providers/ + IslamicSundaySchoolStudentServiceProvider.php +``` + +--- + +## 4. Core Design Rules + +### 4.1 Student services must require `SchoolContext` + +Every public student lifecycle service method must receive `SchoolContext`. + +Example: + +```php +public function createStudent( + SchoolContext $context, + CreateStudentData $data +): StudentResult; +``` + +A student operation without `SchoolContext` is invalid. A student operation with loose school scoping is how platforms become accidental data-sharing programs. + +### 4.2 Core student model must stay school-neutral + +Core may contain: + +```text +name +date_of_birth +gender, optional +contact fields, if applicable +status +school_id +external_id, optional +student_identifier +profile photo reference +metadata, constrained +``` + +Core must not contain Islamic Sunday School-only fields like: + +```text +quran_level_id +arabic_level_id +masjid/community_membership_status +ministry_group +islamic_studies_track_id +religious/community_notes +favorite_surah +``` + +Those belong in `IslamicSundaySchool` extension profile storage. + +### 4.3 Student identifiers must be race-safe + +Current-style identifier generation using `max(id) + 1` is forbidden. + +Required strategy: + +```text +1. Create student row inside transaction. +2. Generate identifier from actual persisted ID or sequence. +3. Save identifier. +4. Enforce unique constraint. +5. Retry on collision if policy permits. +``` + +A generated identifier without a database unique constraint is just a polite suggestion. + +### 4.4 Controllers must not orchestrate lifecycle rules + +Controllers may: + +```text +- validate request +- authorize route +- build DTO +- call service contract +- return resource +``` + +Controllers may not: + +```text +- generate student IDs +- create guardians directly during student creation +- assign classes directly +- decide promotion eligibility +- mutate status transitions directly +- write Islamic Sunday School profile fields into core student table +``` + +### 4.5 Lifecycle transitions must be explicit + +Student status changes must pass through a state machine or transition service. + +Example statuses: + +```text +prospective +active +inactive +withdrawn +graduated +archived +transferred +``` + +Forbidden: + +```php +$student->status = $request->status; +$student->save(); +``` + +That is not lifecycle management. That is letting HTTP edit reality with a crayon. + +--- + +## 5. Core Contracts + +### 5.1 `StudentServiceContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Students\DTO\CreateStudentData; +use App\Domain\SchoolCore\Students\DTO\UpdateStudentData; +use App\Domain\SchoolCore\Students\DTO\StudentStatusTransitionData; + +interface StudentServiceContract +{ + public function createStudent(SchoolContext $context, CreateStudentData $data): StudentResult; + + public function updateStudent(SchoolContext $context, int $studentId, UpdateStudentData $data): StudentResult; + + public function transitionStatus( + SchoolContext $context, + int $studentId, + StudentStatusTransitionData $data + ): StudentResult; + + public function getStudent(SchoolContext $context, int $studentId): StudentView; +} +``` + +### 5.2 `StudentIdentifierGeneratorContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface StudentIdentifierGeneratorContract +{ + public function generateForPersistedStudent( + SchoolContext $context, + StudentView $student + ): StudentIdentifier; +} +``` + +### 5.3 `GuardianServiceContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Students\DTO\CreateGuardianData; +use App\Domain\SchoolCore\Students\DTO\LinkGuardianData; + +interface GuardianServiceContract +{ + public function createGuardian(SchoolContext $context, CreateGuardianData $data): GuardianResult; + + public function linkGuardianToStudent( + SchoolContext $context, + LinkGuardianData $data + ): GuardianLinkResult; + + public function unlinkGuardianFromStudent( + SchoolContext $context, + int $studentId, + int $guardianId, + string $reason + ): GuardianLinkResult; +} +``` + +### 5.4 `HouseholdServiceContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Students\DTO\HouseholdData; + +interface HouseholdServiceContract +{ + public function createHousehold(SchoolContext $context, HouseholdData $data): HouseholdResult; + + public function addStudentToHousehold( + SchoolContext $context, + int $householdId, + int $studentId + ): HouseholdResult; + + public function addGuardianToHousehold( + SchoolContext $context, + int $householdId, + int $guardianId + ): HouseholdResult; +} +``` + +### 5.5 `EnrollmentServiceContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Students\DTO\EnrollmentData; + +interface EnrollmentServiceContract +{ + public function enrollStudent(SchoolContext $context, EnrollmentData $data): EnrollmentResult; + + public function withdrawStudent(SchoolContext $context, int $studentId, string $reason): EnrollmentResult; + + public function transferStudent(SchoolContext $context, int $studentId, EnrollmentData $data): EnrollmentResult; +} +``` + +### 5.6 `AssignmentServiceContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Students\DTO\AssignmentData; + +interface AssignmentServiceContract +{ + public function assignStudent(SchoolContext $context, AssignmentData $data): AssignmentResult; + + public function unassignStudent(SchoolContext $context, int $assignmentId, string $reason): AssignmentResult; +} +``` + +### 5.7 `PromotionServiceContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Students\DTO\PromotionData; + +interface PromotionServiceContract +{ + public function evaluatePromotion(SchoolContext $context, int $studentId): PromotionEvaluationResult; + + public function promoteStudent(SchoolContext $context, PromotionData $data): PromotionResult; + + public function bulkPromote(SchoolContext $context, BulkPromotionData $data): BulkPromotionResult; +} +``` + +### 5.8 `PromotionPolicyContract` + +```php +namespace App\Domain\SchoolCore\Students\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface PromotionPolicyContract +{ + public function evaluate( + SchoolContext $context, + StudentView $student, + EnrollmentView $enrollment + ): PromotionEvaluationResult; +} +``` + +Islamic Sunday School may bind this to a Islamic Sunday School-specific policy. + +--- + +## 6. DTO Requirements + +Do not pass raw request arrays into student services. + +### 6.1 `CreateStudentData` + +Fields: + +```text +first_name +middle_name, nullable +last_name +preferred_name, nullable +date_of_birth, nullable +gender, nullable +primary_language, nullable +photo_file, nullable +external_id, nullable +initial_status +guardians, nullable array +household_id, nullable +enrollment, nullable +profile_metadata, nullable +extension_profile, nullable +idempotency_key, nullable +``` + +### 6.2 `UpdateStudentData` + +Fields: + +```text +first_name, nullable +middle_name, nullable +last_name, nullable +preferred_name, nullable +date_of_birth, nullable +gender, nullable +primary_language, nullable +photo_file, nullable +profile_metadata, nullable +update_reason +``` + +`update_reason` should be required for sensitive profile changes if policy requires it. + +### 6.3 `CreateGuardianData` + +Fields: + +```text +first_name +last_name +email, nullable +phone, nullable +relationship_type, nullable +address, nullable +emergency_contact, bool +pickup_authorized, bool +metadata, nullable +``` + +### 6.4 `LinkGuardianData` + +Fields: + +```text +student_id +guardian_id +relationship_type +emergency_contact +pickup_authorized +financial_responsibility, nullable bool +academic_contact, nullable bool +notes, nullable +``` + +### 6.5 `EnrollmentData` + +Fields: + +```text +student_id +academic_year_id +term_id, nullable +grade_level_id, nullable +program_id, nullable +class_group_id, nullable +enrollment_date +status +reason, nullable +metadata, nullable +``` + +### 6.6 `PromotionData` + +Fields: + +```text +student_id +from_academic_year_id +to_academic_year_id +from_level_id, nullable +to_level_id, nullable +from_group_id, nullable +to_group_id, nullable +effective_date +reason +override_policy, bool +override_reason, nullable +``` + +--- + +## 7. Student Identity and Identifier Strategy + +### 7.1 Identifier requirements + +Student identifiers must be: + +```text +school-scoped +unique per school +generated through contract +race-safe +auditable +replaceable by policy +not dependent on max(id) + 1 +``` + +### 7.2 Recommended default algorithm + +```text +1. Insert student without public identifier. +2. Use persisted student ID and school prefix to generate identifier. +3. Save identifier. +4. Enforce unique(school_id, student_identifier). +5. Retry on collision if necessary. +``` + +Example format: + +```text +SCH-0000123 +``` + +Islamic Sunday School may override with: + +```text +SS-2026-000123 +``` + +But it must use the same contract and uniqueness rules. + +### 7.3 Tests + +```text +- creates unique identifier +- two concurrent student creations do not collide +- identifier is unique per school +- same identifier can exist in different schools only if policy permits and DB constraint supports it +- collision retry works +``` + +--- + +## 8. Student Profile Extension Strategy + +### 8.1 Core profile + +Core profile is school-neutral. + +Suggested tables or model concepts: + +```text +students +student_profiles +guardians +households +student_guardian +enrollments +student_assignments +student_audit_logs +``` + +### 8.2 Islamic Sunday School profile + +Islamic Sunday School-specific profile belongs outside core. + +Possible table: + +```text +islamic_sunday_school_student_profiles +``` + +Suggested fields: + +```text +school_id +student_id +masjid/community_family_id, nullable +quran_level_id, nullable +arabic_level_id, nullable +ministry_group_id, nullable +bible_curriculum_level_id, nullable +religious/community_notes, nullable with strict authorization +metadata, nullable +created_at +updated_at +``` + +Rules: + +```text +- every extension profile row must include school_id +- extension profile must reference a core student +- extension profile access must be policy-controlled +- sensitive fields require explicit authorization +``` + +### 8.3 Profile composition + +Read models may compose core + extension: + +```text +Core StudentView + + IslamicSundaySchoolStudentProfileView + = IslamicSundaySchoolStudentView +``` + +Core must not know about `IslamicSundaySchoolStudentView`. + +--- + +## 9. Guardian and Household Model + +### 9.1 Guardian rules + +Guardians are reusable people records connected to students. + +A guardian may be linked to: + +```text +one student +multiple siblings +multiple households, if policy allows +financial responsibility +academic contact +emergency contact +pickup authorization +``` + +### 9.2 Required relationship metadata + +```text +relationship_type +is_primary +emergency_contact +pickup_authorized +financial_responsibility +academic_contact +effective_from +effective_to, nullable +notes, nullable +``` + +### 9.3 Authorization concerns + +Guardian/student access must be scoped by: + +```text +school_id +relationship +role +custody/contact rules, if applicable +sensitive data policy +``` + +Do not assume every guardian can see every student field. Family data gets legally spicy very quickly, because apparently humans turned family structure into a distributed permissions problem. + +--- + +## 10. Enrollment and Assignment Model + +### 10.1 Enrollment + +Enrollment answers: + +```text +Is this student part of this school/program/year/term? +``` + +Core fields: + +```text +school_id +student_id +academic_year_id +term_id, nullable +program_id, nullable +grade_level_id, nullable +status +enrolled_at +withdrawn_at, nullable +reason, nullable +metadata +``` + +### 10.2 Assignment + +Assignment answers: + +```text +Where is this student placed? +``` + +Examples: + +```text +class +group +section +homeroom +cohort +session group +volunteer/program group extension +``` + +Core should use neutral terms: + +```text +assignment_type +assignable_type +assignable_id +effective_from +effective_to +status +``` + +Islamic Sunday School can map class/ministry labels through extension configuration. + +### 10.3 Assignment rules + +```text +- no active duplicate assignment for same student/type/period unless policy allows +- assignment must belong to same school +- assignment must fit enrollment period +- assignment changes require audit log +``` + +--- + +## 11. Promotion and Progression + +### 11.1 Core promotion concept + +Promotion is a transition from one enrollment/level/group context to another. + +Core must support: + +```text +grade promotion +level promotion +group movement +program completion +graduation +retention +manual override +``` + +### 11.2 Policy-driven promotion + +Promotion decision belongs to `PromotionPolicyContract`. + +Default policy may use: + +```text +academic year completion +current level +attendance threshold, optional +academic completion status, optional +manual review flag +``` + +Islamic Sunday School policy may use: + +```text +Qur'an/Islamic studies curriculum completion +age group +Islamic Sunday School attendance +teacher recommendation +program readiness +``` + +But the core only sees policy result, not Islamic Sunday School-specific rules. + +### 11.3 Promotion audit + +Every promotion must log: + +```text +from state +to state +actor +policy result +override flag +override reason +effective date +``` + +--- + +## 12. Transaction Strategy + +### 12.1 Student creation + +Required transaction: + +```text +BEGIN + create student + generate student identifier + save identifier + create profile + create or link guardians, if included + create or link household, if included + create enrollment, if included + create extension profile through extension hook, if provided + write audit log +COMMIT +``` + +### 12.2 Student update + +Required transaction: + +```text +BEGIN + lock student + capture before state + validate transition/update policy + update core profile + update extension profile through extension service, if applicable + write before/after audit log +COMMIT +``` + +### 12.3 Enrollment change + +Required transaction: + +```text +BEGIN + lock student + lock active enrollment rows + close or update previous enrollment + create new enrollment + update assignments if needed + write audit log +COMMIT +``` + +### 12.4 Promotion + +Required transaction: + +```text +BEGIN + lock student + lock current enrollment + evaluate or confirm promotion result + close old enrollment/assignment + create new enrollment/assignment + write audit log +COMMIT +``` + +--- + +## 13. Audit Logging Requirements + +Every student lifecycle mutation must create an audit event. + +Required audit fields: + +```text +school_id +academic_year_id, nullable +term_id, nullable +actor_user_id +actor_role_snapshot +action +entity_type +entity_id +before_json, nullable +after_json, nullable +reason, nullable +request_id +ip_address, nullable +user_agent, nullable +idempotency_key, nullable +created_at +``` + +Required actions: + +```text +student.created +student.updated +student.status_changed +student.archived +student.transferred +guardian.created +guardian.updated +guardian.linked +guardian.unlinked +household.created +household.updated +student.enrolled +student.withdrawn +student.assigned +student.unassigned +student.promoted +student.retained +student.graduated +student.extension_profile.updated +``` + +Audit logs are append-only. + +--- + +## 14. Authorization Requirements + +Minimum actions: + +```text +student.view +student.create +student.update +student.archive +student.transfer +student.sensitive.view +guardian.view +guardian.create +guardian.update +guardian.link +guardian.unlink +household.view +household.manage +enrollment.view +enrollment.manage +assignment.view +assignment.manage +promotion.evaluate +promotion.execute +student.report.view +``` + +Every student endpoint must have tests for: + +```text +unauthenticated +wrong school +wrong role +wrong owner/family +authorized admin +authorized staff +authorized teacher within assignment scope +authorized guardian for own student, if allowed +``` + +Sensitive Islamic Sunday School extension fields need separate permissions. + +Example: + +```text +student.islamic_sunday_school_profile.view +student.religious/community_notes.view +student.religious/community_notes.update +``` + +--- + +## 15. Idempotency Requirements + +Student creation should support idempotency because duplicate form submissions create duplicate children, which is less charming in databases than in sitcoms. + +Minimum implementation: + +```text +idempotency_key +actor_user_id +school_id +operation +payload_hash +result_entity_type +result_entity_id +created_at +expires_at +``` + +Apply first to: + +```text +student creation +guardian creation +enrollment creation +bulk promotion +``` + +Behavior: + +```text +- same key + same operation + same payload returns original result +- same key + same operation + different payload fails +- missing key allowed for legacy clients during transition +``` + +--- + +## 16. Migration Strategy + +### 16.1 Use vertical slices + +Recommended order: + +```text +1. Student identifier generation +2. Student creation orchestration +3. Guardian linking +4. Enrollment creation/update +5. Assignment service +6. Student status transitions +7. Promotion service +8. Islamic Sunday School profile extension +9. Student read models and reports +``` + +Why this order: + +```text +- identifier generation has a known race bug +- creation is the root lifecycle flow +- guardians/enrollment are part of creation but can be extracted behind services +- promotion builds on enrollment/assignment +- reports should consume stable read models last +``` + +### 16.2 Compatibility layer + +Existing controllers may remain temporarily, but must delegate to new contracts. + +Example: + +```text +StudentController + -> CreateStudentRequest + -> SchoolContext + -> CreateStudentData + -> StudentServiceContract::createStudent() + -> StudentResource +``` + +Legacy service methods should become wrappers or be deprecated. + +### 16.3 Deprecation rule + +Every legacy student lifecycle method must be labeled as one of: + +```text +canonical +adapter +deprecated +remove +``` + +No unlabeled duplicate student creation, guardian linking, assignment, enrollment, or promotion logic. + +--- + +## 17. First Implementation Slice: Race-Safe Student Identifier + +### Objective + +Replace unsafe student identifier generation. + +### Tasks + +```text +STU-001. Create Students module scaffold. +STU-002. Create StudentIdentifierGeneratorContract. +STU-003. Implement DefaultStudentIdentifierGenerator. +STU-004. Add unique constraint on school_id + student_identifier. +STU-005. Update student creation flow to generate identifier after insert. +STU-006. Add collision retry behavior. +STU-007. Add concurrency tests. +``` + +### Required tests + +```text +- creates student identifier after insert +- two concurrent student creations do not receive same identifier +- unique constraint prevents duplicate identifier +- identifier is scoped by school +- collision retry works +``` + +### Done when + +```text +- no active creation path uses max(id) + 1 +- identifier generation is contract-based +- concurrent creation test passes +``` + +--- + +## 18. Second Implementation Slice: Student Creation Service + +### Objective + +Move student creation orchestration into modular core service. + +### Tasks + +```text +STU-008. Create StudentServiceContract. +STU-009. Create CreateStudentData. +STU-010. Implement StudentService::createStudent(). +STU-011. Add StudentTransactionRunner. +STU-012. Add student.created audit event. +STU-013. Update StudentController to delegate. +STU-014. Preserve response compatibility. +``` + +### Required tests + +```text +- creates basic student +- creates student with guardian link +- creates student with enrollment +- rejects cross-school enrollment context +- writes audit log +- returns compatible API response +- supports idempotency key +``` + +### Done when + +```text +- controller no longer orchestrates student creation +- student creation is transactional +- identifier generation happens through contract +``` + +--- + +## 19. Third Implementation Slice: Guardian and Household Services + +### Objective + +Extract guardian and household behavior into modular services. + +### Tasks + +```text +STU-015. Create GuardianServiceContract. +STU-016. Create HouseholdServiceContract. +STU-017. Create CreateGuardianData and LinkGuardianData. +STU-018. Implement guardian create/link/unlink. +STU-019. Implement household create/link. +STU-020. Add guardian/household audit events. +STU-021. Update student creation to use GuardianService. +``` + +### Required tests + +```text +- creates guardian +- links guardian to student +- prevents cross-school guardian link +- prevents duplicate active guardian relationship if policy disallows +- unlink requires reason +- guardian link creates audit log +``` + +### Done when + +```text +- guardian/student links are service-owned +- household behavior is not embedded in StudentController +``` + +--- + +## 20. Fourth Implementation Slice: Enrollment Service + +### Objective + +Move enrollment and withdrawal behavior into modular service. + +### Tasks + +```text +STU-022. Create EnrollmentServiceContract. +STU-023. Create EnrollmentData. +STU-024. Implement enrollStudent(). +STU-025. Implement withdrawStudent(). +STU-026. Add enrollment audit events. +STU-027. Add school/year/term validation. +``` + +### Required tests + +```text +- enrolls student into academic year +- enrolls student into term if provided +- rejects academic year from another school +- prevents duplicate active enrollment if policy disallows +- withdrawal requires reason +- writes audit log +``` + +### Done when + +```text +- enrollment rules are centralized +- student creation delegates enrollment to EnrollmentService +``` + +--- + +## 21. Fifth Implementation Slice: Assignment Service + +### Objective + +Move class/group assignment into modular service. + +### Tasks + +```text +STU-028. Create AssignmentServiceContract. +STU-029. Create AssignmentData. +STU-030. Implement assignStudent(). +STU-031. Implement unassignStudent(). +STU-032. Add assignment audit events. +STU-033. Add assignment conflict checks. +``` + +### Required tests + +```text +- assigns student to class/group +- rejects assignment from another school +- rejects duplicate active assignment if policy disallows +- unassign requires reason +- writes audit log +``` + +### Done when + +```text +- assignments are service-owned +- Islamic Sunday School class/group behavior can map through extension configuration +``` + +--- + +## 22. Sixth Implementation Slice: Status Transition Service + +### Objective + +Make student lifecycle state transitions explicit. + +### Tasks + +```text +STU-034. Create StudentLifecycleStateMachine. +STU-035. Create StudentStatusTransitionData. +STU-036. Implement transitionStatus(). +STU-037. Add status_changed audit event. +STU-038. Replace direct status updates. +``` + +### Required tests + +```text +- active can become withdrawn with reason +- withdrawn cannot become graduated unless policy allows +- archived student cannot be updated without special permission +- invalid transition fails +- status transition writes before/after audit +``` + +### Done when + +```text +- no active controller directly assigns student status +- invalid transitions are blocked centrally +``` + +--- + +## 23. Seventh Implementation Slice: Promotion Service + +### Objective + +Move promotion behavior into policy-driven modular service. + +### Tasks + +```text +STU-039. Create PromotionServiceContract. +STU-040. Create PromotionPolicyContract. +STU-041. Implement DefaultPromotionPolicy. +STU-042. Implement promoteStudent(). +STU-043. Implement bulkPromote(). +STU-044. Add student.promoted/student.retained audit events. +STU-045. Add IslamicSundaySchoolPromotionPolicy binding. +``` + +### Required tests + +```text +- evaluates promotion +- promotes eligible student +- retains ineligible student +- override requires reason +- cross-school promotion fails +- bulk promotion returns row-level results +- Islamic Sunday School policy can change eligibility without core changes +``` + +### Done when + +```text +- promotion rules are policy-driven +- core does not contain Islamic Sunday School promotion logic +``` + +--- + +## 24. Eighth Implementation Slice: Islamic Sunday School Profile Extension + +### Objective + +Move Islamic Sunday School-only student fields into extension layer. + +### Tasks + +```text +STU-046. Create IslamicSundaySchoolStudentProfileData. +STU-047. Create IslamicSundaySchoolStudentProfileService. +STU-048. Create extension profile table/model if needed. +STU-049. Add policy checks for sensitive fields. +STU-050. Compose IslamicSundaySchoolStudentView from core StudentView + extension profile. +STU-051. Update Islamic Sunday School endpoints to use extension service. +``` + +### Required tests + +```text +- creates Islamic Sunday School profile for student +- rejects profile for student from another school +- sensitive field requires permission +- core StudentService does not import IslamicSundaySchool profile classes +- IslamicSundaySchoolStudentView composes core + extension data +``` + +### Done when + +```text +- Islamic Sunday School-only fields are not required by core student creation +- Islamic Sunday School profile behavior lives outside SchoolCore +``` + +--- + +## 25. Student Read Models and Reports + +Reports must consume student read models, not re-implement lifecycle logic. + +### Tasks + +```text +STU-052. Create StudentReadServiceContract. +STU-053. Create StudentReadRepository. +STU-054. Create student search query DTO. +STU-055. Add school context to every query. +STU-056. Add core student summary read model. +STU-057. Add Islamic Sunday School student summary extension read model. +``` + +### Required tests + +```text +- student list excludes other schools +- guardian sees only allowed student fields +- teacher sees only assigned students if policy says so +- archived students excluded by default +- Islamic Sunday School report fields do not appear in core report +``` + +--- + +## 26. Database and Schema Requirements + +### 26.1 Required indexes + +Add or verify: + +```text +students.school_id indexed +students.student_identifier indexed +students.status indexed +students.created_at indexed + +guardians.school_id indexed +guardians.email indexed, nullable +guardians.phone indexed, nullable + +student_guardian.school_id indexed +student_guardian.student_id indexed +student_guardian.guardian_id indexed +student_guardian.relationship_type indexed + +households.school_id indexed + +enrollments.school_id indexed +enrollments.student_id indexed +enrollments.academic_year_id indexed +enrollments.term_id indexed, nullable +enrollments.status indexed + +student_assignments.school_id indexed +student_assignments.student_id indexed +student_assignments.assignment_type indexed +student_assignments.assignable_type/assignable_id indexed +student_assignments.status indexed + +student_audit_logs.school_id indexed +student_audit_logs.actor_user_id indexed +student_audit_logs.entity_type/entity_id indexed +student_audit_logs.created_at indexed +``` + +### 26.2 Required unique constraints + +Recommended: + +```text +unique(students.school_id, students.student_identifier) +unique(enrollments.school_id, student_id, academic_year_id, term_id, status) where status is active, if DB supports partial indexes +unique(student_assignments.school_id, student_id, assignment_type, assignable_type, assignable_id, effective_from) where status is active, if policy requires uniqueness +``` + +### 26.3 Migration caution + +Do not immediately flatten or rename legacy student fields. Add service/repository adapters first. Student data tends to be referenced by half the app, several reports, and someone’s exported spreadsheet from 2017 that has somehow become sacred scripture. + +--- + +## 27. FormRequest Requirements + +Create or update: + +```text +CreateStudentRequest +UpdateStudentRequest +StudentStatusTransitionRequest +CreateGuardianRequest +LinkGuardianRequest +CreateHouseholdRequest +EnrollmentRequest +AssignmentRequest +PromotionRequest +BulkPromotionRequest +IslamicSundaySchoolStudentProfileRequest +StudentSearchRequest +``` + +Each FormRequest must define: + +```text +authorize() +rules() +messages(), if needed +toDTO(), optional but recommended +``` + +Controllers should use: + +```php +$data = $request->toDTO(); +``` + +Not raw request merging. + +--- + +## 28. Service Provider Bindings + +Create: + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Students\Contracts\StudentServiceContract; +use App\Domain\SchoolCore\Students\Services\StudentService; + +final class SchoolCoreStudentServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(StudentServiceContract::class, StudentService::class); + $this->app->bind(StudentProfileServiceContract::class, StudentProfileService::class); + $this->app->bind(StudentIdentifierGeneratorContract::class, DefaultStudentIdentifierGenerator::class); + $this->app->bind(GuardianServiceContract::class, GuardianService::class); + $this->app->bind(HouseholdServiceContract::class, HouseholdService::class); + $this->app->bind(EnrollmentServiceContract::class, EnrollmentService::class); + $this->app->bind(AssignmentServiceContract::class, AssignmentService::class); + $this->app->bind(PromotionServiceContract::class, PromotionService::class); + $this->app->bind(PromotionPolicyContract::class, DefaultPromotionPolicy::class); + $this->app->bind(StudentLifecycleAuditLoggerContract::class, StudentLifecycleAuditLogger::class); + $this->app->bind(StudentReadServiceContract::class, StudentReadService::class); + } +} +``` + +Islamic Sunday School may override policy/extension bindings in its own provider. + +--- + +## 29. Architecture Tests + +Add tests that fail if student lifecycle boundaries are violated. + +Required assertions: + +```text +SchoolCore\Students must not depend on Domain\IslamicIslamicSundaySchool +SchoolCore\Students must not depend on Illuminate\Http\Request +SchoolCore\Students services must not call auth() +SchoolCore\Students services must not call request() +Controllers must not instantiate student concrete services directly +StudentController must not generate identifiers directly +Core student contracts must not contain Islamic Sunday School vocabulary +Student creation must go through StudentServiceContract +Promotion must go through PromotionServiceContract +``` + +Optional static checks: + +```text +No max(id) + 1 identifier generation +No direct student status assignment in controllers +No Sunday/masjid/community/ministry/baptism vocabulary inside SchoolCore\Students contracts +No guardian/student relationship mutation outside GuardianService +No enrollment mutation outside EnrollmentService +``` + +--- + +## 30. Rollout Plan + +### Step 1: Add student lifecycle module scaffolding + +```text +- create namespaces +- create contracts +- create DTOs +- create provider +- bind default implementations +``` + +### Step 2: Add regression tests around current student creation + +```text +- basic student creation +- student with guardian +- student with class/group assignment +- duplicate school ID race scenario +- student list/read response compatibility +``` + +### Step 3: Fix identifier generation + +```text +- remove max(id) + 1 +- generate after insert +- add unique constraint +- add concurrency tests +``` + +### Step 4: Extract student creation service + +```text +- move orchestration into StudentService +- keep controller compatibility +``` + +### Step 5: Extract guardian/household services + +```text +- centralize family relationships +- prevent cross-school linking +``` + +### Step 6: Extract enrollment and assignment services + +```text +- centralize placement and school-year behavior +``` + +### Step 7: Add status transition and promotion services + +```text +- explicit lifecycle transitions +- policy-driven promotion +``` + +### Step 8: Add Islamic Sunday School extension profile + +```text +- remove Islamic Sunday School-specific assumptions from core +- compose extension read models +``` + +### Step 9: Add architecture tests and deprecation labels + +```text +- enforce boundaries +- mark legacy methods +``` + +--- + +## 31. Implementation Tickets + +## STU-001: Create student lifecycle module scaffold + +### Description + +Create the `SchoolCore\Students` namespace and initial contracts, DTO folders, service folders, enum folders, exception folders, and provider. + +### Acceptance Criteria + +```text +- Namespace exists. +- Service provider is registered. +- Empty contracts compile. +- No controller behavior changes yet. +``` + +--- + +## STU-002: Replace unsafe student identifier generation + +### Description + +Replace pre-insert `max(id) + 1` identifier generation with contract-based, race-safe generation. + +### Acceptance Criteria + +```text +- Identifier is generated after student insert. +- Unique constraint exists. +- Collision retry exists. +- Concurrency test passes. +- No active path uses max(id) + 1. +``` + +--- + +## STU-003: Extract StudentService create flow + +### Description + +Move student creation orchestration into `StudentService`. + +### Acceptance Criteria + +```text +- Uses SchoolContext. +- Uses transaction. +- Creates audit log. +- Supports guardian/enrollment delegation. +- Controller delegates only. +- Existing response shape remains compatible. +``` + +--- + +## STU-004: Extract GuardianService and HouseholdService + +### Description + +Move guardian and household relationship management into modular services. + +### Acceptance Criteria + +```text +- Guardian creation is service-owned. +- Guardian linking is service-owned. +- Cross-school links fail. +- Unlink requires reason. +- Audit logs are written. +``` + +--- + +## STU-005: Extract EnrollmentService + +### Description + +Move enrollment and withdrawal behavior into modular service. + +### Acceptance Criteria + +```text +- Enrollment is school/year scoped. +- Duplicate active enrollment is prevented where policy disallows. +- Withdrawal requires reason. +- Audit logs are written. +``` + +--- + +## STU-006: Extract AssignmentService + +### Description + +Move class/group assignment behavior into modular service. + +### Acceptance Criteria + +```text +- Assignments are school-scoped. +- Assignment conflicts are detected. +- Unassignment requires reason. +- Audit logs are written. +``` + +--- + +## STU-007: Add StudentLifecycleStateMachine + +### Description + +Centralize student status transition rules. + +### Acceptance Criteria + +```text +- Invalid transitions fail. +- Direct controller status mutation is removed. +- Status changes require reason where policy requires. +- Before/after audit is written. +``` + +--- + +## STU-008: Extract PromotionService + +### Description + +Move promotion behavior into policy-driven modular service. + +### Acceptance Criteria + +```text +- Promotion evaluation uses PromotionPolicyContract. +- Bulk promotion returns row-level results. +- Override requires reason. +- Islamic Sunday School can override policy without changing core. +``` + +--- + +## STU-009: Add Islamic Sunday School student profile extension + +### Description + +Move Islamic Sunday School-only student fields into extension layer. + +### Acceptance Criteria + +```text +- Extension profile is school-scoped. +- Sensitive fields require explicit permission. +- Core student creation does not require Islamic Sunday School fields. +- SchoolCore does not import IslamicSundaySchool classes. +``` + +--- + +## STU-010: Add student lifecycle architecture tests + +### Description + +Enforce student module boundaries in CI. + +### Acceptance Criteria + +```text +- SchoolCore\Students cannot import IslamicSundaySchool. +- Student services cannot call auth() or request(). +- Core contracts contain no Islamic Sunday School vocabulary. +- StudentController does not generate identifiers. +- CI fails on boundary violation. +``` + +--- + +## 32. Definition of Done for Phase 5 + +Phase 5 is done when: + +```text +- Student lifecycle core contracts exist. +- Student identifier generation is race-safe. +- Student creation uses StudentService. +- Guardian behavior uses GuardianService. +- Household behavior uses HouseholdService. +- Enrollment behavior uses EnrollmentService. +- Assignment behavior uses AssignmentService. +- Student status transitions are centralized. +- Promotion is policy-driven. +- Islamic Sunday School profile behavior lives outside SchoolCore. +- Student services require SchoolContext. +- Cross-school student/guardian/enrollment access is blocked by tests. +- Architecture tests prevent SchoolCore from depending on IslamicSundaySchool. +- Legacy student lifecycle methods are labeled canonical, adapter, deprecated, or remove. +``` + +--- + +## 33. Non-Goals + +Do not include in Phase 5: + +```text +- full student UI redesign +- full admissions system +- parent portal redesign +- external SIS integration +- biometric/student ID card printing +- full medical record system +- full masjid/community affiliation CRM +``` + +Those may happen later. Phase 5 is about making the student lifecycle reliable, reusable, school-scoped, and extensible. + +--- + +## 34. Main Risks + +### Risk: duplicate student identifiers + +Mitigation: + +```text +- generate after insert +- unique constraint +- collision retry +- concurrency tests +``` + +### Risk: Islamic Sunday School fields pollute core + +Mitigation: + +```text +- extension profile table/service +- architecture tests +- vocabulary review +``` + +### Risk: guardian privacy leakage + +Mitigation: + +```text +- relationship-aware authorization +- sensitive field policies +- guardian-specific read models +``` + +### Risk: enrollment/assignment drift + +Mitigation: + +```text +- centralized enrollment and assignment services +- unique constraints where appropriate +- audit logs +``` + +### Risk: behavior break during extraction + +Mitigation: + +```text +- snapshot current responses +- controller adapters +- vertical slices +``` + +--- + +## 35. Immediate Next Work Queue + +Start here: + +```text +1. STU-001 Create student lifecycle module scaffold +2. STU-002 Replace unsafe student identifier generation +3. STU-003 Extract StudentService create flow +4. STU-004 Extract GuardianService and HouseholdService +5. STU-005 Extract EnrollmentService +6. STU-006 Extract AssignmentService +7. STU-007 Add StudentLifecycleStateMachine +8. STU-008 Extract PromotionService +9. STU-009 Add Islamic Sunday School student profile extension +10. STU-010 Add student lifecycle architecture tests +``` + +Do not start with reports or cosmetic model renaming. Fix identity, creation, relationships, enrollment, and promotion first. Reports can wait their turn like everyone else in the bureaucracy. diff --git a/docs/modular_plans/phase_6_modular_communication_execution_plan_islamic.md b/docs/modular_plans/phase_6_modular_communication_execution_plan_islamic.md new file mode 100644 index 00000000..dc0dc940 --- /dev/null +++ b/docs/modular_plans/phase_6_modular_communication_execution_plan_islamic.md @@ -0,0 +1,2056 @@ +# Phase 6 Execution Plan: Modular Communication Extraction + + +# Islamic Sunday School Alignment Update + +Phase 6 communication now treats the extension as **Islamic Sunday School**. + +`SchoolCore\Communication` owns recipient preview, recipient resolution, dedupe, preferences, sending, logs, delivery status, retries, templates, and audit. + +`IslamicSundaySchool\Communication` may add recipient resolvers and templates for: + +```text +Qur'an class guardians +Arabic class guardians +Islamic studies class guardians +halaqa groups +volunteer teams +masjid family/community groups +Sunday program attendees +special program reminders +``` + +No bulk send may bypass preview just because the audience is familiar. Familiar audiences are how people accidentally message the entire masjid about one student's missing notebook. Technology remains undefeated at embarrassment. + +--- +## 1. Purpose + +Phase 6 extracts communication behavior into a reusable `SchoolCore` module that can support any school system while allowing Islamic Sunday School-specific communication behavior through recipient resolvers, policies, templates, and extension services. + +The communication module must own the invariant parts of school communication: + +- message composition +- message templates +- recipient resolution +- recipient preview +- recipient deduplication +- channel selection +- email delivery +- SMS/WhatsApp adapter boundaries +- notification delivery +- communication preferences +- send logs +- delivery status +- retry behavior +- idempotency +- audit logging +- authorization boundaries +- cross-school isolation + +Islamic Sunday School may customize: + +- ministry recipient groups +- masjid-family/community recipient groups +- Islamic Sunday School class rosters +- volunteer/team messaging +- religious/community announcement templates +- service/event reminders +- curriculum reminders +- family/masjid/community labels + +Islamic Sunday School must not own the global communication engine. It plugs into it. Otherwise one day every school using the platform will discover its “global” notification system thinks every recipient belongs to a volunteer team, because apparently hardcoding is a lifestyle. + +--- + +## 2. Required Dependency Direction + +Communication must follow the modular platform boundary: + +```text +App\Domain\IslamicIslamicSundaySchool\Communication + ↓ depends on +App\Domain\SchoolCore\Communication + ↓ depends on +App\Domain\SchoolCore\Shared +``` + +Forbidden dependencies: + +```text +SchoolCore\Communication -> IslamicSundaySchool\* +SchoolCore\Communication -> Http\Request +SchoolCore\Communication -> auth() +SchoolCore\Communication -> controller classes +SchoolCore\Communication -> Islamic Sunday School vocabulary +SchoolCore\Communication -> direct unscoped school queries +``` + +Allowed dependencies: + +```text +IslamicSundaySchool\Communication -> SchoolCore\Communication contracts +Http\Controllers -> communication contracts +Jobs -> communication contracts +Communication services -> SchoolContext +Communication services -> shared audit/transaction contracts +Communication services -> queue/mail/SMS/WhatsApp adapters +``` + +--- + +## 3. Target Namespace Structure + +Create the communication module under `SchoolCore`: + +```text +app/ + Domain/ + SchoolCore/ + Communication/ + Contracts/ + CommunicationServiceContract.php + MessageTemplateServiceContract.php + RecipientResolverContract.php + RecipientPreviewServiceContract.php + RecipientDedupeServiceContract.php + CommunicationPreferencePolicyContract.php + ChannelRouterContract.php + EmailChannelContract.php + SmsChannelContract.php + WhatsAppChannelContract.php + NotificationChannelContract.php + DeliveryStatusServiceContract.php + CommunicationAuditLoggerContract.php + CommunicationIdempotencyServiceContract.php + DTO/ + ComposeMessageData.php + SendMessageData.php + BulkSendMessageData.php + MessageTemplateData.php + RecipientQueryData.php + RecipientPreviewData.php + RecipientData.php + ChannelMessageData.php + CommunicationPreferenceData.php + DeliveryReceiptData.php + CommunicationAuditData.php + Enums/ + CommunicationChannel.php + CommunicationStatus.php + RecipientType.php + MessagePriority.php + MessageAudienceType.php + CommunicationAuditAction.php + DeliveryFailureReason.php + Exceptions/ + CommunicationException.php + RecipientResolutionException.php + RecipientPreviewRequiredException.php + UnauthorizedCommunicationAccessException.php + MissingCommunicationPreferenceException.php + ChannelDeliveryException.php + DuplicateSendException.php + Services/ + CommunicationService.php + MessageTemplateService.php + RecipientPreviewService.php + RecipientDedupeService.php + ChannelRouter.php + DeliveryStatusService.php + CommunicationAuditLogger.php + CommunicationIdempotencyService.php + Resolvers/ + StudentRecipientResolver.php + GuardianRecipientResolver.php + StaffRecipientResolver.php + ClassRecipientResolver.php + SchoolWideRecipientResolver.php + Channels/ + EmailChannel.php + SmsChannel.php + WhatsAppChannel.php + NotificationChannel.php + Policies/ + DefaultCommunicationPreferencePolicy.php + DefaultRecipientAuthorizationPolicy.php + Repositories/ + MessageTemplateRepository.php + CommunicationLogRepository.php + RecipientReadRepository.php + Support/ + CommunicationTransactionRunner.php + RecipientSet.php + RecipientFingerprint.php + TemplateRenderer.php + MessageSanitizer.php + DeliveryRetryPolicy.php +``` + +Islamic Sunday School-specific communication behavior goes here: + +```text +app/ + Domain/ + IslamicSundaySchool/ + Communication/ + Resolvers/ + SundayClassRecipientResolver.php + VolunteerTeamRecipientResolver.php + MasjidFamilyRecipientResolver.php + VolunteerRecipientResolver.php + IslamicSundaySchoolProgramRecipientResolver.php + Policies/ + IslamicSundaySchoolCommunicationPreferencePolicy.php + IslamicSundaySchoolRecipientAuthorizationPolicy.php + Templates/ + IslamicSundaySchoolTemplateCatalog.php + Providers/ + IslamicSundaySchoolCommunicationServiceProvider.php +``` + +--- + +## 4. Core Design Rules + +### 4.1 Communication services must require `SchoolContext` + +Every public communication method must receive `SchoolContext`. + +Example: + +```php +public function previewRecipients( + SchoolContext $context, + RecipientQueryData $query +): RecipientPreviewResult; +``` + +A message without `SchoolContext` is invalid. A bulk message without it is basically a confetti cannon pointed at privacy law. + +### 4.2 Bulk sends must require preview + +No bulk communication may send directly from raw filters. + +Required flow: + +```text +1. Resolve recipient query. +2. Generate recipient preview. +3. Deduplicate recipients. +4. Apply communication preferences. +5. Store preview snapshot. +6. Confirm/send using preview snapshot ID. +7. Send through channel router. +8. Log every recipient delivery attempt. +``` + +Forbidden flow: + +```text +Controller receives filters -> loops users -> sends emails +``` + +That flow looks productive until it sends 400 duplicate reminders to one guardian and misses everyone else. + +### 4.3 Recipient resolution must be modular + +Core recipient types: + +```text +students +guardians +staff +teachers +classes/groups +school-wide audience +custom uploaded recipients, if allowed +``` + +Islamic Sunday School recipient types: + +```text +Islamic Sunday School classes +volunteer teams +masjid/community families +volunteers +program attendees +curriculum groups +``` + +Islamic Sunday School recipient resolvers register through the resolver registry. Core must not know their names. + +### 4.4 Communication preferences must be enforced + +Every send must check: + +```text +channel opt-in/opt-out +recipient contact availability +student/guardian relationship visibility +emergency override rules +quiet hours, if configured +language preference, if configured +legal/sensitive category restrictions +``` + +Emergency messages may override some preferences only if policy allows it and audit logs record it. + +### 4.5 Controllers must not send directly + +Controllers may: + +```text +- validate request +- authorize route +- build DTO +- call communication contract +- return resource +``` + +Controllers may not: + +```text +- call Mail directly +- call WhatsApp/SMS clients directly +- loop over recipients +- resolve recipient queries directly +- deduplicate recipients directly +- apply preferences directly +- build final templates directly +``` + +--- + +## 5. Core Contracts + +### 5.1 `CommunicationServiceContract` + +```php +namespace App\Domain\SchoolCore\Communication\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Communication\DTO\SendMessageData; +use App\Domain\SchoolCore\Communication\DTO\BulkSendMessageData; + +interface CommunicationServiceContract +{ + public function sendMessage(SchoolContext $context, SendMessageData $data): SendResult; + + public function sendBulkMessage(SchoolContext $context, BulkSendMessageData $data): BulkSendResult; + + public function scheduleBulkMessage(SchoolContext $context, BulkSendMessageData $data): ScheduledMessageResult; +} +``` + +### 5.2 `RecipientPreviewServiceContract` + +```php +namespace App\Domain\SchoolCore\Communication\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Communication\DTO\RecipientQueryData; + +interface RecipientPreviewServiceContract +{ + public function preview(SchoolContext $context, RecipientQueryData $query): RecipientPreviewResult; + + public function getPreview(SchoolContext $context, string $previewId): RecipientPreviewResult; +} +``` + +### 5.3 `RecipientResolverContract` + +```php +namespace App\Domain\SchoolCore\Communication\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Communication\DTO\RecipientQueryData; + +interface RecipientResolverContract +{ + public function supports(RecipientQueryData $query): bool; + + public function resolve(SchoolContext $context, RecipientQueryData $query): RecipientSet; +} +``` + +### 5.4 `RecipientDedupeServiceContract` + +```php +namespace App\Domain\SchoolCore\Communication\Contracts; + +interface RecipientDedupeServiceContract +{ + public function dedupe(RecipientSet $recipients): RecipientSet; +} +``` + +### 5.5 `CommunicationPreferencePolicyContract` + +```php +namespace App\Domain\SchoolCore\Communication\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface CommunicationPreferencePolicyContract +{ + public function filterAllowedRecipients( + SchoolContext $context, + RecipientSet $recipients, + CommunicationChannel $channel, + MessageCategory $category + ): RecipientSet; + + public function canOverridePreferences( + SchoolContext $context, + MessageCategory $category + ): bool; +} +``` + +### 5.6 `ChannelRouterContract` + +```php +namespace App\Domain\SchoolCore\Communication\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface ChannelRouterContract +{ + public function route(SchoolContext $context, ChannelMessageData $message): DeliveryResult; +} +``` + +### 5.7 Channel contracts + +```php +interface EmailChannelContract +{ + public function send(SchoolContext $context, ChannelMessageData $message): DeliveryResult; +} + +interface SmsChannelContract +{ + public function send(SchoolContext $context, ChannelMessageData $message): DeliveryResult; +} + +interface WhatsAppChannelContract +{ + public function send(SchoolContext $context, ChannelMessageData $message): DeliveryResult; +} + +interface NotificationChannelContract +{ + public function send(SchoolContext $context, ChannelMessageData $message): DeliveryResult; +} +``` + +--- + +## 6. DTO Requirements + +Do not pass raw request arrays into communication services. + +### 6.1 `RecipientQueryData` + +Fields: + +```text +audience_type +audience_filters +channel +message_category +include_inactive, default false +include_archived, default false +include_guardians, default true +include_students, default false +include_staff, default false +language, nullable +metadata, nullable +``` + +### 6.2 `RecipientData` + +Fields: + +```text +recipient_type +recipient_id +display_name +email, nullable +phone, nullable +preferred_language, nullable +guardian_student_ids, nullable array +staff_id, nullable +student_id, nullable +school_id +delivery_channels +preference_flags +metadata, nullable +``` + +### 6.3 `ComposeMessageData` + +Fields: + +```text +template_id, nullable +subject, nullable +body +variables, nullable +message_category +priority +language, nullable +attachments, nullable array +metadata, nullable +``` + +### 6.4 `BulkSendMessageData` + +Fields: + +```text +preview_id +channel +subject, nullable +body +template_id, nullable +variables, nullable +message_category +priority +scheduled_at, nullable +idempotency_key, nullable +confirmation_token +metadata, nullable +``` + +### 6.5 `DeliveryReceiptData` + +Fields: + +```text +message_id +recipient_id +channel +provider_message_id, nullable +status +failure_reason, nullable +raw_provider_payload, nullable +delivered_at, nullable +failed_at, nullable +``` + +--- + +## 7. Recipient Preview Model + +### 7.1 Required preview behavior + +Preview must show: + +```text +total resolved recipients +total after dedupe +total blocked by preference +total missing contact method +total unauthorized/excluded +sample recipients +recipient groups included +recipient groups excluded +estimated channel cost, if available +warning flags +preview expires_at +``` + +### 7.2 Preview snapshot fields + +Suggested table: + +```text +communication_recipient_previews +``` + +Fields: + +```text +id +school_id +actor_user_id +audience_type +audience_filters_json +channel +message_category +recipient_count +deduped_count +blocked_count +missing_contact_count +snapshot_json +confirmation_token_hash +expires_at +created_at +``` + +The send step must use the preview snapshot, not rerun a mutable query without warning. Otherwise “previewed 38 recipients” becomes “sent to 417 recipients” because someone changed a class assignment mid-click. Lovely. + +### 7.3 Preview confirmation + +Bulk send requires: + +```text +preview_id +confirmation_token +idempotency_key +``` + +The confirmation token proves the user is sending the set they previewed. + +--- + +## 8. Recipient Resolution Strategy + +### 8.1 Resolver registry + +Create a registry that holds all resolvers. + +Resolution flow: + +```text +1. Receive RecipientQueryData. +2. Find resolver that supports audience_type/filter. +3. Resolve raw recipient set. +4. Scope to SchoolContext. +5. Apply authorization filters. +6. Dedupe. +7. Apply communication preferences. +8. Return preview. +``` + +### 8.2 Core resolvers + +Core should include: + +```text +StudentRecipientResolver +GuardianRecipientResolver +StaffRecipientResolver +ClassRecipientResolver +SchoolWideRecipientResolver +``` + +### 8.3 Islamic Sunday School resolvers + +Islamic Sunday School may register: + +```text +SundayClassRecipientResolver +VolunteerTeamRecipientResolver +MasjidFamilyRecipientResolver +VolunteerRecipientResolver +IslamicSundaySchoolProgramRecipientResolver +``` + +These must implement `RecipientResolverContract`. + +--- + +## 9. Deduplication Rules + +Recipient dedupe must handle: + +```text +same guardian linked to multiple students +same email used by multiple contacts +same phone used by multiple contacts +staff member also guardian +recipient selected through multiple groups +``` + +Default dedupe priority: + +```text +1. explicit recipient ID +2. verified email +3. verified phone +4. normalized name + contact fallback +``` + +Dedupe result must preserve reason metadata: + +```text +recipient selected by class A +recipient selected by class B +deduped into one delivery +``` + +This matters because people will ask why they received a message, usually right after the message was unnecessary. + +--- + +## 10. Communication Preferences + +### 10.1 Preference dimensions + +Preferences may include: + +```text +channel +message category +language +quiet hours +emergency override +student-specific guardian communication rules +staff communication rules +unsubscribe status +``` + +Message categories: + +```text +academic +attendance +finance +emergency +general +event +system +religious_or_sensitive, extension-controlled +``` + +### 10.2 Required enforcement + +Before sending: + +```text +- remove opted-out recipients unless override is allowed +- remove recipients missing channel contact method +- remove guardians not authorized for selected student/category +- respect quiet hours if configured +- record every exclusion reason +``` + +### 10.3 Emergency behavior + +Emergency messages may override preferences only if: + +```text +- actor has permission +- category is emergency +- audit log records override +- message copy is preserved +``` + +--- + +## 11. Template and Rendering Rules + +### 11.1 Template ownership + +Core templates: + +```text +attendance notice +finance notice +general announcement +event reminder +system notice +``` + +Islamic Sunday School templates: + +```text +Islamic Sunday School class reminder +program volunteer reminder +curriculum update +masjid family/community announcement +program attendance follow-up +``` + +### 11.2 Rendering rules + +Template rendering must: + +```text +- use safe variable interpolation +- reject unknown variables unless policy allows fallback +- support language variants +- render preview before send +- log template version used +``` + +Forbidden: + +```text +eval() +raw user HTML without sanitization +template rendering inside controller loops +``` + +A message template should not be a tiny remote-code-execution shrine. We have enough problems. + +--- + +## 12. Channel Delivery Strategy + +### 12.1 Channel router + +The router chooses delivery channel based on: + +```text +requested channel +recipient allowed channels +recipient contact availability +school provider configuration +message category +priority +fallback policy +``` + +### 12.2 Email channel + +Must support: + +```text +subject +body +attachments, if allowed +reply-to +template version +delivery status tracking, if provider supports it +``` + +### 12.3 SMS/WhatsApp channels + +Must support: + +```text +phone normalization +provider configuration by school +message length rules +template approval requirements, if provider requires it +delivery status callbacks +rate limits +``` + +### 12.4 Notification channel + +Must support: + +```text +in-app notifications +push notifications, if configured +read status +deep link target +``` + +--- + +## 13. Send Logging Requirements + +Every send attempt must create a log row. + +Suggested tables: + +```text +communication_messages +communication_message_recipients +communication_delivery_attempts +communication_recipient_previews +communication_preferences +communication_templates +``` + +### 13.1 Message log fields + +```text +id +school_id +academic_year_id, nullable +term_id, nullable +actor_user_id +channel +message_category +priority +subject, nullable +body_snapshot +template_id, nullable +template_version, nullable +preview_id, nullable +status +scheduled_at, nullable +sent_at, nullable +created_at +``` + +### 13.2 Recipient log fields + +```text +id +message_id +school_id +recipient_type +recipient_id +delivery_address_hash +delivery_address_masked +status +excluded_reason, nullable +provider_message_id, nullable +sent_at, nullable +delivered_at, nullable +failed_at, nullable +created_at +``` + +Do not store sensitive full delivery addresses in every log table unless there is a clear policy. Store masked/hash where practical. Privacy is not a garnish. + +--- + +## 14. Retry and Failure Handling + +### 14.1 Retry policy + +Retries should be handled by channel and failure type. + +Retryable: + +```text +provider timeout +temporary provider failure +rate limit +network error +``` + +Not retryable: + +```text +invalid email +invalid phone +recipient opted out +unauthorized recipient +template rejected permanently +``` + +### 14.2 Required behavior + +```text +- retry count is capped +- every retry attempt is logged +- final failure reason is stored +- provider message ID is stored where available +- bulk send result includes success/failure counts +``` + +--- + +## 15. Idempotency Requirements + +Bulk sends and direct sends must support idempotency. + +Minimum implementation: + +```text +idempotency_key +actor_user_id +school_id +operation +payload_hash +result_entity_type +result_entity_id +created_at +expires_at +``` + +Behavior: + +```text +- same key + same operation + same payload returns original result +- same key + same operation + different payload fails +- missing key allowed for legacy clients during transition +``` + +Apply first to: + +```text +bulk send +single send +scheduled send +``` + +--- + +## 16. Audit Logging Requirements + +Every communication action must create an audit event. + +Required audit fields: + +```text +school_id +academic_year_id, nullable +term_id, nullable +actor_user_id +actor_role_snapshot +action +entity_type +entity_id +before_json, nullable +after_json, nullable +reason, nullable +request_id +ip_address, nullable +user_agent, nullable +idempotency_key, nullable +created_at +``` + +Required actions: + +```text +communication.preview.created +communication.message.created +communication.bulk_send.confirmed +communication.message.sent +communication.message.scheduled +communication.message.cancelled +communication.delivery.failed +communication.preference.updated +communication.template.created +communication.template.updated +communication.template.archived +``` + +--- + +## 17. Authorization Requirements + +Minimum actions: + +```text +communication.preview +communication.send.single +communication.send.bulk +communication.schedule +communication.cancel +communication.template.view +communication.template.manage +communication.preference.view +communication.preference.manage +communication.delivery.view +communication.audit.view +``` + +Every communication endpoint must have tests for: + +```text +unauthenticated +wrong school +wrong role +wrong audience scope +wrong message category permission +authorized admin +authorized staff +authorized teacher within assigned class scope +authorized finance user for finance messages +authorized attendance user for attendance messages +``` + +Sensitive audience categories require stronger permission: + +```text +emergency +finance +religious_or_sensitive +student discipline +medical, if ever supported +``` + +--- + +## 18. Islamic Sunday School Extension Model + +Islamic Sunday School communication extends core through resolvers, templates, and policies. + +### 18.1 Islamic Sunday School allowed customizations + +```text +- Islamic Sunday School class recipient resolver +- volunteer team recipient resolver +- masjid family/community recipient resolver +- volunteer recipient resolver +- Sunday program attendance follow-up resolver +- masjid/family announcement templates +- volunteer/program reminder templates +- religious/sensitive category policy +``` + +### 18.2 Islamic Sunday School forbidden customizations + +```text +- bypassing recipient preview +- bypassing dedupe +- bypassing preferences +- bypassing audit logs +- sending directly from controllers +- hardcoding ministry/masjid/community vocabulary into SchoolCore contracts +- querying recipients without SchoolContext +``` + +### 18.3 Binding example + +```php +$this->app->tag([ + SundayClassRecipientResolver::class, + VolunteerTeamRecipientResolver::class, + MasjidFamilyRecipientResolver::class, + VolunteerRecipientResolver::class, +], 'communication.recipient_resolvers'); + +$this->app->bind( + CommunicationPreferencePolicyContract::class, + IslamicSundaySchoolCommunicationPreferencePolicy::class +); +``` + +--- + +## 19. Migration Strategy + +### 19.1 Use vertical slices + +Recommended order: + +```text +1. Recipient preview service +2. Recipient resolver registry +3. Recipient dedupe service +4. Communication preference policy +5. Email channel extraction +6. Bulk send flow +7. WhatsApp/SMS adapter boundaries +8. Template service +9. Delivery status/retries +10. Islamic Sunday School recipient extensions +``` + +Why this order: + +```text +- preview prevents accidental mass sends +- resolver/dedupe creates stable recipient set +- preferences prevent unauthorized/unwanted sends +- email is usually easiest to stabilize first +- SMS/WhatsApp provider behavior needs adapter boundaries +- templates and delivery status build on stable sends +``` + +### 19.2 Compatibility layer + +Existing controllers may remain temporarily, but must delegate to new contracts. + +Example: + +```text +BroadcastController + -> BulkSendMessageRequest + -> SchoolContext + -> RecipientPreviewServiceContract::preview() + -> CommunicationServiceContract::sendBulkMessage() + -> MessageResource +``` + +Legacy direct-send methods should become wrappers or be deprecated. + +### 19.3 Deprecation rule + +Every legacy communication method must be labeled as one of: + +```text +canonical +adapter +deprecated +remove +``` + +No unlabeled duplicate send loops. + +--- + +## 20. First Implementation Slice: Recipient Preview + +### Objective + +Introduce preview-before-send for all bulk communication. + +### Tasks + +```text +COM-001. Create Communication module scaffold. +COM-002. Create RecipientPreviewServiceContract. +COM-003. Create RecipientQueryData. +COM-004. Create preview snapshot table/model. +COM-005. Implement basic preview for existing audience filters. +COM-006. Add confirmation token. +COM-007. Update bulk send endpoints to require preview_id. +``` + +### Required tests + +```text +- preview returns recipient count +- preview is school-scoped +- preview excludes unauthorized audience +- preview stores snapshot +- expired preview cannot be used +- send without preview fails for bulk messages +``` + +### Done when + +```text +- no active bulk send path can bypass preview +- preview snapshot is used for send confirmation +``` + +--- + +## 21. Second Implementation Slice: Resolver Registry + +### Objective + +Centralize recipient resolution through pluggable resolvers. + +### Tasks + +```text +COM-008. Create RecipientResolverContract. +COM-009. Create resolver registry. +COM-010. Add core student/guardian/staff/class resolvers. +COM-011. Scope all resolver queries by school_id. +COM-012. Add resolver tests. +``` + +### Required tests + +```text +- resolves guardians for class +- resolves staff group +- resolves school-wide audience +- rejects unsupported audience type +- does not include another school's users +``` + +### Done when + +```text +- recipient queries do not live in controllers +- Islamic Sunday School can register custom resolvers +``` + +--- + +## 22. Third Implementation Slice: Dedupe and Preferences + +### Objective + +Prevent duplicate and unauthorized recipient delivery. + +### Tasks + +```text +COM-013. Create RecipientDedupeServiceContract. +COM-014. Implement dedupe rules. +COM-015. Create CommunicationPreferencePolicyContract. +COM-016. Implement default preference policy. +COM-017. Add exclusion reason tracking. +``` + +### Required tests + +```text +- same guardian selected twice receives one message +- same email selected through two students dedupes correctly +- opted-out recipient is excluded +- missing email/phone is excluded for relevant channel +- emergency override follows policy +``` + +### Done when + +```text +- bulk preview shows deduped and excluded counts +- send uses deduped/preference-filtered recipient set +``` + +--- + +## 23. Fourth Implementation Slice: Email Channel Extraction + +### Objective + +Move email sending behind a reusable channel contract. + +### Tasks + +```text +COM-018. Create ChannelRouterContract. +COM-019. Create EmailChannelContract. +COM-020. Implement EmailChannel. +COM-021. Create message and recipient logs. +COM-022. Add communication.message.sent audit event. +COM-023. Update email send endpoints to delegate. +``` + +### Required tests + +```text +- sends single email +- sends bulk email from preview +- logs each recipient attempt +- blocks cross-school recipient +- respects preferences +- idempotency prevents duplicate send +``` + +### Done when + +```text +- controllers do not call Mail directly +- email sends are logged and auditable +``` + +--- + +## 24. Fifth Implementation Slice: Bulk Send Flow + +### Objective + +Standardize bulk send orchestration. + +### Tasks + +```text +COM-024. Create CommunicationServiceContract. +COM-025. Create BulkSendMessageData. +COM-026. Implement sendBulkMessage(). +COM-027. Require preview_id and confirmation_token. +COM-028. Add idempotency support. +COM-029. Add summary result counts. +``` + +### Required tests + +```text +- bulk send requires preview +- invalid confirmation token fails +- expired preview fails +- repeated idempotency key returns same result +- same key with different payload fails +- bulk result includes sent/excluded/failed counts +``` + +### Done when + +```text +- bulk send has one orchestration path +- direct loops are deprecated +``` + +--- + +## 25. Sixth Implementation Slice: SMS/WhatsApp Boundaries + +### Objective + +Move SMS and WhatsApp delivery behind channel contracts. + +### Tasks + +```text +COM-030. Create SmsChannelContract. +COM-031. Create WhatsAppChannelContract. +COM-032. Implement provider adapter wrappers. +COM-033. Add phone normalization. +COM-034. Add provider failure mapping. +COM-035. Add delivery attempt logs. +``` + +### Required tests + +```text +- invalid phone is excluded +- provider timeout is retryable +- opt-out blocks SMS/WhatsApp +- WhatsApp provider failure is logged +- school-specific provider configuration is respected +``` + +### Done when + +```text +- controllers/services do not call provider SDKs directly +- channel failures are normalized +``` + +--- + +## 26. Seventh Implementation Slice: Template Service + +### Objective + +Centralize templates and rendering. + +### Tasks + +```text +COM-036. Create MessageTemplateServiceContract. +COM-037. Create TemplateRenderer. +COM-038. Add template versioning. +COM-039. Add variable validation. +COM-040. Add template audit logs. +``` + +### Required tests + +```text +- renders valid template +- rejects unknown required variable +- stores template version used +- supports language variant +- unsafe HTML is sanitized or rejected by policy +``` + +### Done when + +```text +- templates are reusable and versioned +- send logs preserve rendered message snapshot +``` + +--- + +## 27. Eighth Implementation Slice: Delivery Status and Retries + +### Objective + +Track delivery status and retry transient failures. + +### Tasks + +```text +COM-041. Create DeliveryStatusServiceContract. +COM-042. Create DeliveryRetryPolicy. +COM-043. Add delivery receipt endpoint/handler where provider supports it. +COM-044. Add retry job. +COM-045. Add final failure handling. +``` + +### Required tests + +```text +- delivered receipt updates status +- failed receipt updates status +- retryable failure schedules retry +- non-retryable failure does not retry +- retry limit is enforced +``` + +### Done when + +```text +- delivery status is not guessed +- retry behavior is deterministic +``` + +--- + +## 28. Ninth Implementation Slice: Islamic Sunday School Recipient Extensions + +### Objective + +Add Islamic Sunday School recipient behavior through resolvers and policies. + +### Tasks + +```text +COM-046. Create SundayClassRecipientResolver. +COM-047. Create VolunteerTeamRecipientResolver. +COM-048. Create MasjidFamilyRecipientResolver. +COM-049. Create IslamicSundaySchoolCommunicationPreferencePolicy. +COM-050. Register resolvers through provider tags. +COM-051. Add Islamic Sunday School-specific templates. +``` + +### Required tests + +```text +- resolves Islamic Sunday School class guardians +- resolves volunteer team members +- resolves masjid family/community group +- Islamic Sunday School resolver cannot return another school's recipients +- SchoolCore does not import IslamicSundaySchool resolver classes +``` + +### Done when + +```text +- Islamic Sunday School communication behavior is extension-driven +- core communication remains school-neutral +``` + +--- + +## 29. Database and Schema Requirements + +### 29.1 Required indexes + +Add or verify: + +```text +communication_messages.school_id indexed +communication_messages.actor_user_id indexed +communication_messages.channel indexed +communication_messages.message_category indexed +communication_messages.status indexed +communication_messages.created_at indexed + +communication_message_recipients.school_id indexed +communication_message_recipients.message_id indexed +communication_message_recipients.recipient_type/recipient_id indexed +communication_message_recipients.status indexed + +communication_delivery_attempts.message_recipient_id indexed +communication_delivery_attempts.provider_message_id indexed, nullable +communication_delivery_attempts.status indexed +communication_delivery_attempts.created_at indexed + +communication_recipient_previews.school_id indexed +communication_recipient_previews.actor_user_id indexed +communication_recipient_previews.expires_at indexed + +communication_preferences.school_id indexed +communication_preferences.recipient_type/recipient_id indexed +communication_preferences.channel indexed + +communication_templates.school_id indexed, nullable +communication_templates.template_key indexed +communication_templates.status indexed +``` + +### 29.2 Recommended unique constraints + +```text +unique(school_id, idempotency_key, operation) where idempotency_key is not null +unique(school_id, template_key, version) +unique(message_id, recipient_type, recipient_id, channel) if one delivery per channel is required +``` + +--- + +## 30. FormRequest Requirements + +Create or update: + +```text +RecipientPreviewRequest +BulkSendMessageRequest +SendMessageRequest +ScheduleMessageRequest +CancelScheduledMessageRequest +CreateMessageTemplateRequest +UpdateMessageTemplateRequest +UpdateCommunicationPreferenceRequest +DeliveryReceiptRequest +``` + +Each FormRequest must define: + +```text +authorize() +rules() +messages(), if needed +toDTO(), optional but recommended +``` + +Controllers should use: + +```php +$data = $request->toDTO(); +``` + +Not raw request merging. + +--- + +## 31. Service Provider Bindings + +Create: + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Communication\Contracts\CommunicationServiceContract; +use App\Domain\SchoolCore\Communication\Services\CommunicationService; + +final class SchoolCoreCommunicationServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->bind(CommunicationServiceContract::class, CommunicationService::class); + $this->app->bind(RecipientPreviewServiceContract::class, RecipientPreviewService::class); + $this->app->bind(RecipientDedupeServiceContract::class, RecipientDedupeService::class); + $this->app->bind(CommunicationPreferencePolicyContract::class, DefaultCommunicationPreferencePolicy::class); + $this->app->bind(ChannelRouterContract::class, ChannelRouter::class); + $this->app->bind(EmailChannelContract::class, EmailChannel::class); + $this->app->bind(SmsChannelContract::class, SmsChannel::class); + $this->app->bind(WhatsAppChannelContract::class, WhatsAppChannel::class); + $this->app->bind(NotificationChannelContract::class, NotificationChannel::class); + $this->app->bind(MessageTemplateServiceContract::class, MessageTemplateService::class); + $this->app->bind(DeliveryStatusServiceContract::class, DeliveryStatusService::class); + $this->app->bind(CommunicationAuditLoggerContract::class, CommunicationAuditLogger::class); + $this->app->bind(CommunicationIdempotencyServiceContract::class, CommunicationIdempotencyService::class); + + $this->app->tag([ + StudentRecipientResolver::class, + GuardianRecipientResolver::class, + StaffRecipientResolver::class, + ClassRecipientResolver::class, + SchoolWideRecipientResolver::class, + ], 'communication.recipient_resolvers'); + } +} +``` + +Islamic Sunday School may add tagged resolvers in its own provider. + +--- + +## 32. Architecture Tests + +Add tests that fail if communication boundaries are violated. + +Required assertions: + +```text +SchoolCore\Communication must not depend on Domain\IslamicIslamicSundaySchool +SchoolCore\Communication must not depend on Illuminate\Http\Request +SchoolCore\Communication services must not call auth() +SchoolCore\Communication services must not call request() +Controllers must not instantiate communication concrete services directly +Bulk send must go through CommunicationServiceContract +Bulk send must require RecipientPreviewServiceContract result +Controllers must not call Mail/SMS/WhatsApp providers directly +``` + +Optional static checks: + +```text +No Sunday/masjid/community/ministry vocabulary inside SchoolCore\Communication contracts +No direct send loops in controllers +No bulk send without preview_id +No provider SDK calls outside channel adapters +No raw recipient query outside resolver classes +``` + +--- + +## 33. Rollout Plan + +### Step 1: Add communication module scaffolding + +```text +- create namespaces +- create contracts +- create DTOs +- create provider +- bind default implementations +``` + +### Step 2: Add regression tests around current sends + +```text +- existing email send +- bulk send +- WhatsApp/SMS send, if present +- recipient targeting +- duplicate recipient behavior +``` + +Some tests may reveal the current system is doing “creative recipient math.” That is not surprising. That is why this phase exists. + +### Step 3: Add preview-before-send + +```text +- safest high-value boundary +- prevents accidental mass sends +``` + +### Step 4: Extract resolver registry + +```text +- centralize recipient queries +- enable Islamic Sunday School extensions +``` + +### Step 5: Add dedupe/preferences + +```text +- prevent duplicates +- respect opt-outs and contact rules +``` + +### Step 6: Extract email channel + +```text +- stabilize one delivery path first +``` + +### Step 7: Standardize bulk send + +```text +- confirmation token +- idempotency +- summary result +``` + +### Step 8: Extract SMS/WhatsApp adapters + +```text +- normalize provider failures +- add retry handling +``` + +### Step 9: Add template service + +```text +- version templates +- preserve rendered snapshots +``` + +### Step 10: Add Islamic Sunday School recipient extensions + +```text +- resolvers and templates outside core +``` + +--- + +## 34. Implementation Tickets + +## COM-001: Create communication module scaffold + +### Description + +Create the `SchoolCore\Communication` namespace and initial contracts, DTO folders, services, channels, resolvers, enums, exceptions, and provider. + +### Acceptance Criteria + +```text +- Namespace exists. +- Service provider is registered. +- Empty contracts compile. +- No controller behavior changes yet. +``` + +--- + +## COM-002: Add recipient preview service + +### Description + +Create preview-before-send behavior for bulk communication. + +### Acceptance Criteria + +```text +- Preview is school-scoped. +- Preview stores recipient snapshot. +- Preview has confirmation token. +- Expired preview cannot be used. +- Bulk send without preview fails. +``` + +--- + +## COM-003: Add recipient resolver registry + +### Description + +Centralize recipient resolution through pluggable resolvers. + +### Acceptance Criteria + +```text +- Core resolvers are tagged/registered. +- Unsupported audience fails safely. +- Cross-school recipients are excluded. +- Islamic Sunday School can register resolvers without core changes. +``` + +--- + +## COM-004: Add recipient dedupe service and preference policy + +### Description + +Deduplicate recipients and enforce communication preferences. + +### Acceptance Criteria + +```text +- Duplicate guardian/contact receives one message. +- Opted-out recipients are excluded. +- Missing contact method is excluded. +- Exclusion reasons are visible in preview. +``` + +--- + +## COM-005: Extract email channel + +### Description + +Move email sending behind `EmailChannelContract`. + +### Acceptance Criteria + +```text +- Controllers no longer call Mail directly. +- Email sends create message and recipient logs. +- Idempotency prevents duplicate send. +- Preferences are enforced. +``` + +--- + +## COM-006: Standardize bulk send flow + +### Description + +Create single bulk send orchestration path using preview snapshot. + +### Acceptance Criteria + +```text +- Requires preview_id and confirmation_token. +- Uses preview snapshot. +- Returns sent/excluded/failed counts. +- Uses idempotency. +``` + +--- + +## COM-007: Extract SMS and WhatsApp adapters + +### Description + +Move SMS/WhatsApp delivery behind channel contracts. + +### Acceptance Criteria + +```text +- Provider SDK calls are isolated. +- Phone normalization exists. +- Provider failures are normalized. +- Delivery attempts are logged. +``` + +--- + +## COM-008: Add template service + +### Description + +Create reusable versioned message template service. + +### Acceptance Criteria + +```text +- Templates are versioned. +- Variables are validated. +- Rendered message snapshot is logged. +- Unsafe content is sanitized or rejected. +``` + +--- + +## COM-009: Add delivery status and retry handling + +### Description + +Track delivery status and retry transient failures. + +### Acceptance Criteria + +```text +- Delivery receipts update status. +- Retryable failures schedule retry. +- Non-retryable failures do not retry. +- Retry limit is enforced. +``` + +--- + +## COM-010: Add Islamic Sunday School communication extensions + +### Description + +Add Islamic Sunday School recipient resolvers, templates, and preference policy. + +### Acceptance Criteria + +```text +- Islamic Sunday School resolvers register through provider tags. +- Core does not import IslamicSundaySchool classes. +- Islamic Sunday School recipients are school-scoped. +- Islamic Sunday School templates are extension-owned. +``` + +--- + +## COM-011: Add communication architecture tests + +### Description + +Enforce communication module boundaries in CI. + +### Acceptance Criteria + +```text +- SchoolCore\Communication cannot import IslamicSundaySchool. +- Communication services cannot call auth() or request(). +- Controllers cannot call provider SDKs directly. +- Bulk send cannot bypass preview. +- CI fails on boundary violation. +``` + +--- + +## 35. Definition of Done for Phase 6 + +Phase 6 is done when: + +```text +- Communication core contracts exist. +- Bulk communication requires recipient preview. +- Recipient resolution is modular. +- Recipients are deduped. +- Communication preferences are enforced. +- Email delivery uses channel contract. +- SMS/WhatsApp delivery uses channel contracts or adapter boundaries. +- Bulk send uses preview snapshot, confirmation token, and idempotency. +- Message, recipient, and delivery attempt logs exist. +- Delivery retry behavior is deterministic. +- Templates are versioned and rendered safely. +- Islamic Sunday School recipient behavior is implemented through resolvers/policies/templates. +- Communication services require SchoolContext. +- Cross-school recipient leakage is blocked by tests. +- Architecture tests prevent SchoolCore from depending on IslamicSundaySchool. +- Legacy communication methods are labeled canonical, adapter, deprecated, or remove. +``` + +--- + +## 36. Non-Goals + +Do not include in Phase 6: + +```text +- full marketing campaign system +- advanced newsletter builder +- CRM replacement +- donation campaign tooling +- social media posting +- AI message generation +- complete parent portal redesign +- full emergency alert compliance program +``` + +Those may come later. Phase 6 is about making communication safe, reusable, previewable, and auditable. + +--- + +## 37. Main Risks + +### Risk: accidental mass send + +Mitigation: + +```text +- mandatory preview +- confirmation token +- recipient snapshot +- authorization tests +``` + +### Risk: duplicate recipients + +Mitigation: + +```text +- dedupe service +- recipient fingerprint +- preview counts +``` + +### Risk: cross-school leakage + +Mitigation: + +```text +- mandatory SchoolContext +- school-scoped resolvers +- architecture tests +``` + +### Risk: preference violations + +Mitigation: + +```text +- preference policy +- exclusion reasons +- emergency override audit +``` + +### Risk: provider chaos + +Mitigation: + +```text +- channel adapters +- normalized delivery results +- retry policy +- delivery logs +``` + +### Risk: Islamic Sunday School leakage into core + +Mitigation: + +```text +- extension resolvers +- template catalog outside core +- vocabulary architecture tests +``` + +--- + +## 38. Immediate Next Work Queue + +Start here: + +```text +1. COM-001 Create communication module scaffold +2. COM-002 Add recipient preview service +3. COM-003 Add recipient resolver registry +4. COM-004 Add recipient dedupe service and preference policy +5. COM-005 Extract email channel +6. COM-006 Standardize bulk send flow +7. COM-007 Extract SMS and WhatsApp adapters +8. COM-008 Add template service +9. COM-009 Add delivery status and retry handling +10. COM-010 Add Islamic Sunday School communication extensions +11. COM-011 Add communication architecture tests +``` + +Do not start by making nicer templates. A beautiful message sent to the wrong people is still a privacy incident with better typography. diff --git a/docs/modular_plans/phase_7_modular_reporting_execution_plan_islamic.md b/docs/modular_plans/phase_7_modular_reporting_execution_plan_islamic.md new file mode 100644 index 00000000..3a575280 --- /dev/null +++ b/docs/modular_plans/phase_7_modular_reporting_execution_plan_islamic.md @@ -0,0 +1,2187 @@ +# Phase 7 Execution Plan: Modular Reporting Extraction + +## 1. Purpose + +Phase 7 extracts reporting into a reusable `SchoolCore` module that can support any school system while allowing **Islamic Sunday School**-specific reports through extension read models, report builders, labels, and export templates. + +The reporting module must own the invariant parts of reporting: + +- report definitions +- report authorization +- report input validation +- read models +- query objects +- school-scoped report queries +- export generation +- report snapshots +- report audit logs +- scheduled reports +- report caching rules +- cross-school isolation +- consistent calculations sourced from domain modules + +Islamic Sunday School may customize: + +- Qur’an progress reports +- Arabic level reports +- Islamic studies progress reports +- halaqa/group reports +- Sunday program attendance reports +- masjid family/community reports +- volunteer/program team reports +- scholarship/sadaqah-supported fee reports, if applicable +- Islamic Sunday School dashboard labels + +Reporting must not become the place where business rules go to escape tests. Reports should display truth produced by services, policies, and read models. They should not invent finance balances, attendance counts, promotion rules, or student statuses with random raw SQL and optimism. + +--- + +## 2. Required Dependency Direction + +Reporting must follow the modular platform boundary: + +```text +App\Domain\IslamicSundaySchool\Reporting + ↓ depends on +App\Domain\SchoolCore\Reporting + ↓ depends on +App\Domain\SchoolCore\Shared +``` + +Allowed reporting dependencies: + +```text +SchoolCore\Reporting -> SchoolCore\Students read models/contracts +SchoolCore\Reporting -> SchoolCore\Attendance read models/contracts +SchoolCore\Reporting -> SchoolCore\Finance read models/contracts +SchoolCore\Reporting -> SchoolCore\Communication read models/contracts +SchoolCore\Reporting -> SchoolCore\Shared context/audit/export contracts +IslamicSundaySchool\Reporting -> SchoolCore\Reporting contracts +``` + +Forbidden dependencies: + +```text +SchoolCore\Reporting -> IslamicSundaySchool\* +SchoolCore\Reporting -> Http\Request +SchoolCore\Reporting -> auth() +SchoolCore\Reporting -> controller classes +SchoolCore\Reporting -> Islamic Sunday School vocabulary +SchoolCore\Reporting -> direct unscoped school queries +SchoolCore\Reporting -> mutation services for write-side behavior +``` + +Reporting may consume read-side contracts. It must not call mutation services to “calculate” state by causing side effects. Yes, that has happened in real systems. Humanity has been unsupervised near databases for too long. + +--- + +## 3. Target Namespace Structure + +Create the reporting module under `SchoolCore`: + +```text +app/ + Domain/ + SchoolCore/ + Reporting/ + Contracts/ + ReportRegistryContract.php + ReportDefinitionContract.php + ReportRunnerContract.php + ReportAuthorizationPolicyContract.php + ReportExportServiceContract.php + ReportSnapshotServiceContract.php + ScheduledReportServiceContract.php + ReportAuditLoggerContract.php + ReportCacheServiceContract.php + DTO/ + ReportRequestData.php + ReportFilterData.php + ReportColumnData.php + ReportSortData.php + ReportResultData.php + ReportExportData.php + ReportSnapshotData.php + ScheduledReportData.php + ReportAuditData.php + Enums/ + ReportCategory.php + ReportFormat.php + ReportStatus.php + ReportVisibility.php + ReportAuditAction.php + ReportScheduleFrequency.php + Exceptions/ + ReportingException.php + ReportNotFoundException.php + UnauthorizedReportAccessException.php + InvalidReportFilterException.php + ReportExportException.php + ReportTimeoutException.php + Services/ + ReportRegistry.php + ReportRunner.php + ReportExportService.php + ReportSnapshotService.php + ScheduledReportService.php + ReportAuditLogger.php + ReportCacheService.php + Reports/ + Students/ + StudentRosterReport.php + StudentEnrollmentReport.php + GuardianContactReport.php + Attendance/ + AttendanceSummaryReport.php + StudentAttendanceHistoryReport.php + StaffAttendanceSummaryReport.php + Finance/ + InvoiceSummaryReport.php + OutstandingBalanceReport.php + PaymentSummaryReport.php + Communication/ + MessageDeliveryReport.php + RecipientEngagementReport.php + ReadModels/ + StudentReportReadModel.php + AttendanceReportReadModel.php + FinanceReportReadModel.php + CommunicationReportReadModel.php + Repositories/ + ReportReadRepository.php + ReportSnapshotRepository.php + ScheduledReportRepository.php + Support/ + ReportQueryBuilder.php + ReportColumnFormatter.php + ReportFilterValidator.php + ReportExportFilenameBuilder.php + ReportContext.php +``` + +Islamic Sunday School-specific reporting goes here: + +```text +app/ + Domain/ + IslamicSundaySchool/ + Reporting/ + Reports/ + QuranProgressReport.php + ArabicLevelReport.php + IslamicStudiesProgressReport.php + HalaqaAttendanceReport.php + SundayProgramAttendanceReport.php + MasjidFamilySummaryReport.php + VolunteerTeamReport.php + IslamicSundaySchoolDashboardReport.php + ReadModels/ + QuranProgressReadModel.php + ArabicProgressReadModel.php + IslamicStudiesProgressReadModel.php + HalaqaReportReadModel.php + MasjidFamilyReportReadModel.php + ExportTemplates/ + QuranProgressExportTemplate.php + FamilySummaryExportTemplate.php + Providers/ + IslamicSundaySchoolReportingServiceProvider.php +``` + +--- + +## 4. Core Design Rules + +### 4.1 Reporting services must require `SchoolContext` + +Every public reporting method must receive `SchoolContext`. + +Example: + +```php +public function run( + SchoolContext $context, + ReportRequestData $data +): ReportResult; +``` + +A report without `SchoolContext` is invalid. A report without school scoping is a data leak wearing a chart. + +### 4.2 Reports must be read-only + +Reports may: + +```text +- query read models +- call read-only repositories +- format output +- export files +- create report snapshots +- create report audit logs +``` + +Reports may not: + +```text +- mutate invoices +- recalculate balances directly +- modify attendance records +- promote students +- update communication status +- create domain records +``` + +If a report needs a calculated value, it must come from a domain read model or calculation service owned by that domain. + +### 4.3 Reports must not duplicate business logic + +Reporting must consume: + +```text +Finance BalanceCalculator/read model +Attendance summary read model +Student lifecycle read model +Communication delivery read model +``` + +Forbidden: + +```text +A report writing its own invoice balance calculation +A report counting attendance differently from AttendanceService +A report deciding promotion eligibility +A report inferring communication delivery status from provider payloads directly +``` + +That is how dashboards become folklore. + +### 4.4 Islamic Sunday School reports must live in extension layer + +Core reports may use neutral concepts: + +```text +student +guardian +household +enrollment +assignment +attendance session +finance balance +communication delivery +program +group +level +``` + +Islamic Sunday School reports may use extension concepts: + +```text +Qur'an level +Arabic level +Islamic studies track +halaqa +masjid family/community +Sunday program +volunteer team +``` + +Core must not import or hardcode those concepts. + +### 4.5 Report exports must be auditable + +Every export must log: + +```text +who exported +what report +filters used +record count +format +timestamp +school context +``` + +Exports often contain sensitive student, guardian, finance, or attendance data. Treat exports like controlled data access, not “just a CSV,” because CSV files are how private data escapes wearing business casual. + +--- + +## 5. Core Contracts + +### 5.1 `ReportRegistryContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface ReportRegistryContract +{ + /** + * @return ReportDefinitionContract[] + */ + public function availableReports(SchoolContext $context): array; + + public function get(string $reportKey): ReportDefinitionContract; + + public function register(ReportDefinitionContract $definition): void; +} +``` + +### 5.2 `ReportDefinitionContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +interface ReportDefinitionContract +{ + public function key(): string; + + public function name(): string; + + public function category(): ReportCategory; + + public function filters(): array; + + public function columns(): array; + + public function supportedFormats(): array; + + public function visibility(): ReportVisibility; +} +``` + +### 5.3 `ReportRunnerContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Reporting\DTO\ReportRequestData; + +interface ReportRunnerContract +{ + public function run(SchoolContext $context, ReportRequestData $data): ReportResult; +} +``` + +### 5.4 `ReportAuthorizationPolicyContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface ReportAuthorizationPolicyContract +{ + public function canViewReport( + SchoolContext $context, + ReportDefinitionContract $report + ): bool; + + public function canExportReport( + SchoolContext $context, + ReportDefinitionContract $report + ): bool; + + public function filterAllowedColumns( + SchoolContext $context, + ReportDefinitionContract $report, + array $columns + ): array; +} +``` + +### 5.5 `ReportExportServiceContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Reporting\DTO\ReportExportData; + +interface ReportExportServiceContract +{ + public function export(SchoolContext $context, ReportExportData $data): ReportExportResult; +} +``` + +### 5.6 `ReportSnapshotServiceContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; + +interface ReportSnapshotServiceContract +{ + public function createSnapshot( + SchoolContext $context, + ReportResult $result + ): ReportSnapshotResult; + + public function getSnapshot( + SchoolContext $context, + string $snapshotId + ): ReportSnapshotView; +} +``` + +### 5.7 `ScheduledReportServiceContract` + +```php +namespace App\Domain\SchoolCore\Reporting\Contracts; + +use App\Domain\SchoolCore\Shared\Context\SchoolContext; +use App\Domain\SchoolCore\Reporting\DTO\ScheduledReportData; + +interface ScheduledReportServiceContract +{ + public function schedule(SchoolContext $context, ScheduledReportData $data): ScheduledReportResult; + + public function cancel(SchoolContext $context, int $scheduleId): ScheduledReportResult; +} +``` + +--- + +## 6. DTO Requirements + +Do not pass raw request arrays into reporting services. + +### 6.1 `ReportRequestData` + +Fields: + +```text +report_key +filters +columns, nullable +sorts, nullable +page, nullable +per_page, nullable +include_totals, default false +timezone, nullable +locale, nullable +snapshot, default false +metadata, nullable +``` + +### 6.2 `ReportFilterData` + +Fields: + +```text +field +operator +value +value_to, nullable +required, bool +``` + +Supported operators should be explicit: + +```text +equals +not_equals +in +not_in +between +date_between +contains +starts_with +is_null +is_not_null +``` + +### 6.3 `ReportExportData` + +Fields: + +```text +report_key +filters +columns, nullable +format +snapshot_id, nullable +filename, nullable +include_sensitive_columns, default false +idempotency_key, nullable +metadata, nullable +``` + +### 6.4 `ScheduledReportData` + +Fields: + +```text +report_key +filters +columns, nullable +format +frequency +run_at +recipient_user_ids +recipient_emails, nullable if policy allows +expires_at, nullable +metadata, nullable +``` + +### 6.5 `ReportResultData` + +Fields: + +```text +report_key +columns +rows +totals, nullable +page, nullable +per_page, nullable +total_rows, nullable +generated_at +snapshot_id, nullable +warnings, nullable array +``` + +--- + +## 7. Report Categories + +Core report categories: + +```text +students +guardians +enrollment +attendance +finance +communication +staff +operations +audit +``` + +Islamic Sunday School extension categories: + +```text +quran +arabic +islamic_studies +halaqa +program_attendance +masjid_family +volunteer_programs +``` + +These extension categories may appear in the registry only when the `islamic_sunday_school` domain profile is active or when the extension provider is installed and authorized. + +--- + +## 8. Report Registry Strategy + +### 8.1 Core registry + +The registry must support: + +```text +core reports +extension reports +visibility filtering +authorization filtering +school/domain profile filtering +``` + +### 8.2 Registration flow + +Core provider registers core reports: + +```php +$this->app->tag([ + StudentRosterReport::class, + AttendanceSummaryReport::class, + InvoiceSummaryReport::class, + MessageDeliveryReport::class, +], 'schoolcore.reports'); +``` + +Islamic Sunday School provider registers extension reports: + +```php +$this->app->tag([ + QuranProgressReport::class, + ArabicLevelReport::class, + IslamicStudiesProgressReport::class, + HalaqaAttendanceReport::class, + MasjidFamilySummaryReport::class, +], 'schoolcore.reports'); +``` + +### 8.3 Registry rules + +```text +- Report keys must be globally unique. +- Extension report keys should be prefixed. +- Report definitions must declare required permissions. +- Registry must filter unavailable extension reports by domain profile. +``` + +Example keys: + +```text +students.roster +attendance.summary +finance.outstanding_balance +communication.delivery +islamic.quran_progress +islamic.arabic_level +islamic.halaqa_attendance +islamic.masjid_family_summary +``` + +--- + +## 9. Read Model Strategy + +Reports should query read models instead of raw operational tables wherever practical. + +### 9.1 Core read models + +Required read model contracts or repositories: + +```text +StudentReportReadModel +AttendanceReportReadModel +FinanceReportReadModel +CommunicationReportReadModel +StaffReportReadModel +``` + +### 9.2 Extension read models + +Islamic Sunday School read models: + +```text +QuranProgressReadModel +ArabicProgressReadModel +IslamicStudiesProgressReadModel +HalaqaReportReadModel +MasjidFamilyReportReadModel +``` + +### 9.3 Read model rules + +```text +- every query must include school_id from SchoolContext +- every date filter must respect context timezone +- sensitive columns require explicit authorization +- reports must not join extension tables unless inside extension report/read model +- totals must match owning domain calculation services +``` + +--- + +## 10. Core Reports + +### 10.1 Student roster report + +Purpose: + +```text +List active students by school, enrollment, assignment, guardian summary, and status. +``` + +Must support filters: + +```text +academic_year +term +program +group/class +status +enrollment_status +age range +guardian contact availability +``` + +Must not include by default: + +```text +sensitive notes +medical data +religious extension fields +finance balance +``` + +### 10.2 Guardian contact report + +Purpose: + +```text +List guardian contact information according to authorization and communication policy. +``` + +Required protections: + +```text +mask contact fields where policy requires +respect guardian relationship visibility +exclude restricted contacts +audit exports +``` + +### 10.3 Attendance summary report + +Purpose: + +```text +Show attendance counts and rates by session/date/group/student/staff. +``` + +Must consume: + +```text +SchoolCore\Attendance read model +``` + +Must not: + +```text +recalculate duplicate scan behavior +invent status mappings +count raw scan logs as attendance records +``` + +### 10.4 Finance outstanding balance report + +Purpose: + +```text +Show outstanding balances by student/guardian/invoice. +``` + +Must consume: + +```text +SchoolCore\Finance read model or BalanceCalculator output +``` + +Must not: + +```text +calculate balances using ad hoc SQL +ignore refunds/reversals +show finance fields to unauthorized actors +``` + +### 10.5 Communication delivery report + +Purpose: + +```text +Show message delivery status, excluded recipients, failed deliveries, and retry state. +``` + +Must consume: + +```text +SchoolCore\Communication delivery read model +``` + +Must not: + +```text +query provider payloads directly outside the delivery status model +``` + +--- + +## 11. Islamic Sunday School Reports + +### 11.1 Qur’an progress report + +Purpose: + +```text +Track Qur’an level, memorization progress summary, recitation placement, teacher/group, and progress status. +``` + +Rules: + +```text +- lives in IslamicSundaySchool\Reporting +- reads from IslamicSundaySchool student/curriculum read models +- must be school-scoped +- sensitive notes require explicit permission +- may join core student/enrollment read models through contracts +``` + +### 11.2 Arabic level report + +Purpose: + +```text +Track Arabic level placement, progress, teacher/group, and placement changes. +``` + +Rules: + +```text +- core only knows neutral level/program concepts +- extension maps Arabic-specific levels and labels +``` + +### 11.3 Islamic studies progress report + +Purpose: + +```text +Track Islamic studies track, class/group, completion status, and teacher evaluation summary. +``` + +Rules: + +```text +- no religious-specific concepts in SchoolCore +- extension owns labels and calculations +``` + +### 11.4 Halaqa attendance report + +Purpose: + +```text +Show attendance by halaqa/group/session for Islamic Sunday School programs. +``` + +Rules: + +```text +- attendance facts come from SchoolCore\Attendance +- halaqa/group mapping comes from IslamicSundaySchool extension +- duplicate scans must not inflate counts +``` + +### 11.5 Masjid family/community summary report + +Purpose: + +```text +Summarize students and guardians by masjid family/community profile, household, volunteer participation, and program enrollment. +``` + +Rules: + +```text +- contact information must obey guardian/communication policies +- sensitive family/community notes require strict permission +``` + +### 11.6 Volunteer team report + +Purpose: + +```text +Show volunteer/program team members, assigned sessions, attendance, and communication status. +``` + +Rules: + +```text +- volunteers should map to neutral staff/volunteer subject types in core +- extension owns Islamic Sunday School labels and grouping +``` + +--- + +## 12. Report Authorization + +Minimum report permissions: + +```text +report.view +report.export +report.schedule +report.audit.view +report.students.view +report.guardians.view +report.attendance.view +report.finance.view +report.communication.view +report.staff.view +report.sensitive.view +``` + +Islamic Sunday School extension permissions: + +```text +report.islamic.quran.view +report.islamic.arabic.view +report.islamic.studies.view +report.islamic.halaqa.view +report.islamic.masjid_family.view +report.islamic.volunteer.view +report.islamic.sensitive_notes.view +``` + +Every report must define: + +```text +required permission +allowed roles +sensitive columns +export permission +school/domain profile availability +``` + +Every report endpoint must test: + +```text +unauthenticated +wrong school +wrong role +wrong domain profile +allowed admin +allowed staff +teacher assigned-scope view, if supported +guardian own-student view, if supported +export denied when view-only +``` + +--- + +## 13. Sensitive Data Rules + +Reports may expose sensitive data accidentally because tables are easy to join and humans are easy to disappoint. + +Sensitive categories: + +```text +student personal data +guardian contact data +finance balances/payments +attendance history +communication delivery logs +sensitive imam/admin notes +scholarship/sadaqah support indicators +discipline/behavior notes, if present +medical data, if ever supported +``` + +Rules: + +```text +- sensitive columns require explicit permission +- export requires stronger permission than view +- exports must be audited +- reports should mask fields by default where practical +- snapshots containing sensitive fields must have retention rules +``` + +--- + +## 14. Export Strategy + +Supported formats: + +```text +csv +xlsx +pdf, optional +json, internal/admin only if allowed +``` + +Export requirements: + +```text +- use ReportExportServiceContract +- validate format against report definition +- include generated_at and school context metadata +- include filters used +- use safe filenames +- store or stream based on policy +- audit every export +``` + +Export filename format: + +```text +{school_slug}_{report_key}_{date}_{snapshot_id}.{format} +``` + +Example: + +```text +al-noor_islamic.quran_progress_2026-05-29_ab12cd.xlsx +``` + +### 14.1 Export retention + +Define per report: + +```text +not stored / streamed only +stored for 24 hours +stored for 7 days +stored until manually deleted +``` + +Sensitive exports should default to short retention. + +--- + +## 15. Report Snapshots + +### 15.1 Why snapshots exist + +Snapshots preserve what the user saw at the time of generation. + +Required for: + +```text +bulk communication recipient previews +finance reports used for reconciliation +attendance reports used for official records +scheduled reports +exports +``` + +### 15.2 Snapshot fields + +Suggested table: + +```text +report_snapshots +``` + +Fields: + +```text +id +school_id +actor_user_id +report_key +filters_json +columns_json +result_summary_json +snapshot_storage_path, nullable +sensitive_data_flag +expires_at, nullable +created_at +``` + +### 15.3 Snapshot rules + +```text +- snapshots must be school-scoped +- sensitive snapshots require retention policy +- snapshot access must re-check authorization +- snapshots should not bypass current permission rules +``` + +--- + +## 16. Scheduled Reports + +Scheduled reports are useful and dangerous, the perfect combination for a feature request. + +Required behavior: + +```text +- schedule owner must have report.schedule permission +- recipients must be authorized to receive the report +- every scheduled run resolves fresh SchoolContext +- every scheduled run creates audit log +- delivery uses Communication module where possible +- sensitive reports require explicit recipient validation +``` + +Do not email finance or student-sensitive exports to arbitrary addresses without policy approval. + +--- + +## 17. Caching Strategy + +Reports may be cached only when safe. + +Cache key must include: + +```text +school_id +academic_year_id +term_id, nullable +actor permission scope +report_key +filters +columns +locale +timezone +``` + +Rules: + +```text +- do not share cached sensitive reports across actors unless policy allows +- invalidate finance reports after finance mutation +- invalidate attendance reports after attendance mutation +- invalidate student reports after lifecycle mutation +- invalidate communication reports after delivery status update +``` + +If cache correctness is hard to prove, do not cache. Slow truth beats fast lies, a lesson dashboards learn only after leadership screenshots them. + +--- + +## 18. Audit Logging Requirements + +Every report action must create an audit event. + +Required audit fields: + +```text +school_id +academic_year_id, nullable +term_id, nullable +actor_user_id +actor_role_snapshot +action +report_key +entity_type, nullable +entity_id, nullable +filters_json, nullable +columns_json, nullable +format, nullable +row_count, nullable +sensitive_data_flag +request_id +ip_address, nullable +user_agent, nullable +created_at +``` + +Required actions: + +```text +report.viewed +report.exported +report.snapshot.created +report.snapshot.viewed +report.scheduled +report.schedule.cancelled +report.schedule.failed +``` + +Audit logs are append-only. + +--- + +## 19. FormRequest Requirements + +Create or update: + +```text +RunReportRequest +ExportReportRequest +ScheduleReportRequest +CancelScheduledReportRequest +ViewReportSnapshotRequest +ListReportsRequest +``` + +Each FormRequest must define: + +```text +authorize() +rules() +messages(), if needed +toDTO(), optional but recommended +``` + +Controllers should use: + +```php +$data = $request->toDTO(); +``` + +Not raw request array merging, because apparently arrays with no boundaries are still the default foot-gun. + +--- + +## 20. Controller Target Shape + +Target flow: + +```text +ReportController + -> RunReportRequest + -> SchoolContext + -> ReportRequestData + -> ReportRunnerContract::run() + -> ReportResource +``` + +Export flow: + +```text +ReportExportController + -> ExportReportRequest + -> SchoolContext + -> ReportExportData + -> ReportExportServiceContract::export() + -> file response or export resource +``` + +Controllers may not: + +```text +- build raw report SQL +- authorize only by logged-in status +- expose all columns by default +- export without audit +- call extension reports directly by concrete class +``` + +--- + +## 21. Migration Strategy + +### 21.1 Use vertical slices + +Recommended order: + +```text +1. Report registry and definitions +2. Report authorization policy +3. Student roster report +4. Attendance summary report +5. Finance outstanding balance report +6. Communication delivery report +7. Export service +8. Report snapshots +9. Islamic Sunday School extension reports +10. Scheduled reports and caching +``` + +Why this order: + +```text +- registry creates the seam +- authorization prevents report leaks +- student/attendance/finance/communication reports validate read-model integration +- exports need audit and retention before broad use +- Islamic reports should extend proven core mechanisms +- scheduling/caching comes last because stale scheduled sensitive exports are a very stupid way to create an incident +``` + +### 21.2 Compatibility layer + +Existing report controllers may remain temporarily, but must delegate to new contracts. + +Example: + +```text +LegacyReportController + -> RunReportRequest + -> SchoolContext + -> ReportRunnerContract +``` + +Legacy report methods must be labeled: + +```text +canonical +adapter +deprecated +remove +``` + +No unlabeled duplicate report logic. + +--- + +## 22. First Implementation Slice: Report Registry + +### Objective + +Create the report registry and define report metadata. + +### Tasks + +```text +REP-001. Create Reporting module scaffold. +REP-002. Create ReportDefinitionContract. +REP-003. Create ReportRegistryContract. +REP-004. Implement ReportRegistry. +REP-005. Add report provider tagging. +REP-006. Register initial core report definitions. +REP-007. Add tests for registry lookup and availability filtering. +``` + +### Required tests + +```text +- lists available reports +- returns report by key +- rejects unknown report key +- filters reports by permission +- filters extension reports by domain profile +- report keys are unique +``` + +### Done when + +```text +- reports are discoverable through registry +- Islamic Sunday School reports can register without core imports +``` + +--- + +## 23. Second Implementation Slice: Report Authorization + +### Objective + +Prevent report data leakage before adding more reports. + +### Tasks + +```text +REP-008. Create ReportAuthorizationPolicyContract. +REP-009. Implement default policy. +REP-010. Add column-level authorization. +REP-011. Add export-specific authorization. +REP-012. Add sensitive data flagging. +``` + +### Required tests + +```text +- unauthenticated user cannot view reports +- wrong-school user cannot view report +- view-only user cannot export +- sensitive columns are removed without permission +- Islamic report unavailable outside Islamic Sunday School profile +``` + +### Done when + +```text +- every report requires explicit permission +- export permission is separate from view permission +``` + +--- + +## 24. Third Implementation Slice: Student Roster Report + +### Objective + +Create a reusable core student roster report. + +### Tasks + +```text +REP-013. Create StudentReportReadModel. +REP-014. Create StudentRosterReport. +REP-015. Add filters for status, enrollment, group, academic year, term. +REP-016. Add report result resource. +REP-017. Add tests for school scoping and field permissions. +``` + +### Required tests + +```text +- returns active students in school +- excludes other schools +- filters by enrollment status +- filters by group/class +- guardian contact fields follow permission policy +- archived students excluded by default +``` + +### Done when + +```text +- student roster report uses read model +- no student lifecycle rules are duplicated in the report +``` + +--- + +## 25. Fourth Implementation Slice: Attendance Summary Report + +### Objective + +Create core attendance reporting from attendance read models. + +### Tasks + +```text +REP-018. Create AttendanceReportReadModel. +REP-019. Create AttendanceSummaryReport. +REP-020. Add filters by date range, session, group, subject type. +REP-021. Ensure duplicate scan logs do not inflate attendance. +REP-022. Add tests against AttendanceService/read-model truth. +``` + +### Required tests + +```text +- attendance count matches Attendance module +- duplicate scans are not double-counted +- filters by session/date range +- excludes other schools +- status counts use canonical statuses +``` + +### Done when + +```text +- attendance reports do not query raw scan logs as source of truth +``` + +--- + +## 26. Fifth Implementation Slice: Finance Outstanding Balance Report + +### Objective + +Create core finance reporting from finance read models. + +### Tasks + +```text +REP-023. Create FinanceReportReadModel. +REP-024. Create OutstandingBalanceReport. +REP-025. Pull balances from Finance read model/BalanceCalculator output. +REP-026. Add filters by student, guardian, status, date range. +REP-027. Add export-sensitive authorization. +``` + +### Required tests + +```text +- balance matches Finance module calculation +- refunds/reversals are reflected correctly +- finance data hidden from unauthorized role +- excludes other schools +- export is audited +``` + +### Done when + +```text +- finance report does not duplicate invoice balance logic +``` + +--- + +## 27. Sixth Implementation Slice: Communication Delivery Report + +### Objective + +Create core communication delivery reporting. + +### Tasks + +```text +REP-028. Create CommunicationReportReadModel. +REP-029. Create MessageDeliveryReport. +REP-030. Add filters by channel, status, category, date range. +REP-031. Include excluded recipient counts. +REP-032. Add delivery failure summaries. +``` + +### Required tests + +```text +- shows sent/delivered/failed/excluded counts +- filters by channel +- excludes other schools +- hides recipient details without permission +- matches Communication module delivery logs +``` + +### Done when + +```text +- delivery report consumes Communication read model +``` + +--- + +## 28. Seventh Implementation Slice: Export Service + +### Objective + +Create safe, auditable report exports. + +### Tasks + +```text +REP-033. Create ReportExportServiceContract. +REP-034. Implement CSV export. +REP-035. Implement XLSX export if required. +REP-036. Add safe filename builder. +REP-037. Add export audit logs. +REP-038. Add retention policy. +``` + +### Required tests + +```text +- exports allowed report +- rejects unauthorized export +- rejects unsupported format +- masks/excludes sensitive columns +- writes report.exported audit log +- generated file name is safe +``` + +### Done when + +```text +- exports go through ReportExportService +- export access is audited +``` + +--- + +## 29. Eighth Implementation Slice: Report Snapshots + +### Objective + +Preserve report results for exports, audits, and scheduled reports. + +### Tasks + +```text +REP-039. Create ReportSnapshotServiceContract. +REP-040. Create report_snapshots table/model. +REP-041. Store snapshot metadata and result reference. +REP-042. Add snapshot authorization. +REP-043. Add retention behavior. +``` + +### Required tests + +```text +- creates snapshot +- retrieves snapshot in same school +- rejects snapshot from another school +- re-checks authorization on access +- expires snapshot according to policy +``` + +### Done when + +```text +- report snapshots are school-scoped and permission-checked +``` + +--- + +## 30. Ninth Implementation Slice: Islamic Sunday School Reports + +### Objective + +Add Islamic Sunday School-specific reporting through extension reports and read models. + +### Tasks + +```text +REP-044. Create IslamicSundaySchool Reporting namespace. +REP-045. Create QuranProgressReport. +REP-046. Create ArabicLevelReport. +REP-047. Create IslamicStudiesProgressReport. +REP-048. Create HalaqaAttendanceReport. +REP-049. Create MasjidFamilySummaryReport. +REP-050. Register reports through IslamicSundaySchoolReportingServiceProvider. +``` + +### Required tests + +```text +- Islamic reports only available for islamic_sunday_school profile +- Qur'an report excludes other schools +- Arabic report uses extension read model +- Halaqa attendance report uses Attendance read model facts +- Masjid family report respects contact permissions +- SchoolCore does not import IslamicSundaySchool reporting classes +``` + +### Done when + +```text +- Islamic Sunday School reports extend registry without core changes +``` + +--- + +## 31. Tenth Implementation Slice: Scheduled Reports and Caching + +### Objective + +Add scheduled report support and safe caching after core reporting is stable. + +### Tasks + +```text +REP-051. Create ScheduledReportServiceContract. +REP-052. Create scheduled_reports table/model. +REP-053. Add scheduled report job. +REP-054. Add authorized recipient validation. +REP-055. Add ReportCacheServiceContract. +REP-056. Add cache invalidation hooks. +``` + +### Required tests + +```text +- schedules allowed report +- rejects unauthorized schedule +- scheduled run resolves SchoolContext +- scheduled run creates audit log +- sensitive report cannot be sent to unauthorized recipient +- cache key includes school and permission scope +``` + +### Done when + +```text +- scheduled reports are safe enough to exist +- caching cannot cross permission/school boundaries +``` + +--- + +## 32. Database and Schema Requirements + +### 32.1 Required indexes + +Add or verify: + +```text +report_snapshots.school_id indexed +report_snapshots.actor_user_id indexed +report_snapshots.report_key indexed +report_snapshots.expires_at indexed +report_snapshots.created_at indexed + +scheduled_reports.school_id indexed +scheduled_reports.actor_user_id indexed +scheduled_reports.report_key indexed +scheduled_reports.next_run_at indexed +scheduled_reports.status indexed + +report_audit_logs.school_id indexed +report_audit_logs.actor_user_id indexed +report_audit_logs.report_key indexed +report_audit_logs.created_at indexed +``` + +### 32.2 Recommended unique constraints + +```text +unique(school_id, report_key, actor_user_id, idempotency_key) where idempotency_key is not null +unique(school_id, scheduled_report_name) if user-defined names are supported +``` + +--- + +## 33. Service Provider Bindings + +Create: + +```php +namespace App\Providers; + +use Illuminate\Support\ServiceProvider; +use App\Domain\SchoolCore\Reporting\Contracts\ReportRunnerContract; +use App\Domain\SchoolCore\Reporting\Services\ReportRunner; + +final class SchoolCoreReportingServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->singleton(ReportRegistryContract::class, ReportRegistry::class); + $this->app->bind(ReportRunnerContract::class, ReportRunner::class); + $this->app->bind(ReportAuthorizationPolicyContract::class, DefaultReportAuthorizationPolicy::class); + $this->app->bind(ReportExportServiceContract::class, ReportExportService::class); + $this->app->bind(ReportSnapshotServiceContract::class, ReportSnapshotService::class); + $this->app->bind(ScheduledReportServiceContract::class, ScheduledReportService::class); + $this->app->bind(ReportAuditLoggerContract::class, ReportAuditLogger::class); + $this->app->bind(ReportCacheServiceContract::class, ReportCacheService::class); + + $this->app->tag([ + StudentRosterReport::class, + GuardianContactReport::class, + AttendanceSummaryReport::class, + OutstandingBalanceReport::class, + MessageDeliveryReport::class, + ], 'schoolcore.reports'); + } +} +``` + +Islamic Sunday School provider: + +```php +final class IslamicSundaySchoolReportingServiceProvider extends ServiceProvider +{ + public function register(): void + { + $this->app->tag([ + QuranProgressReport::class, + ArabicLevelReport::class, + IslamicStudiesProgressReport::class, + HalaqaAttendanceReport::class, + MasjidFamilySummaryReport::class, + VolunteerTeamReport::class, + ], 'schoolcore.reports'); + } +} +``` + +--- + +## 34. Architecture Tests + +Add tests that fail if reporting boundaries are violated. + +Required assertions: + +```text +SchoolCore\Reporting must not depend on Domain\IslamicSundaySchool +SchoolCore\Reporting must not depend on Illuminate\Http\Request +SchoolCore\Reporting services must not call auth() +SchoolCore\Reporting services must not call request() +Controllers must not instantiate report concrete classes directly +Report controllers must call ReportRunnerContract or ReportExportServiceContract +Core report contracts must not contain Islamic Sunday School vocabulary +Reports must include SchoolContext +Exports must go through ReportExportServiceContract +``` + +Optional static checks: + +```text +No direct finance balance calculation in reports +No raw attendance scan-log counting as attendance result +No report export without audit log +No scheduled report to arbitrary email without policy +No extension report registered from SchoolCore provider +``` + +--- + +## 35. Rollout Plan + +### Step 1: Add reporting module scaffolding + +```text +- create namespaces +- create contracts +- create DTOs +- create provider +- create registry +``` + +### Step 2: Add report authorization + +```text +- view/export permissions +- sensitive column filtering +- school context enforcement +``` + +### Step 3: Migrate student roster + +```text +- low-risk read-only core report +- proves registry/read model/resource flow +``` + +### Step 4: Migrate attendance summary + +```text +- prove attendance read model integration +- prevent duplicate scan inflation +``` + +### Step 5: Migrate finance outstanding balance + +```text +- prove finance read model integration +- protect sensitive finance fields +``` + +### Step 6: Migrate communication delivery + +```text +- prove communication logs/read models +``` + +### Step 7: Add export service + +```text +- CSV/XLSX +- audit +- retention +``` + +### Step 8: Add snapshots + +```text +- stable exports +- audit support +``` + +### Step 9: Add Islamic Sunday School reports + +```text +- Qur'an, Arabic, Islamic studies, halaqa, masjid family/community +- extension-only concepts remain outside core +``` + +### Step 10: Add scheduled reports and caching + +```text +- only after authorization/export behavior is stable +``` + +--- + +## 36. Implementation Tickets + +## REP-001: Create reporting module scaffold + +### Description + +Create the `SchoolCore\Reporting` namespace and initial contracts, DTO folders, report folders, read model folders, services, exceptions, enums, and provider. + +### Acceptance Criteria + +```text +- Namespace exists. +- Service provider is registered. +- Empty contracts compile. +- No controller behavior changes yet. +``` + +--- + +## REP-002: Add report registry + +### Description + +Create report registration and discovery system. + +### Acceptance Criteria + +```text +- Reports can be registered by provider. +- Reports can be fetched by key. +- Duplicate keys fail. +- Islamic Sunday School reports can register through extension provider. +``` + +--- + +## REP-003: Add report authorization policy + +### Description + +Add report view/export/column-level authorization. + +### Acceptance Criteria + +```text +- View and export are separate permissions. +- Sensitive columns are filtered. +- Wrong-school access fails. +- Extension reports filtered by domain profile. +``` + +--- + +## REP-004: Create student roster report + +### Description + +Create first core report using student read model. + +### Acceptance Criteria + +```text +- School-scoped. +- Filters by status/enrollment/group. +- Excludes archived students by default. +- Does not expose restricted guardian data. +``` + +--- + +## REP-005: Create attendance summary report + +### Description + +Create attendance report using attendance read model. + +### Acceptance Criteria + +```text +- Counts match Attendance module. +- Duplicate scans do not inflate counts. +- Canonical attendance statuses are used. +- Cross-school data is excluded. +``` + +--- + +## REP-006: Create finance outstanding balance report + +### Description + +Create finance report using finance read model. + +### Acceptance Criteria + +```text +- Balances match Finance module. +- Refunds/reversals are reflected. +- Unauthorized finance access fails. +- Export is audited. +``` + +--- + +## REP-007: Create communication delivery report + +### Description + +Create delivery report using communication read model. + +### Acceptance Criteria + +```text +- Shows sent/delivered/failed/excluded counts. +- Filters by channel/status/category/date. +- Hides recipient details without permission. +``` + +--- + +## REP-008: Add export service + +### Description + +Create safe CSV/XLSX export flow. + +### Acceptance Criteria + +```text +- Export requires permission. +- Unsupported formats fail. +- Sensitive columns are filtered. +- Export audit log is written. +- Safe filename is generated. +``` + +--- + +## REP-009: Add report snapshots + +### Description + +Create report snapshot storage and access controls. + +### Acceptance Criteria + +```text +- Snapshot is school-scoped. +- Snapshot access re-checks authorization. +- Sensitive snapshots follow retention rule. +``` + +--- + +## REP-010: Add Islamic Sunday School reports + +### Description + +Add Qur'an, Arabic, Islamic studies, halaqa, and masjid family/community reports as extension reports. + +### Acceptance Criteria + +```text +- Reports are registered by IslamicSundaySchool provider. +- Reports only available for islamic_sunday_school profile. +- SchoolCore does not import IslamicSundaySchool classes. +- Sensitive extension fields require explicit permission. +``` + +--- + +## REP-011: Add scheduled reports and caching + +### Description + +Add scheduled report execution and safe caching. + +### Acceptance Criteria + +```text +- Scheduled runs resolve SchoolContext. +- Recipients are authorized. +- Audit log is written. +- Cache key includes school and permission scope. +- Sensitive reports are not shared across actors incorrectly. +``` + +--- + +## REP-012: Add reporting architecture tests + +### Description + +Enforce reporting module boundaries in CI. + +### Acceptance Criteria + +```text +- SchoolCore\Reporting cannot import IslamicSundaySchool. +- Reporting services cannot call auth() or request(). +- Core contracts contain no Islamic Sunday School vocabulary. +- Reports cannot export without audit. +- CI fails on boundary violation. +``` + +--- + +## 37. Definition of Done for Phase 7 + +Phase 7 is done when: + +```text +- Reporting core contracts exist. +- Report registry exists. +- Report authorization policy exists. +- Student roster report uses read model. +- Attendance summary report uses Attendance read model. +- Finance outstanding balance report uses Finance read model. +- Communication delivery report uses Communication read model. +- Export service is auditable and permission-controlled. +- Report snapshots are school-scoped and permission-checked. +- Islamic Sunday School reports live in extension layer. +- Scheduled reports resolve SchoolContext and validate recipients. +- Report caching cannot cross school or permission boundaries. +- Architecture tests prevent SchoolCore from depending on IslamicSundaySchool. +- Legacy report methods are labeled canonical, adapter, deprecated, or remove. +``` + +--- + +## 38. Non-Goals + +Do not include in Phase 7: + +```text +- full BI/data warehouse platform +- drag-and-drop report builder +- public analytics dashboards +- machine learning predictions +- advanced charting library migration +- full PDF design system +- external accounting export suite +- parent-facing report portal redesign +``` + +Those can come later. Phase 7 is about trustworthy, scoped, reusable reporting. Fancy charts can wait until the numbers stop lying. + +--- + +## 39. Main Risks + +### Risk: reports duplicate business logic + +Mitigation: + +```text +- read model contracts +- domain-owned calculation services +- architecture/static checks +``` + +### Risk: cross-school data leakage + +Mitigation: + +```text +- mandatory SchoolContext +- school-scoped read repositories +- wrong-school tests +``` + +### Risk: sensitive export leakage + +Mitigation: + +```text +- export authorization +- sensitive column filtering +- audit logs +- retention policy +``` + +### Risk: Islamic Sunday School leakage into core + +Mitigation: + +```text +- extension reports +- architecture tests +- neutral core vocabulary +``` + +### Risk: stale cached reports + +Mitigation: + +```text +- permission-aware cache keys +- domain mutation invalidation +- disable caching when correctness is unclear +``` + +### Risk: scheduled reports sent to wrong recipients + +Mitigation: + +```text +- recipient authorization validation +- Communication module integration +- audit every scheduled run +``` + +--- + +## 40. Immediate Next Work Queue + +Start here: + +```text +1. REP-001 Create reporting module scaffold +2. REP-002 Add report registry +3. REP-003 Add report authorization policy +4. REP-004 Create student roster report +5. REP-005 Create attendance summary report +6. REP-006 Create finance outstanding balance report +7. REP-007 Create communication delivery report +8. REP-008 Add export service +9. REP-009 Add report snapshots +10. REP-010 Add Islamic Sunday School reports +11. REP-012 Add reporting architecture tests +12. REP-011 Add scheduled reports and caching +``` + +Do not start with PDF styling, charts, dashboards, or executive summary sparkle. First make the numbers correct, scoped, authorized, and auditable. Then the graphs can wear a little hat. diff --git a/docs/modular_plans/phase_8_controller_api_cleanup_execution_plan_islamic.md b/docs/modular_plans/phase_8_controller_api_cleanup_execution_plan_islamic.md new file mode 100644 index 00000000..dff48dfe --- /dev/null +++ b/docs/modular_plans/phase_8_controller_api_cleanup_execution_plan_islamic.md @@ -0,0 +1,1850 @@ +# Phase 8 Execution Plan: Controller and API Cleanup + +## 1. Purpose + +Phase 8 cleans up the controller and API layer after the modular core has started taking shape. + +The goal is to make controllers thin, predictable, secure, testable, and compatible with the modular platform architecture: + +```text +Http Controllers + ↓ +FormRequests / Resources + ↓ +SchoolContext + ↓ +SchoolCore contracts + ↓ +IslamicSundaySchool extension contracts/policies where applicable +``` + +Controllers should not contain domain behavior. They are delivery adapters. They receive HTTP noise, validate it, authorize it, pass a DTO to an application/domain service, and return a response. + +That is the whole job. Controllers trying to calculate balances, record attendance, resolve recipients, generate student IDs, or build reports are not “pragmatic.” They are tiny procedural empires squatting in the web layer. + +--- + +## 2. Scope + +Phase 8 applies to: + +```text +API controllers +legacy compatibility controllers +FormRequests +API Resources +response envelopes +route definitions +authorization middleware/policies +OpenAPI/API documentation +controller tests +route inventory +legacy duplicate controller cleanup +``` + +This phase does not rewrite the domain modules. It forces controllers to use the contracts created in earlier phases. + +Covered modules: + +```text +SchoolContext +Core Contracts +Finance +Attendance +Students +Communication +Reporting +IslamicSundaySchool extension endpoints +``` + +--- + +## 3. Required Dependency Direction + +Controllers may depend on: + +```text +SchoolCore contracts +IslamicSundaySchool extension contracts, only for extension-specific routes +FormRequests +Resources +SchoolContext resolver/store +Authorization policies/gates +``` + +Controllers must not depend on: + +```text +Eloquent models for domain mutation, except simple legacy adapters during migration +raw DB queries +service concrete classes when contract exists +Http\Request directly for validated domain data +auth() calls scattered inside methods +business rule helpers +private domain orchestration methods +provider SDKs +file system paths directly +``` + +Allowed: + +```text +Controller -> Contract -> Service +Controller -> FormRequest -> DTO +Controller -> Resource +Controller -> Policy/Gate +``` + +Forbidden: + +```text +Controller -> DB::table(...) +Controller -> Mail::send(...) +Controller -> WhatsAppProvider +Controller -> Invoice::update(balance) +Controller -> Student::max(id) + 1 +Controller -> attendance mutation queries +Controller -> report SQL +``` + +Yes, controllers can technically do all of that. A shovel can technically be used as a dinner utensil too. + +--- + +## 4. Controller Target Shape + +Every controller action should follow this shape: + +```php +public function store(CreateStudentRequest $request): StudentResource +{ + $context = $this->schoolContext->current(); + + $result = $this->students->createStudent( + $context, + $request->toDTO() + ); + + return new StudentResource($result->student); +} +``` + +Allowed responsibilities: + +```text +1. Accept FormRequest. +2. Resolve SchoolContext. +3. Authorize request/resource. +4. Build DTO. +5. Call contract. +6. Return Resource or standardized API response. +``` + +Forbidden responsibilities: + +```text +- domain calculations +- multi-step business transactions +- direct file lookup +- direct provider calls +- duplicate validation logic +- raw request merging +- direct cross-module orchestration +- generating IDs +- applying role logic manually +``` + +--- + +## 5. API Response Standard + +The project must choose one response envelope and enforce it. + +Recommended envelope: + +```json +{ + "success": true, + "data": {}, + "message": null, + "meta": {}, + "errors": null +} +``` + +For errors: + +```json +{ + "success": false, + "data": null, + "message": "Validation failed.", + "meta": {}, + "errors": { + "field": ["Error message."] + } +} +``` + +Rules: + +```text +- Resources own response data shape. +- Controllers do not hand-build inconsistent arrays. +- Paginated responses include consistent pagination metadata. +- Error responses use centralized exception handling. +- Legacy response shapes may be preserved temporarily by adapters. +``` + +Compatibility warning: + +```text +Do not break existing clients casually. If response shape changes, version the API or provide compatibility resources. +``` + +Breaking mobile/admin clients because the backend suddenly became “clean” is not modernization. It is vandalism with a linter. + +--- + +## 6. API Versioning Strategy + +Recommended versioning: + +```text +/api/v1/... +/api/v2/... +``` + +Phase 8 should not force a full v2 unless breaking changes are unavoidable. + +Migration strategy: + +```text +v1 routes -> legacy-compatible resources/adapters +v2 routes -> modular standardized resources +``` + +Rules: + +```text +- v1 may preserve old response envelope where required. +- v2 uses standardized envelope. +- New modular endpoints should be v2-ready. +- Deprecated routes must include removal target. +``` + +--- + +## 7. Route Inventory + +Before cleanup, create a complete route inventory. + +Inventory fields: + +```text +HTTP method +URI +controller +action +middleware +auth requirement +permission/policy +request class +resource class +domain contract called +response envelope +legacy/canonical status +module +risk level +test coverage status +``` + +Suggested output: + +```text +storage/app/api-route-inventory.json +docs/api-route-inventory.md +``` + +Each route must be categorized: + +```text +canonical +adapter +deprecated +remove +unknown +``` + +No route should remain `unknown` after Phase 8. Unknown routes are abandoned doors into the app, and abandoned doors are how raccoons and data leaks get in. + +--- + +## 8. Controller Classification + +Every controller should be classified. + +Categories: + +```text +Canonical Controller +Adapter Controller +Deprecated Controller +Remove Candidate +Extension Controller +``` + +### 8.1 Canonical Controller + +Definition: + +```text +Current preferred controller for a module/route. +Uses FormRequests, Resources, SchoolContext, contracts, and policies. +``` + +### 8.2 Adapter Controller + +Definition: + +```text +Preserves old route/response behavior but delegates to modular contracts. +Contains no domain logic. +``` + +### 8.3 Deprecated Controller + +Definition: + +```text +Still reachable but scheduled for replacement/removal. +Must include deprecation comment and target replacement route. +``` + +### 8.4 Remove Candidate + +Definition: + +```text +Duplicate, unused, unsafe, or superseded controller. +No active route should point to it. +``` + +### 8.5 Extension Controller + +Definition: + +```text +Islamic Sunday School-specific controller. +May depend on IslamicSundaySchool contracts. +Must not be used by SchoolCore routes. +``` + +--- + +## 9. Duplicate Controller Cleanup + +Known duplicate-ish controller patterns must be resolved. + +Examples to review: + +```text +BaseApiController variants +RolePermissionController variants +RoleSwitcherController variants +StatsController variants +UserController variants +Finance/payment controllers +Attendance/scanner controllers +Student controllers +Report controllers +Communication/broadcast controllers +``` + +Resolution process: + +```text +1. Find all routes pointing to duplicate controllers. +2. Identify canonical route/controller. +3. Convert old controller to adapter if compatibility is needed. +4. Remove domain logic from adapter. +5. Mark deprecated route with replacement. +6. Add tests proving old and new route behavior. +7. Remove unused controller after deprecation window. +``` + +Rule: + +```text +A shim may contain mapping code. It may not contain business logic. +``` + +--- + +## 10. FormRequest Standard + +Every route that accepts input must use a FormRequest unless explicitly exempted. + +Required methods: + +```php +public function authorize(): bool; + +public function rules(): array; + +public function toDTO(): SomeData; +``` + +Optional: + +```php +public function messages(): array; + +protected function prepareForValidation(): void; +``` + +Rules: + +```text +- validation lives in FormRequest +- authorization gate/policy check may begin in FormRequest +- controllers use validated data only +- no raw array merging in controllers +- no Validator::make inside controller except temporary documented adapter +``` + +Forbidden pattern: + +```php +$data = array_merge($request->query->all(), $request->all(), $request->json()->all()); +$validator = Validator::make($data, [...]); +``` + +That pattern is not flexibility. It is a custody battle between query params and JSON. + +--- + +## 11. Resource Standard + +Every response returning domain data should use a Resource or ResourceCollection. + +Examples: + +```text +StudentResource +GuardianResource +InvoiceResource +PaymentResource +AttendanceRecordResource +ScanResultResource +MessageResource +RecipientPreviewResource +ReportResultResource +IslamicSundaySchoolStudentProfileResource +QuranProgressReportResource +``` + +Rules: + +```text +- Resources decide shape. +- Resources respect authorization/field visibility. +- Sensitive fields are hidden unless allowed. +- Extension fields appear only in extension resources or composed views. +- Controllers do not manually build nested response arrays. +``` + +Resource versioning: + +```text +App\Http\Resources\V1\... +App\Http\Resources\V2\... +``` + +Use versioned resources if compatibility requires it. + +--- + +## 12. Authorization Matrix + +Every route needs explicit authorization. + +Route authorization matrix fields: + +```text +route +action +resource type +permission +policy/gate +ownership rule +school boundary rule +role allowance +negative tests +``` + +Minimum negative tests per mutation route: + +```text +unauthenticated +wrong school +wrong role +wrong owner/scope +authorized actor +``` + +High-risk modules requiring immediate authorization review: + +```text +finance +payment files +student profile +guardian contact data +attendance override +role/permission mutation +bulk communication +report export +Islamic Sunday School sensitive profile fields +imam/admin notes +scholarship/sadaqah indicators +``` + +“User is logged in” is not authorization. It is merely proof that someone found the door. + +--- + +## 13. SchoolContext Enforcement + +Every controller must resolve or receive `SchoolContext`. + +Allowed patterns: + +```text +middleware resolves context +controller receives context store +FormRequest validates context-bound inputs +services receive context explicitly +``` + +Required checks: + +```text +school exists +actor belongs to school +academic year belongs to school +term/session belongs to school +resource belongs to school +extension route matches domain profile if applicable +``` + +Extension route example: + +```text +/api/v2/islamic-sunday-school/quran-progress +``` + +Must verify: + +```text +context.domain_profile == islamic_sunday_school +``` + +Or equivalent extension availability rule. + +--- + +## 14. Module-Specific Controller Cleanup + +## 14.1 Finance Controllers + +Target contracts: + +```text +InvoiceServiceContract +PaymentServiceContract +RefundServiceContract +FinanceFileServiceContract +ReportRunnerContract for finance reports +``` + +Controllers must not: + +```text +calculate invoice balances +edit payments directly +serve files by filename +apply discounts directly +delete financial history silently +``` + +Required cleanup: + +```text +- replace filename-based payment file download with payment-id route +- use PaymentServiceContract for record/edit/reverse +- use RefundServiceContract for refunds +- use FinanceFileServiceContract for downloads +- use Resources for invoices/payments +``` + +Required tests: + +```text +wrong-school finance access fails +payment edit requires permission +payment file download is payment-scoped +finance export requires permission +``` + +--- + +## 14.2 Attendance and Scanner Controllers + +Target contracts: + +```text +ScannerServiceContract +StudentAttendanceServiceContract +StaffAttendanceServiceContract +AttendanceServiceContract +``` + +Controllers must not: + +```text +lookup badges directly +determine late/present status +write attendance records +create scan logs directly +handle duplicate scan logic +``` + +Required cleanup: + +```text +- ScannerController delegates to ScannerServiceContract +- manual override routes use FormRequests +- override reason required +- ScanResultResource standardizes response +``` + +Required tests: + +```text +duplicate scan does not double-count +wrong-school badge fails +manual override requires permission and reason +scanner response remains compatible where needed +``` + +--- + +## 14.3 Student Lifecycle Controllers + +Target contracts: + +```text +StudentServiceContract +GuardianServiceContract +HouseholdServiceContract +EnrollmentServiceContract +AssignmentServiceContract +PromotionServiceContract +``` + +Controllers must not: + +```text +generate student identifiers +link guardians directly +create enrollments directly +assign groups/classes directly +mutate status directly +promote students directly +``` + +Required cleanup: + +```text +- student creation delegates to StudentServiceContract +- guardian linking delegates to GuardianServiceContract +- enrollment routes delegate to EnrollmentServiceContract +- promotion routes delegate to PromotionServiceContract +- Islamic profile routes use IslamicSundaySchool extension contract +``` + +Required tests: + +```text +concurrent student creation safe +wrong-school guardian link fails +status transition invalid path fails +Islamic profile sensitive fields require permission +``` + +--- + +## 14.4 Communication Controllers + +Target contracts: + +```text +RecipientPreviewServiceContract +CommunicationServiceContract +MessageTemplateServiceContract +DeliveryStatusServiceContract +``` + +Controllers must not: + +```text +loop recipients +call Mail directly +call SMS/WhatsApp providers directly +send bulk messages without preview +resolve audience queries directly +``` + +Required cleanup: + +```text +- bulk send requires preview_id and confirmation_token +- recipient preview route added +- send route uses CommunicationServiceContract +- channel provider callbacks use DeliveryStatusServiceContract +``` + +Required tests: + +```text +bulk send without preview fails +duplicate recipients are deduped +opt-outs are enforced +wrong-school recipients excluded +provider callbacks cannot mutate wrong-school message +``` + +--- + +## 14.5 Reporting Controllers + +Target contracts: + +```text +ReportRegistryContract +ReportRunnerContract +ReportExportServiceContract +ReportSnapshotServiceContract +ScheduledReportServiceContract +``` + +Controllers must not: + +```text +build report SQL +export directly +bypass report authorization +show extension reports outside domain profile +``` + +Required cleanup: + +```text +- report listing uses ReportRegistryContract +- run report uses ReportRunnerContract +- export uses ReportExportServiceContract +- snapshots use ReportSnapshotServiceContract +``` + +Required tests: + +```text +wrong-school report access fails +view-only user cannot export +Islamic reports hidden outside islamic_sunday_school profile +sensitive columns filtered +``` + +--- + +## 14.6 Islamic Sunday School Extension Controllers + +Allowed extension route examples: + +```text +/api/v2/islamic-sunday-school/students/{student}/profile +/api/v2/islamic-sunday-school/quran-progress +/api/v2/islamic-sunday-school/arabic-levels +/api/v2/islamic-sunday-school/halaqa-attendance +/api/v2/islamic-sunday-school/masjid-family-summary +``` + +Rules: + +```text +- extension routes depend on IslamicSundaySchool contracts +- extension routes require islamic_sunday_school domain profile or installed extension +- extension controllers may compose core resources and extension resources +- extension controllers must not mutate core tables directly +``` + +Forbidden: + +```text +SchoolCore controllers importing IslamicSundaySchool classes +Core student resource always exposing Qur'an/Arabic/halaqa fields +Core attendance controller hardcoding halaqa/session behavior +``` + +--- + +## 15. Exception Handling + +Centralize API exceptions. + +Map exceptions: + +```text +ValidationException -> 422 +AuthenticationException -> 401 +AuthorizationException -> 403 +ModelNotFoundException / domain not found -> 404 +DomainConflictException -> 409 +IdempotencyConflictException -> 409 +RateLimitException -> 429 +Unhandled exception -> 500 +``` + +Domain exceptions from prior phases: + +```text +FinanceException +AttendanceException +StudentException +CommunicationException +ReportingException +UnauthorizedFinanceAccessException +UnauthorizedAttendanceAccessException +UnauthorizedStudentAccessException +UnauthorizedCommunicationAccessException +UnauthorizedReportAccessException +``` + +Rules: + +```text +- exception messages must be safe for clients +- internal details logged server-side +- response envelope is consistent +- no stack traces in API output +``` + +--- + +## 16. OpenAPI Documentation + +Phase 8 should produce or update OpenAPI docs. + +Required for each endpoint: + +```text +method +path +summary +tags +auth requirements +permissions +request schema +response schema +error responses +pagination metadata, if any +deprecation status +``` + +OpenAPI grouping: + +```text +Auth +School Context +Students +Guardians +Enrollment +Attendance +Finance +Communication +Reporting +Islamic Sunday School +System/Admin +``` + +Rules: + +```text +- docs generated from route inventory where possible +- deprecated endpoints marked +- v1/v2 differences documented +- sensitive fields documented by permission +``` + +--- + +## 17. Compatibility Strategy + +Not all controllers should be broken at once. Apparently users dislike when APIs evaporate for architectural purity. Strange but documented. + +Compatibility options: + +```text +adapter controller +legacy resource +v1 route preservation +feature flag +deprecation header +API changelog +``` + +Deprecation headers: + +```text +Deprecation: true +Sunset: 2027-01-01 +Link: ; rel="successor-version" +``` + +Each deprecated endpoint must document: + +```text +replacement route +behavior differences +removal target +migration notes +``` + +--- + +## 18. Route Naming Standard + +Use consistent route names. + +Examples: + +```text +api.v2.students.index +api.v2.students.store +api.v2.students.show +api.v2.students.update +api.v2.finance.payments.store +api.v2.finance.payments.update +api.v2.finance.payments.file +api.v2.attendance.scans.store +api.v2.communication.recipient-previews.store +api.v2.communication.bulk-sends.store +api.v2.reporting.reports.run +api.v2.islamic-sunday-school.quran-progress.index +``` + +Rules: + +```text +- names are stable +- extension routes are clearly namespaced +- route names map to OpenAPI operation IDs +``` + +--- + +## 19. Middleware Standard + +Recommended middleware layers: + +```text +auth:sanctum or equivalent +resolve.school.context +ensure.school.membership +ensure.domain.profile, for extension routes +permission or policy middleware +request.id +rate.limit +audit.context +``` + +High-risk routes require stricter middleware: + +```text +finance mutations +file downloads +bulk communication sends +report exports +role/permission mutations +sensitive Islamic Sunday School profile fields +``` + +--- + +## 20. Testing Strategy + +### 20.1 Controller feature tests + +Every canonical controller action must test: + +```text +success path +validation failure +unauthenticated +unauthorized role +wrong school +wrong owner/scope +resource not found +standard response envelope +``` + +### 20.2 Adapter tests + +Every adapter route must test: + +```text +legacy route still works +response shape remains compatible +adapter delegates to contract +no domain logic in adapter +deprecation header if applicable +``` + +### 20.3 Architecture tests + +Required assertions: + +```text +controllers do not call DB directly for domain mutations +controllers do not call Mail/SMS/WhatsApp provider directly +controllers do not calculate invoice balance +controllers do not generate student identifiers +controllers do not write attendance records directly +controllers do not build report SQL +controllers use FormRequests for mutable endpoints +controllers return Resources or standardized response helpers +SchoolCore controllers do not import IslamicSundaySchool +extension controllers are under IslamicSundaySchool namespace or extension route group +``` + +--- + +## 21. Static Analysis Rules + +Add static checks where practical: + +```text +No DB::table in Http\Controllers +No Validator::make in canonical controllers +No Mail:: in Http\Controllers +No response()->download for payment files outside FinanceFileService +No max('id') identifier generation in controllers +No private methods over a set complexity threshold in controllers +No controller over a line-count threshold without review +``` + +Suggested thresholds: + +```text +controller class max 250 lines +controller action max 40 lines +private methods in controllers discouraged +``` + +These are not moral laws. They are smoke alarms. When they go off, investigate before the kitchen is structural ash. + +--- + +## 22. Migration Strategy + +### 22.1 Recommended order + +```text +1. Route inventory +2. Controller classification +3. Response envelope standard +4. Exception handler standard +5. FormRequest standard +6. Resource standard +7. Finance controller cleanup +8. Attendance/scanner controller cleanup +9. Student lifecycle controller cleanup +10. Communication controller cleanup +11. Reporting controller cleanup +12. Islamic Sunday School extension controller cleanup +13. OpenAPI docs +14. Static/architecture tests +15. Deprecation cleanup +``` + +Why this order: + +```text +- inventory prevents blind refactor +- classification prevents duplicate chaos +- response/exception standards stabilize API contract +- high-risk module controllers are cleaned before cosmetic ones +- documentation follows actual route decisions +- architecture tests prevent regression +``` + +--- + +## 23. First Implementation Slice: Route Inventory + +### Objective + +Create a complete inventory of active API routes. + +### Tasks + +```text +API-001. Generate route list from framework. +API-002. Parse method, URI, controller, action, middleware. +API-003. Add manual fields: module, risk, canonical status. +API-004. Identify duplicate controller/action mappings. +API-005. Export inventory to JSON and Markdown. +``` + +### Required tests/checks + +```text +- inventory generation succeeds in CI +- every route has controller/action +- every route has module classification +- every mutation route has auth middleware or documented exception +``` + +### Done when + +```text +- route inventory exists +- unknown routes are visible +- duplicate routes/controllers are listed +``` + +--- + +## 24. Second Implementation Slice: Controller Classification + +### Objective + +Mark every controller as canonical, adapter, deprecated, remove, or extension. + +### Tasks + +```text +API-006. Create controller classification document. +API-007. Add docblocks or config map for classification. +API-008. Identify canonical controller per module. +API-009. Identify adapter/deprecated duplicates. +API-010. Create removal tickets for unused controllers. +``` + +### Required checks + +```text +- every controller is classified +- every duplicate has canonical target +- no route points to remove candidate +``` + +### Done when + +```text +- controller ownership is explicit +- duplicate cleanup has a queue +``` + +--- + +## 25. Third Implementation Slice: Response and Exception Standard + +### Objective + +Standardize API success/error responses. + +### Tasks + +```text +API-011. Create ApiResponse helper or base resource response. +API-012. Update exception handler mapping. +API-013. Add validation error envelope. +API-014. Add authorization error envelope. +API-015. Add not-found/conflict envelope. +API-016. Add response snapshot tests. +``` + +### Required tests + +```text +- validation error returns 422 envelope +- unauthorized returns 403 envelope +- not found returns 404 envelope +- conflict returns 409 envelope +- success response uses standard shape +``` + +### Done when + +```text +- new canonical endpoints use consistent envelope +- legacy exceptions are safely mapped +``` + +--- + +## 26. Fourth Implementation Slice: FormRequest and Resource Standard + +### Objective + +Force input/output boundaries. + +### Tasks + +```text +API-017. Create request/resource naming standard. +API-018. Add DTO conversion convention. +API-019. Replace manual validation in high-risk controllers. +API-020. Add Resources for high-risk module responses. +API-021. Add architecture tests requiring FormRequest for mutations. +``` + +### Required tests + +```text +- mutable routes use FormRequest +- invalid input fails before service call +- resource hides sensitive fields without permission +``` + +### Done when + +```text +- finance, attendance, student, communication, and reporting mutations use FormRequests +- responses use Resources or standard response helper +``` + +--- + +## 27. Fifth Implementation Slice: Finance Controller Cleanup + +### Objective + +Make finance controllers thin and safe. + +### Tasks + +```text +API-022. Replace payment file filename route with payment-id route. +API-023. Update payment record/edit routes to use PaymentServiceContract. +API-024. Update refund/reversal routes to use RefundServiceContract. +API-025. Add finance Resources. +API-026. Add finance controller feature tests. +``` + +### Required tests + +```text +- payment file wrong-school access fails +- payment edit unauthorized fails +- payment file route uses payment ID +- controller does not calculate balance +``` + +### Done when + +```text +- finance controllers delegate only +- unsafe payment file route is deprecated or removed +``` + +--- + +## 28. Sixth Implementation Slice: Attendance Controller Cleanup + +### Objective + +Make scanner and attendance controllers thin. + +### Tasks + +```text +API-027. Update ScannerController to use ScannerServiceContract. +API-028. Move badge lookup out of controller. +API-029. Move late/status logic out of controller. +API-030. Update manual override routes to require reason. +API-031. Add ScanResultResource and AttendanceRecordResource. +``` + +### Required tests + +```text +- duplicate scan behavior preserved/fixed +- scanner controller has no domain private methods +- manual override requires reason +- wrong-school scan fails +``` + +### Done when + +```text +- scanner is HTTP adapter only +- attendance mutation belongs to services +``` + +--- + +## 29. Seventh Implementation Slice: Student Controller Cleanup + +### Objective + +Make student lifecycle controllers delegate to services. + +### Tasks + +```text +API-032. Update StudentController create/update to use StudentServiceContract. +API-033. Remove identifier generation from controller. +API-034. Update guardian routes to use GuardianServiceContract. +API-035. Update enrollment/assignment routes to use contracts. +API-036. Update promotion routes to use PromotionServiceContract. +API-037. Add student/guardian/enrollment Resources. +``` + +### Required tests + +```text +- no controller path uses max(id) + 1 +- student creation delegates to service +- wrong-school guardian link fails +- promotion unauthorized fails +``` + +### Done when + +```text +- student lifecycle is no longer controller-orchestrated +``` + +--- + +## 30. Eighth Implementation Slice: Communication Controller Cleanup + +### Objective + +Make communication controllers safe and preview-driven. + +### Tasks + +```text +API-038. Add recipient preview endpoint. +API-039. Update bulk send endpoint to require preview_id. +API-040. Remove direct send loops from controllers. +API-041. Move Mail/SMS/WhatsApp calls behind channels. +API-042. Add communication Resources. +``` + +### Required tests + +```text +- bulk send without preview fails +- controller does not call Mail directly +- wrong-school recipients excluded +- opt-outs enforced +``` + +### Done when + +```text +- communication controllers cannot fire blind bulk sends +``` + +--- + +## 31. Ninth Implementation Slice: Reporting Controller Cleanup + +### Objective + +Make reporting controllers consume reporting contracts. + +### Tasks + +```text +API-043. Add report list endpoint via ReportRegistryContract. +API-044. Add run report endpoint via ReportRunnerContract. +API-045. Add export endpoint via ReportExportServiceContract. +API-046. Add snapshot endpoint via ReportSnapshotServiceContract. +API-047. Add scheduled report endpoints through ScheduledReportServiceContract. +``` + +### Required tests + +```text +- view-only user cannot export +- Islamic reports hidden outside islamic_sunday_school profile +- export audit is written +- report controller does not build SQL +``` + +### Done when + +```text +- reporting controllers delegate only +``` + +--- + +## 32. Tenth Implementation Slice: Islamic Sunday School Extension Routes + +### Objective + +Make extension endpoints explicit and isolated. + +### Tasks + +```text +API-048. Create Islamic Sunday School route group. +API-049. Add ensure.domain.profile middleware. +API-050. Add extension FormRequests/Resources. +API-051. Move Qur'an/Arabic/halaqa/masjid-family endpoints under extension namespace. +API-052. Add extension route tests. +``` + +### Required tests + +```text +- extension route fails for non-islamic_sunday_school profile +- Qur'an profile fields require permission +- halaqa attendance uses extension controller/resource +- SchoolCore controllers do not import IslamicSundaySchool +``` + +### Done when + +```text +- Islamic Sunday School endpoints are explicitly extension-owned +``` + +--- + +## 33. Eleventh Implementation Slice: OpenAPI and Deprecation + +### Objective + +Document the cleaned API and migration path. + +### Tasks + +```text +API-053. Generate OpenAPI baseline. +API-054. Add operation IDs from route names. +API-055. Mark deprecated endpoints. +API-056. Add successor route links. +API-057. Create API changelog. +API-058. Add docs test to ensure route docs coverage. +``` + +### Required checks + +```text +- every canonical route appears in OpenAPI +- every deprecated route has replacement +- high-risk routes document permissions +``` + +### Done when + +```text +- API consumers can migrate without guessing +``` + +--- + +## 34. Twelfth Implementation Slice: Architecture Enforcement + +### Objective + +Prevent controller bloat from returning. + +### Tasks + +```text +API-059. Add controller architecture tests. +API-060. Add static analysis rules. +API-061. Add CI route inventory diff. +API-062. Add CI check for undocumented routes. +API-063. Add controller complexity/line threshold warnings. +``` + +### Required checks + +```text +- controller DB mutation rule enforced +- no provider SDK calls in controllers +- no SchoolCore -> IslamicSundaySchool imports +- mutation routes use FormRequests +- canonical routes use Resources/standard responses +``` + +### Done when + +```text +- bad controller patterns fail CI or produce review blockers +``` + +--- + +## 35. Database and Schema Requirements + +Phase 8 should avoid schema changes unless required for API support. + +Possible supporting tables: + +```text +api_route_inventory_snapshots +api_deprecation_notices +api_client_usage_logs, optional +``` + +More likely, store documentation artifacts in: + +```text +docs/ +storage/app/generated/ +``` + +Do not create database tables just to feel productive. Databases are not filing cabinets for indecision. + +--- + +## 36. Implementation Tickets + +## API-001: Generate route inventory + +### Description + +Generate complete API route inventory with controller/action/middleware/module classification. + +### Acceptance Criteria + +```text +- Inventory exists in JSON and Markdown. +- Every route has method, URI, controller, action, middleware. +- Mutation routes missing auth are flagged. +- Duplicate controller usage is listed. +``` + +--- + +## API-002: Classify controllers + +### Description + +Mark each controller as canonical, adapter, deprecated, remove, or extension. + +### Acceptance Criteria + +```text +- Every controller is classified. +- Every duplicate has canonical target. +- No active route points to remove candidate. +``` + +--- + +## API-003: Standardize API responses and exceptions + +### Description + +Create response envelope and exception mapping. + +### Acceptance Criteria + +```text +- Success, validation, auth, not-found, and conflict responses are standardized. +- Legacy compatibility exceptions documented. +- Snapshot tests exist. +``` + +--- + +## API-004: Enforce FormRequest and Resource standard + +### Description + +Require FormRequests and Resources for canonical endpoints. + +### Acceptance Criteria + +```text +- Mutable canonical endpoints use FormRequests. +- Domain data responses use Resources. +- Sensitive fields hidden unless authorized. +``` + +--- + +## API-005: Clean finance controllers + +### Description + +Move finance controllers to contract delegation and remove unsafe file/balance behavior. + +### Acceptance Criteria + +```text +- Payment file route uses payment ID. +- Payment mutations use finance contracts. +- Controllers do not calculate balances. +- Finance authorization tests pass. +``` + +--- + +## API-006: Clean attendance/scanner controllers + +### Description + +Move scanner and attendance controllers to contract delegation. + +### Acceptance Criteria + +```text +- ScannerController delegates to ScannerServiceContract. +- Badge lookup/status/idempotency outside controller. +- Manual override requires reason. +``` + +--- + +## API-007: Clean student lifecycle controllers + +### Description + +Move student, guardian, enrollment, assignment, and promotion controllers to contracts. + +### Acceptance Criteria + +```text +- No controller generates student identifiers. +- Student creation delegates to StudentServiceContract. +- Guardian/enrollment/promotion routes use contracts. +``` + +--- + +## API-008: Clean communication controllers + +### Description + +Move communication controllers to preview-driven communication contracts. + +### Acceptance Criteria + +```text +- Bulk send requires preview_id. +- Controllers do not call Mail/SMS/WhatsApp providers. +- Recipient dedupe/preferences enforced. +``` + +--- + +## API-009: Clean reporting controllers + +### Description + +Move reporting controllers to report contracts. + +### Acceptance Criteria + +```text +- Report list uses registry. +- Report run uses runner. +- Export uses export service. +- No report SQL in controller. +``` + +--- + +## API-010: Add Islamic Sunday School extension routes + +### Description + +Create explicit extension route group and controllers. + +### Acceptance Criteria + +```text +- Extension routes require islamic_sunday_school profile. +- Extension controllers use IslamicSundaySchool contracts. +- SchoolCore controllers do not import extension classes. +``` + +--- + +## API-011: Generate OpenAPI documentation + +### Description + +Generate or update OpenAPI docs from cleaned route inventory. + +### Acceptance Criteria + +```text +- Canonical routes documented. +- Deprecated routes marked. +- Permissions documented. +- Request/response schemas documented. +``` + +--- + +## API-012: Add controller architecture tests + +### Description + +Enforce controller boundary rules in CI. + +### Acceptance Criteria + +```text +- Controllers cannot perform domain DB mutations. +- Controllers cannot call provider SDKs. +- Mutation routes require FormRequests. +- Canonical routes use Resources/standard response. +- CI fails on boundary violation. +``` + +--- + +## 37. Definition of Done for Phase 8 + +Phase 8 is done when: + +```text +- Complete route inventory exists. +- Every controller is classified. +- Duplicate controllers have canonical targets or removal tickets. +- API response envelope is standardized for canonical endpoints. +- Exception handling is centralized. +- Mutable canonical endpoints use FormRequests. +- Domain data responses use Resources. +- Finance controllers delegate to finance contracts. +- Scanner/attendance controllers delegate to attendance contracts. +- Student lifecycle controllers delegate to student contracts. +- Communication controllers require preview for bulk sends. +- Reporting controllers delegate to reporting contracts. +- Islamic Sunday School extension routes are explicit and profile-gated. +- OpenAPI docs cover canonical routes. +- Deprecated routes have replacement paths and removal targets. +- Controller architecture tests exist. +- Legacy controller methods are labeled canonical, adapter, deprecated, or remove. +``` + +--- + +## 38. Non-Goals + +Do not include in Phase 8: + +```text +- full frontend migration +- complete API v2 rewrite unless required +- new business features +- new reporting calculations +- payment gateway implementation +- scanner hardware integration +- full permissions redesign +- public developer portal +``` + +Phase 8 is about making the HTTP layer boring. Boring APIs are underrated. Exciting APIs usually mean someone is debugging production at night. + +--- + +## 39. Main Risks + +### Risk: breaking existing clients + +Mitigation: + +```text +- v1 adapters +- response snapshot tests +- deprecation headers +- OpenAPI changelog +``` + +### Risk: controller logic moves sideways, not downward + +Mitigation: + +```text +- architecture tests +- contract delegation checks +- controller size thresholds +``` + +### Risk: duplicate controllers remain active + +Mitigation: + +```text +- route inventory +- controller classification +- canonical target mapping +``` + +### Risk: authorization gaps + +Mitigation: + +```text +- route authorization matrix +- negative tests +- school context middleware +``` + +### Risk: Islamic Sunday School concepts leak into core routes + +Mitigation: + +```text +- extension route group +- domain profile middleware +- import boundary tests +``` + +### Risk: documentation lies + +Mitigation: + +```text +- docs generated from route inventory +- docs coverage check +- deprecated route metadata +``` + +--- + +## 40. Immediate Next Work Queue + +Start here: + +```text +1. API-001 Generate route inventory +2. API-002 Classify controllers +3. API-003 Standardize API responses and exceptions +4. API-004 Enforce FormRequest and Resource standard +5. API-005 Clean finance controllers +6. API-006 Clean attendance/scanner controllers +7. API-007 Clean student lifecycle controllers +8. API-008 Clean communication controllers +9. API-009 Clean reporting controllers +10. API-010 Add Islamic Sunday School extension routes +11. API-011 Generate OpenAPI documentation +12. API-012 Add controller architecture tests +``` + +Do not begin by renaming files into prettier folders. Start with the route inventory. The routes are the actual public contract. Everything else is backstage clutter wearing a namespace. diff --git a/docs/modular_plans/phase_9_boundary_enforcement_execution_plan_islamic.md b/docs/modular_plans/phase_9_boundary_enforcement_execution_plan_islamic.md new file mode 100644 index 00000000..52aecb93 --- /dev/null +++ b/docs/modular_plans/phase_9_boundary_enforcement_execution_plan_islamic.md @@ -0,0 +1,1602 @@ +# Phase 9 Execution Plan: Boundary Enforcement and Modular Governance + +## 1. Purpose + +Phase 9 makes the modular architecture enforceable. + +By this point, the project has plans for: + +```text +Phase 1: SchoolContext +Phase 2: Core contracts +Phase 3: Finance +Phase 4: Attendance +Phase 5: Student lifecycle +Phase 6: Communication +Phase 7: Reporting +Phase 8: Controller/API cleanup +``` + +Phase 9 exists because architecture that is not enforced is just a poster. A very pretty poster, probably next to a codebase cheerfully importing whatever it wants. + +The goal is to prevent regression into: + +```text +SchoolCore importing IslamicSundaySchool +controllers doing business logic +services reading Request/auth directly +finance calculations duplicated in reports +attendance scans double-counting +communication sends bypassing preview +student identifiers generated unsafely +extension concepts leaking into global contracts +``` + +This phase adds architecture tests, static analysis rules, CI checks, module ownership, dependency maps, deprecation enforcement, documentation checks, and review gates. + +--- + +## 2. Core Rule + +The architecture must be mechanically enforced. + +Humans reviewing pull requests are useful, but tired humans miss things. CI should catch forbidden dependencies and unsafe patterns before they enter the main branch. + +Core boundary: + +```text +App\Domain\IslamicSundaySchool + ↓ may depend on +App\Domain\SchoolCore + ↓ may depend on +App\Domain\SchoolCore\Shared +``` + +Forbidden: + +```text +App\Domain\SchoolCore -> App\Domain\IslamicSundaySchool +App\Domain\SchoolCore -> Http\Request +App\Domain\SchoolCore -> controllers +App\Domain\SchoolCore -> auth() +App\Domain\SchoolCore -> request() +App\Domain\SchoolCore -> tenant-specific vocabulary +``` + +--- + +## 3. Boundary Enforcement Layers + +Use multiple layers. One check will miss things. Software is sneaky, mostly because humans write it. + +Required enforcement layers: + +```text +1. Architecture tests +2. Static analysis +3. CI dependency checks +4. Route inventory diff +5. Controller complexity checks +6. Forbidden vocabulary checks +7. Module ownership review +8. Deprecation tracking +9. Documentation coverage checks +10. Release readiness gates +``` + +--- + +## 4. Target Tooling + +Recommended Laravel/PHP-compatible tooling: + +```text +PHPUnit or Pest for architecture tests +PHPStan or Psalm for static analysis +Laravel Pint or PHP-CS-Fixer for formatting +Rector for automated refactors, optional +Composer scripts for local checks +GitHub Actions/GitLab CI for pipeline enforcement +OpenAPI validation tool +Custom PHP scripts for route/controller/module scans +``` + +Do not rely on one magic tool. That is how teams discover “coverage” covered everything except the bug. + +--- + +## 5. Architecture Test Categories + +Create an architecture test suite: + +```text +tests/Architecture/ + ModuleBoundaryTest.php + ControllerBoundaryTest.php + ServiceBoundaryTest.php + FinanceBoundaryTest.php + AttendanceBoundaryTest.php + StudentBoundaryTest.php + CommunicationBoundaryTest.php + ReportingBoundaryTest.php + IslamicSundaySchoolBoundaryTest.php + RouteInventoryTest.php + DeprecationPolicyTest.php +``` + +These tests should run in CI on every pull request. + +--- + +## 6. Module Boundary Rules + +### 6.1 SchoolCore must not depend on IslamicSundaySchool + +Rule: + +```text +No file under app/Domain/SchoolCore may import or reference: +App\Domain\IslamicSundaySchool +``` + +Test: + +```php +public function test_school_core_does_not_depend_on_islamic_sunday_school(): void +{ + $this->assertNamespaceDoesNotReference( + base_path('app/Domain/SchoolCore'), + 'App\\Domain\\IslamicSundaySchool' + ); +} +``` + +### 6.2 IslamicSundaySchool may depend on SchoolCore + +Allowed: + +```text +IslamicSundaySchool -> SchoolCore contracts +IslamicSundaySchool -> Shared value objects +IslamicSundaySchool -> extension service providers +``` + +Forbidden: + +```text +IslamicSundaySchool -> SchoolCore concrete services when contract exists +IslamicSundaySchool -> direct mutation of core tables outside contracts +``` + +### 6.3 SchoolCore contracts must be neutral + +Forbidden vocabulary in `SchoolCore` contracts: + +```text +Islamic +Quran +Qur'an +ArabicLevel +Halaqa +Masjid +Imam +Sadaqah +Zakat +SundaySchool +IslamicSundaySchool +``` + +Allowed in Islamic extension only: + +```text +App\Domain\IslamicSundaySchool\* +``` + +Exception: + +```text +Documentation comments explaining forbidden examples may exist only in docs, not executable contracts. +``` + +--- + +## 7. Controller Boundary Rules + +Controllers must be HTTP adapters. + +Forbidden in canonical controllers: + +```text +DB::table +Model::query()->update for domain mutation +Validator::make +Mail:: +Notification::send directly +SMS provider calls +WhatsApp provider calls +response()->download for finance files +Student::max('id') +Invoice balance calculation +Attendance status calculation +Report SQL building +Recipient send loops +``` + +Allowed: + +```text +FormRequest +Resource +SchoolContext +domain contract injection +policy authorization +response helper +``` + +Architecture checks: + +```text +- mutation routes use FormRequest +- controllers do not call provider SDKs +- controllers do not perform domain DB writes +- controllers do not exceed size threshold without exception +- ScannerController has no domain private methods +``` + +Suggested thresholds: + +```text +controller class max 250 lines +controller action max 40 lines +private methods in controllers discouraged +``` + +Threshold violations should warn first, then fail after migration deadline. + +--- + +## 8. Service Boundary Rules + +Domain services must not read HTTP/global state directly. + +Forbidden in `App\Domain\SchoolCore` and `App\Domain\IslamicSundaySchool` services: + +```text +request() +auth() +session() +$_GET +$_POST +$_SERVER +Illuminate\Http\Request +``` + +Allowed: + +```text +SchoolContext +DTOs +Contracts +Repositories +Policies +Domain exceptions +``` + +Reason: + +```text +Services should be callable from controllers, jobs, CLI commands, scheduled tasks, and tests. +``` + +If a service requires HTTP state, it is not a domain service. It is a controller wearing a fake badge. + +--- + +## 9. SchoolContext Enforcement + +Every modular service method must accept `SchoolContext` or receive it through a clearly defined application-layer context object. + +Required checks: + +```text +Finance services require SchoolContext +Attendance services require SchoolContext +Student services require SchoolContext +Communication services require SchoolContext +Reporting services require SchoolContext +IslamicSundaySchool extension services require SchoolContext +``` + +Forbidden: + +```text +Service resolving school_id from auth()->user() +Service reading school_id from request() +Service querying without school_id scope +``` + +Architecture test examples: + +```text +- public methods in SchoolCore\Services must include SchoolContext parameter unless explicitly exempted +- repositories must have school-scoped query methods +- report read models must require SchoolContext +``` + +--- + +## 10. Finance Enforcement Rules + +Finance is high-risk. The rules should be strict. + +Forbidden: + +```text +float casts in SchoolCore\Finance +payment file download by filename only +invoice balance calculation outside BalanceCalculator/read model +payment mutation outside PaymentServiceContract +refund mutation outside RefundServiceContract +finance file access outside FinanceFileServiceContract +silent payment deletion +finance mutation without audit log +finance mutation without transaction +``` + +Required checks: + +```text +- no `(float)` in finance module +- no `floatval()` in finance module +- no `response()->download()` in finance controllers for payment files +- payment routes use payment ID for files +- payment edit path uses transaction/lock +- finance reports do not calculate balances directly +``` + +Suggested static scan patterns: + +```text +app/Domain/SchoolCore/Finance contains "(float)" +app/Domain/SchoolCore/Finance contains "floatval(" +app/Http/Controllers contains "serveCheckFile($filename" +app/Http/Controllers contains "response()->download" near payment +``` + +--- + +## 11. Attendance Enforcement Rules + +Forbidden: + +```text +attendance mutation in controllers +badge lookup in controllers +late/present status calculation in controllers +scanner duplicate detection outside ScannerService/Idempotency service +raw scan log counting as attendance result in reports +manual override without reason +``` + +Required checks: + +```text +- ScannerController delegates to ScannerServiceContract +- StudentAttendanceService/StaffAttendanceService own mutation +- AttendanceStatusPolicyContract owns status rules +- AttendanceSessionResolverContract owns session resolution +- duplicate scan tests exist +``` + +Forbidden vocabulary in core attendance contracts: + +```text +halaqa +masjid +Quran +Islamic studies +``` + +Those belong in `IslamicSundaySchool\Attendance`. + +--- + +## 12. Student Lifecycle Enforcement Rules + +Forbidden: + +```text +max(id) + 1 student identifier generation +student identifier generation in controller +guardian link mutation outside GuardianService +enrollment mutation outside EnrollmentService +assignment mutation outside AssignmentService +promotion logic outside PromotionService/PromotionPolicy +Islamic-specific fields in core Student model/service contracts +``` + +Required checks: + +```text +- no `max('id')` near student creation +- unique student identifier constraint exists +- StudentServiceContract owns student creation +- status transitions use lifecycle state machine +- Islamic profile lives in extension namespace/table +``` + +Forbidden vocabulary in SchoolCore student contracts/models: + +```text +quran_level +arabic_level +halaqa +masjid_family +imam_note +sadaqah +zakat +``` + +Allowed in Islamic extension. + +--- + +## 13. Communication Enforcement Rules + +Forbidden: + +```text +bulk send without preview +recipient loops in controllers +Mail:: in controllers +SMS/WhatsApp provider SDK calls outside channel adapters +recipient query logic in controllers +send without idempotency for canonical endpoint +preference bypass without audit +``` + +Required checks: + +```text +- bulk send route requires preview_id +- CommunicationServiceContract owns send orchestration +- RecipientPreviewServiceContract owns preview +- RecipientResolverContract owns audience resolution +- channel adapters isolate providers +- delivery attempts logged +``` + +Islamic extension communication resolvers may exist only under: + +```text +App\Domain\IslamicSundaySchool\Communication +``` + +--- + +## 14. Reporting Enforcement Rules + +Forbidden: + +```text +report SQL in controllers +finance balance calculation in reports +attendance duplicate scan counting in reports +export without audit +scheduled report without recipient authorization +cache key without school_id and permission scope +Islamic report classes registered from SchoolCore provider +``` + +Required checks: + +```text +- ReportRunnerContract owns report execution +- ReportExportServiceContract owns export +- reports use read models +- exports log audit event +- Islamic reports register through IslamicSundaySchool provider +``` + +Reporting must not become a second implementation of the app. It is a mirror, not an alternate universe. + +--- + +## 15. Islamic Sunday School Extension Enforcement + +The extension must remain isolated. + +Allowed extension concepts: + +```text +Qur'an level +Arabic level +Islamic studies track +halaqa/group +masjid family/community profile +volunteer/program team +imam/admin sensitive notes +Sunday program session +sadaqah/zakat-supported scholarship classification, if applicable +``` + +Allowed locations: + +```text +app/Domain/IslamicSundaySchool +app/Http/Controllers/Api/IslamicSundaySchool +app/Http/Resources/IslamicSundaySchool +app/Http/Requests/IslamicSundaySchool +database migrations for extension tables +docs/islamic-sunday-school +``` + +Forbidden locations: + +```text +app/Domain/SchoolCore contracts +app/Domain/SchoolCore services +core controller routes +core Resources always returned for every school +core database fields unless neutralized as generic metadata/profile extension +``` + +Required checks: + +```text +- Islamic extension routes require islamic_sunday_school domain profile +- Islamic extension providers register extension policies/resolvers/reports +- SchoolCore does not import IslamicSundaySchool +- extension sensitive fields require explicit permission +``` + +--- + +## 16. Route Inventory Enforcement + +The route inventory created in Phase 8 must become a CI artifact. + +Required route inventory fields: + +```text +method +uri +name +controller +action +middleware +module +canonical_status +permission +request_class +resource_class +domain_contract +risk_level +deprecated +replacement_route +``` + +CI checks: + +```text +- every new route appears in inventory +- every mutation route has auth/context middleware or documented exception +- every high-risk route has permission +- deprecated routes have replacement route +- extension routes have domain profile middleware +``` + +Recommended command: + +```bash +php artisan app:route-inventory --format=json > storage/app/generated/api-route-inventory.json +``` + +Compare diff in CI. + +--- + +## 17. Deprecation Enforcement + +Legacy methods/routes/classes must not linger forever, which is apparently shocking news to legacy code. + +Deprecation metadata required: + +```text +deprecated: true +replacement_route +replacement_class +sunset_date +owner +removal_ticket +compatibility_notes +``` + +Deprecation checks: + +```text +- deprecated route without replacement fails +- deprecated route past sunset date fails or warns loudly +- adapter controller with domain logic fails +- remove-candidate controller with active route fails +``` + +Deprecation header standard: + +```text +Deprecation: true +Sunset: 2027-01-01 +Link: ; rel="successor-version" +``` + +--- + +## 18. Module Ownership + +Each module must have an owner and review requirements. + +Suggested ownership map: + +```text +SchoolContext: Platform owner +Core Contracts: Platform owner +Finance: Finance domain owner + platform reviewer +Attendance: Attendance domain owner + platform reviewer +Students: Student lifecycle owner + platform reviewer +Communication: Communication owner + platform reviewer +Reporting: Reporting owner + data/security reviewer +IslamicSundaySchool: Islamic Sunday School domain owner + platform reviewer +API/Controllers: API owner + module owner +Security/Auth: Security owner +``` + +Every pull request touching a module should require review from: + +```text +module owner +platform owner if boundary changed +security owner if permissions/sensitive data changed +finance owner if money changed +data/reporting owner if exports changed +``` + +--- + +## 19. Pull Request Checklist + +Every PR must answer: + +```text +Does this change touch SchoolCore? +Does this change touch IslamicSundaySchool? +Does this introduce a new route? +Does this introduce a new dependency direction? +Does this add a new report/export? +Does this mutate finance, attendance, student lifecycle, communication, or permissions? +Does this expose sensitive data? +Does this require SchoolContext? +Does this need an architecture test update? +Does this deprecate or replace anything? +``` + +Required PR checklist: + +```md +- [ ] SchoolContext is used where required. +- [ ] No SchoolCore dependency on IslamicSundaySchool. +- [ ] Controllers remain thin. +- [ ] FormRequest validates input. +- [ ] Resource controls output. +- [ ] Authorization is tested. +- [ ] Wrong-school access is tested. +- [ ] Sensitive fields are protected. +- [ ] New route appears in route inventory. +- [ ] New report/export is audited. +- [ ] Module owner reviewed. +``` + +--- + +## 20. CI Pipeline + +Recommended CI stages: + +```text +1. composer validate +2. install dependencies +3. lint/format check +4. static analysis +5. unit tests +6. feature tests +7. architecture tests +8. route inventory check +9. OpenAPI/docs coverage check +10. migration check +11. security-sensitive pattern scan +``` + +Example composer scripts: + +```json +{ + "scripts": { + "test": "php artisan test", + "test:architecture": "php artisan test tests/Architecture", + "analyse": "phpstan analyse", + "route:inventory": "php artisan app:route-inventory --format=json", + "openapi:validate": "php artisan app:openapi-validate", + "architecture:scan": "php artisan app:architecture-scan" + } +} +``` + +--- + +## 21. Static Pattern Scanner + +Create a custom scanner for project-specific rules. + +Command: + +```bash +php artisan app:architecture-scan +``` + +Scanner should detect: + +```text +forbidden imports +forbidden function calls +forbidden vocabulary in core +controller DB mutations +provider SDK calls in controllers +finance float usage +bulk send without preview +report export without audit +extension route missing domain middleware +``` + +Output format: + +```text +file +line +rule_id +severity +message +suggested_fix +``` + +Severity levels: + +```text +error +warning +info +``` + +--- + +## 22. Architecture Rule IDs + +Use stable rule IDs so violations are searchable. + +Suggested rule IDs: + +```text +ARCH-001 SchoolCore must not import IslamicSundaySchool +ARCH-002 Domain services must not use Request/auth/request() +ARCH-003 Controllers must not perform domain DB mutation +ARCH-004 Controllers must not call external providers directly +ARCH-005 Core contracts must not contain extension vocabulary +CTX-001 Modular service methods must require SchoolContext +FIN-001 Finance module must not use float math +FIN-002 Payment files must not be served by filename-only route +FIN-003 Finance mutation must be transactional/audited +ATT-001 Scanner writes must go through ScannerService +ATT-002 Attendance status must go through policy +ATT-003 Duplicate scans must use idempotency +STU-001 Student identifier must not use max(id)+1 +STU-002 Student lifecycle mutations must use services +COM-001 Bulk sends must require preview +COM-002 Provider SDK calls must stay in channel adapters +REP-001 Report exports must be audited +REP-002 Reports must use read models/domain truth +API-001 Mutation routes must use FormRequest +API-002 Canonical responses must use Resource/response helper +EXT-001 Islamic extension routes require domain profile middleware +DEP-001 Deprecated routes require replacement and sunset +``` + +--- + +## 23. Documentation Enforcement + +Documentation must stay connected to code. + +Required docs: + +```text +docs/architecture/module-boundaries.md +docs/architecture/dependency-map.md +docs/api/api-route-inventory.md +docs/api/openapi.yaml or openapi.json +docs/deprecations.md +docs/modules/finance.md +docs/modules/attendance.md +docs/modules/students.md +docs/modules/communication.md +docs/modules/reporting.md +docs/modules/islamic-sunday-school.md +``` + +Docs checks: + +```text +- every canonical route appears in OpenAPI +- every deprecated route appears in docs/deprecations.md +- every module has owner listed +- every extension report/route documents required domain profile +``` + +Docs are not sacred scrolls. They are executable expectations where possible. Otherwise they become fiction with headings. + +--- + +## 24. Dependency Map + +Generate a module dependency map. + +Suggested output: + +```text +docs/architecture/dependency-map.md +storage/app/generated/dependency-map.json +``` + +Required sections: + +```text +SchoolCore modules +IslamicSundaySchool modules +HTTP controllers +Providers +Contracts +Forbidden dependency violations +``` + +Example acceptable graph: + +```text +Http\Controllers\Api\Finance + -> SchoolCore\Finance\Contracts + +IslamicSundaySchool\Reporting + -> SchoolCore\Reporting\Contracts + -> SchoolCore\Students\Contracts + -> SchoolCore\Attendance\Contracts +``` + +Unacceptable graph: + +```text +SchoolCore\Students + -> IslamicSundaySchool\Students +``` + +--- + +## 25. Release Gates + +Before each release, require: + +```text +architecture tests passing +route inventory updated +OpenAPI updated +deprecation list updated +no critical scanner violations +no high-risk route without permission +no finance mutation without tests +no report export without audit +no bulk send without preview +no extension route missing domain profile +``` + +Release checklist: + +```md +- [ ] Architecture tests pass. +- [ ] Static analysis passes. +- [ ] Route inventory diff reviewed. +- [ ] OpenAPI updated. +- [ ] Deprecated endpoints documented. +- [ ] Security-sensitive changes reviewed. +- [ ] Cross-school access tests pass. +- [ ] Extension boundary tests pass. +``` + +--- + +## 26. Migration Strategy + +### 26.1 Start in warning mode + +Initial rollout should produce warnings for some rules, because the existing app may violate them. + +Recommended modes: + +```text +Phase 9A: Scan-only mode +Phase 9B: Warning mode in CI +Phase 9C: Error mode for new/changed files +Phase 9D: Error mode globally +``` + +Do not instantly fail the whole project if legacy code already violates everything. That produces noise, rebellion, and creative disabling of CI. Humans are predictable like that. + +### 26.2 New code must be clean + +Even while legacy violations exist: + +```text +new files must satisfy all rules +changed files must not introduce new violations +high-risk modules must fail immediately on critical rules +``` + +Critical rules fail immediately: + +```text +SchoolCore importing IslamicSundaySchool +bulk send without preview +payment file filename route +student max(id)+1 identifier generation +controller calling payment provider/SMS/WhatsApp directly +report export without authorization/audit +wrong-school access test missing for high-risk route +``` + +--- + +## 27. First Implementation Slice: Architecture Test Scaffold + +### Objective + +Create architecture test infrastructure. + +### Tasks + +```text +GOV-001. Create tests/Architecture directory. +GOV-002. Add helper to scan PHP files for imports/references. +GOV-003. Add ModuleBoundaryTest. +GOV-004. Add ControllerBoundaryTest. +GOV-005. Add initial CI job for architecture tests. +``` + +### Required tests + +```text +- SchoolCore does not import IslamicSundaySchool +- domain services do not import Request +- controllers do not call provider SDKs +``` + +### Done when + +```text +- architecture tests run in CI +- violations produce readable messages +``` + +--- + +## 28. Second Implementation Slice: Static Pattern Scanner + +### Objective + +Create custom scanner for project-specific architectural rules. + +### Tasks + +```text +GOV-006. Create artisan command app:architecture-scan. +GOV-007. Add rule registry. +GOV-008. Add file scanner. +GOV-009. Add JSON and console output. +GOV-010. Add CI integration in warning mode. +``` + +### Required checks + +```text +- detects forbidden imports +- detects forbidden vocabulary in SchoolCore +- detects controller DB/provider calls +- detects finance float usage +``` + +### Done when + +```text +- scanner can run locally and in CI +- warnings are actionable +``` + +--- + +## 29. Third Implementation Slice: SchoolContext Rule Enforcement + +### Objective + +Ensure modular services require context. + +### Tasks + +```text +GOV-011. Add CTX-001 rule. +GOV-012. Scan public service methods. +GOV-013. Add allowed exemption list. +GOV-014. Fail new services without SchoolContext. +``` + +### Required tests/checks + +```text +- Finance service method without context is flagged +- Attendance service method without context is flagged +- Reporting read model without context is flagged +``` + +### Done when + +```text +- new modular services cannot ignore SchoolContext +``` + +--- + +## 30. Fourth Implementation Slice: Route Inventory CI + +### Objective + +Make route inventory a controlled artifact. + +### Tasks + +```text +GOV-015. Add route inventory command if not already present. +GOV-016. Store baseline inventory. +GOV-017. Add CI diff check. +GOV-018. Require metadata for new routes. +GOV-019. Flag mutation routes without auth/context. +``` + +### Required checks + +```text +- new route without module fails +- new mutation route without auth fails +- extension route without domain profile middleware fails +``` + +### Done when + +```text +- route changes are reviewed intentionally +``` + +--- + +## 31. Fifth Implementation Slice: Module Ownership and PR Checks + +### Objective + +Create human governance that complements CI. + +### Tasks + +```text +GOV-020. Create module ownership file. +GOV-021. Add PR checklist template. +GOV-022. Add CODEOWNERS entries. +GOV-023. Define high-risk review requirements. +``` + +Suggested file: + +```text +.github/CODEOWNERS +docs/architecture/module-ownership.md +.github/pull_request_template.md +``` + +### Required checks + +```text +- finance changes request finance owner +- extension changes request Islamic Sunday School owner +- security-sensitive changes request security owner +``` + +### Done when + +```text +- ownership is explicit +- PRs include architecture questions +``` + +--- + +## 32. Sixth Implementation Slice: Deprecation Enforcement + +### Objective + +Prevent legacy adapters from becoming permanent architecture furniture. + +### Tasks + +```text +GOV-024. Create docs/deprecations.md. +GOV-025. Add deprecation metadata schema. +GOV-026. Add deprecation scan. +GOV-027. Add CI warning for expired sunset dates. +GOV-028. Add route response deprecation headers for deprecated routes. +``` + +### Required checks + +```text +- deprecated route has replacement +- deprecated route has sunset date +- remove-candidate route is not active +``` + +### Done when + +```text +- deprecation is visible and time-bound +``` + +--- + +## 33. Seventh Implementation Slice: Documentation Coverage + +### Objective + +Keep docs aligned with routes/modules. + +### Tasks + +```text +GOV-029. Add OpenAPI coverage check. +GOV-030. Add module docs coverage check. +GOV-031. Add route-to-doc mapping check. +GOV-032. Add docs generation step to CI. +``` + +### Required checks + +```text +- every canonical route is documented +- every module has owner docs +- every extension route documents domain profile +``` + +### Done when + +```text +- docs cannot drift silently from API behavior +``` + +--- + +## 34. Eighth Implementation Slice: Release Gate + +### Objective + +Create release readiness checklist and automated gate. + +### Tasks + +```text +GOV-033. Create release checklist. +GOV-034. Add release CI workflow. +GOV-035. Add high-risk violation summary. +GOV-036. Require route inventory and OpenAPI artifacts. +``` + +### Required checks + +```text +- architecture tests pass +- static analysis passes +- no critical architecture scan violations +- route inventory current +- OpenAPI current +``` + +### Done when + +```text +- release cannot ignore boundary violations +``` + +--- + +## 35. Implementation Tickets + +## GOV-001: Create architecture test scaffold + +### Description + +Create architecture test directory, helpers, and initial boundary tests. + +### Acceptance Criteria + +```text +- tests/Architecture exists. +- ModuleBoundaryTest exists. +- ControllerBoundaryTest exists. +- CI runs architecture tests. +``` + +--- + +## GOV-002: Enforce SchoolCore to IslamicSundaySchool dependency rule + +### Description + +Add rule preventing SchoolCore from importing IslamicSundaySchool. + +### Acceptance Criteria + +```text +- SchoolCore import violation fails test. +- IslamicSundaySchool may import SchoolCore contracts. +- Error message includes file path and import. +``` + +--- + +## GOV-003: Enforce domain service HTTP isolation + +### Description + +Prevent domain services from using Request/auth/request/session directly. + +### Acceptance Criteria + +```text +- Request imports in domain services fail. +- auth() in domain services fails. +- request() in domain services fails. +- Exemptions require explicit allowlist entry. +``` + +--- + +## GOV-004: Enforce controller boundary rules + +### Description + +Prevent controllers from performing domain mutations or calling external providers directly. + +### Acceptance Criteria + +```text +- DB mutation in controller is flagged. +- Mail/SMS/WhatsApp provider call in controller is flagged. +- payment file response()->download in controller is flagged unless allowlisted. +``` + +--- + +## GOV-005: Enforce SchoolContext usage + +### Description + +Add static/architecture checks requiring context in modular services. + +### Acceptance Criteria + +```text +- Finance/Attendance/Students/Communication/Reporting service methods without SchoolContext are flagged. +- Allowed exemptions are documented. +``` + +--- + +## GOV-006: Add finance boundary rules + +### Description + +Add finance-specific architecture/static checks. + +### Acceptance Criteria + +```text +- Float usage in finance is flagged. +- Filename-only payment file routes are flagged. +- Balance calculation outside allowed services is flagged where detectable. +``` + +--- + +## GOV-007: Add attendance boundary rules + +### Description + +Add attendance/scanner-specific checks. + +### Acceptance Criteria + +```text +- Scanner controller domain logic is flagged. +- Attendance mutation in controller is flagged. +- Manual override route without reason validation is flagged where detectable. +``` + +--- + +## GOV-008: Add student lifecycle boundary rules + +### Description + +Add student lifecycle-specific checks. + +### Acceptance Criteria + +```text +- max(id)+1 student identifier generation is flagged. +- Controller identifier generation is flagged. +- Core student vocabulary leak is flagged. +``` + +--- + +## GOV-009: Add communication boundary rules + +### Description + +Add communication-specific checks. + +### Acceptance Criteria + +```text +- Bulk send without preview_id is flagged where detectable. +- Provider SDK calls outside channel adapters are flagged. +- Recipient loops in controllers are flagged. +``` + +--- + +## GOV-010: Add reporting boundary rules + +### Description + +Add reporting-specific checks. + +### Acceptance Criteria + +```text +- Report export without audit path is flagged where detectable. +- Report SQL in controller is flagged. +- Islamic reports registered from SchoolCore provider are flagged. +``` + +--- + +## GOV-011: Add route inventory CI check + +### Description + +Ensure routes are inventoried and reviewed. + +### Acceptance Criteria + +```text +- Route inventory generated in CI. +- New route without metadata fails or warns based on rollout mode. +- Extension route without domain middleware fails. +``` + +--- + +## GOV-012: Add module ownership and PR checklist + +### Description + +Create CODEOWNERS, module ownership doc, and pull request template. + +### Acceptance Criteria + +```text +- Module ownership document exists. +- CODEOWNERS maps high-risk modules. +- PR template includes boundary questions. +``` + +--- + +## GOV-013: Add deprecation enforcement + +### Description + +Track and enforce deprecated routes/controllers/classes. + +### Acceptance Criteria + +```text +- Deprecated route requires replacement. +- Deprecated route requires sunset date. +- Expired deprecations produce CI warning/failure. +``` + +--- + +## GOV-014: Add documentation coverage checks + +### Description + +Ensure API and module docs stay current. + +### Acceptance Criteria + +```text +- Canonical routes must appear in OpenAPI. +- Deprecated routes must appear in deprecation docs. +- Extension routes must document domain profile requirement. +``` + +--- + +## GOV-015: Add release gate workflow + +### Description + +Create release gate workflow with architecture, route, docs, and static checks. + +### Acceptance Criteria + +```text +- Release workflow runs architecture tests. +- Release workflow checks route inventory. +- Release workflow checks OpenAPI. +- Critical violations block release. +``` + +--- + +## 36. Definition of Done for Phase 9 + +Phase 9 is done when: + +```text +- Architecture test scaffold exists. +- SchoolCore cannot import IslamicSundaySchool. +- Domain services cannot use Request/auth/request directly. +- Controllers cannot perform forbidden domain/provider behavior without failing checks. +- Modular services require SchoolContext or documented exemption. +- Finance boundary rules exist. +- Attendance boundary rules exist. +- Student lifecycle boundary rules exist. +- Communication boundary rules exist. +- Reporting boundary rules exist. +- Islamic Sunday School extension boundary rules exist. +- Route inventory is checked in CI. +- Module ownership is documented. +- PR checklist exists. +- Deprecation enforcement exists. +- Documentation coverage checks exist. +- Release gate exists. +- Critical violations fail CI. +``` + +--- + +## 37. Non-Goals + +Do not include in Phase 9: + +```text +- rewriting all legacy code immediately +- replacing the entire framework +- building a full internal developer portal +- enforcing perfect architecture on untouched legacy files on day one +- moving every module into separate Composer packages immediately +- adding Kubernetes because someone got bored +``` + +Phase 9 is about enforceable boundaries and governance. Not architecture cosplay with extra YAML. + +--- + +## 38. Main Risks + +### Risk: too many legacy violations create noise + +Mitigation: + +```text +- start in scan/warning mode +- fail only new/changed files initially +- immediately fail critical security/data rules +``` + +### Risk: developers bypass checks + +Mitigation: + +```text +- make violations readable +- provide suggested fixes +- document exemptions +- require owner approval for exemptions +``` + +### Risk: false positives + +Mitigation: + +```text +- allowlist with expiration +- rule IDs +- test scanner against known safe files +``` + +### Risk: boundary rules block urgent fixes + +Mitigation: + +```text +- emergency bypass process +- required follow-up cleanup ticket +- security owner approval +``` + +### Risk: architecture docs drift again + +Mitigation: + +```text +- docs generated from route/dependency inventory where possible +- docs coverage CI +``` + +### Risk: Islamic extension becomes coupled to core internals + +Mitigation: + +```text +- extension uses contracts +- import boundary tests +- provider binding review +``` + +--- + +## 39. Immediate Next Work Queue + +Start here: + +```text +1. GOV-001 Create architecture test scaffold +2. GOV-002 Enforce SchoolCore to IslamicSundaySchool dependency rule +3. GOV-003 Enforce domain service HTTP isolation +4. GOV-004 Enforce controller boundary rules +5. GOV-005 Enforce SchoolContext usage +6. GOV-011 Add route inventory CI check +7. GOV-012 Add module ownership and PR checklist +8. GOV-006 Add finance boundary rules +9. GOV-007 Add attendance boundary rules +10. GOV-008 Add student lifecycle boundary rules +11. GOV-009 Add communication boundary rules +12. GOV-010 Add reporting boundary rules +13. GOV-013 Add deprecation enforcement +14. GOV-014 Add documentation coverage checks +15. GOV-015 Add release gate workflow +``` + +Start with import boundaries and HTTP isolation. They are cheap to detect and stop architectural rot early. The rest can tighten progressively as legacy code is cleaned. diff --git a/docs/school_tuition_payment_management_plan.md b/docs/school_tuition_payment_management_plan.md new file mode 100644 index 00000000..78b392f4 --- /dev/null +++ b/docs/school_tuition_payment_management_plan.md @@ -0,0 +1,579 @@ +# School Tuition Payment Management Plan + +## 1. Purpose + +The school needs a clear tuition management system that calculates tuition, tracks payments, manages refunds, records remaining balances, and handles extra charges and event charges. + +The existing fee calculation logic should be preserved where valid, but it should be expanded and corrected so the system can handle complete student billing, not only basic tuition and refunds. + +## 2. Current Tuition Logic + +The current tuition service calculates tuition using three main fee categories: + +- First regular student fee +- Additional regular student fee +- Youth student fee + +Students are sorted by grade before tuition is calculated. + +### Grade Rules + +- Kindergarten is treated as grade level 0. +- Grades 1 through 9 are treated as regular students. +- Grades above 9 are treated as youth students. +- Grade “Y” is treated as youth. +- Unknown or malformed grades are treated as invalid or fallback grade level. + +### Tuition Fee Rules + +For students in grades K through 9: + +- The first regular student is charged the first student fee. +- Each additional regular student is charged the second student fee. + +For students above grade 9 or youth category: + +- Each youth student is charged the youth fee. + +### Tuition Formula + +```text +Total Tuition = Regular Student Fees + Youth Student Fees +``` + +Example: + +```text +First regular student fee: $350 +Second regular student fee: $200 +Youth fee: $180 +``` + +Family has: + +- Student 1 in Grade 2 +- Student 2 in Grade 5 +- Student 3 in Youth + +```text +Total Tuition = $350 + $200 + $180 = $730 +``` + +## 3. Required Tuition Calculation Improvements + +The tuition calculation should return a detailed breakdown, not only a single total. + +Each student billing record should include: + +- Student ID +- Student name +- Grade +- Grade level +- Enrollment status +- Admission status +- Fee category +- Tuition fee assigned +- Discount applied +- Extra charges +- Event charges +- Payments applied +- Refund amount, if any +- Remaining balance + +The system should generate both: + +1. Family-level total balance +2. Student-level billing breakdown + +This prevents confusion when a parent has multiple children enrolled. + +## 4. Tuition Calculation Process + +The system should calculate tuition using the following steps: + +1. Retrieve school year configuration. +2. Retrieve fee configuration: + - First student fee + - Second student fee + - Youth fee + - Refund deadline + - Weeks of study + - Last school day +3. Load all students connected to the parent or family account. +4. Fetch each student’s grade or class section name. +5. Normalize grade names. +6. Sort students by grade level. +7. Assign tuition fee to each eligible student. +8. Apply discounts or scholarships. +9. Add required fees. +10. Add extra charges. +11. Add event charges. +12. Subtract payments and credits. +13. Calculate remaining balance. + +## 5. Student Eligibility for Tuition + +Tuition should only be calculated for students who meet the billing criteria. + +### Billable Students + +A student should be billable if: + +- Enrollment status is enrolled or payment pending +- Admission status is accepted + +### Withdrawn Students + +A withdrawn student should not continue to receive new tuition charges unless the school policy requires partial tuition. + +Withdrawn statuses may include: + +- Withdrawn +- Refund pending +- Withdraw under review + +Withdrawn students should be included in refund calculations when applicable. + +## 6. Remaining Balance Calculation + +The system should calculate the remaining balance at the family level and student level. + +### Formula + +```text +Remaining Balance = Total Charges - Total Payments - Credits - Refunds Applied to Account +``` + +Where: + +```text +Total Charges = Tuition + Required Fees + Extra Charges + Event Charges + Late Fees +``` + +Credits may include: + +- Scholarships +- Discounts +- Financial aid +- Manual credits +- Canceled event credits +- Overpayment credits + +Example: + +```text +Tuition: $730 +Extra Charges: $100 +Event Charges: $50 +Total Charges: $880 + +Payments Made: $500 +Credits: $80 + +Remaining Balance = $880 - $500 - $80 = $300 +``` + +## 7. Refund Calculation + +The existing refund calculation should be corrected and formalized. + +### Refund Eligibility + +A student may be eligible for a refund if: + +- The student has a withdrawn-related enrollment status +- A valid withdrawal date exists +- The withdrawal date is on or before the refund deadline +- The parent or guardian has made payments +- The refund does not exceed total amount paid + +### Refund Formula + +```text +Refund Amount = Student Tuition Fee ÷ Weeks of Study × Weeks Remaining +``` + +The system should calculate weeks remaining from the withdrawal date to the last school day. + +### Refund Cap + +Total refund cannot exceed total amount paid by the parent or guardian for the school year. + +### Refund Example + +```text +Student tuition fee: $350 +Weeks of study: 8 +Weeks remaining: 4 + +Refund Amount = $350 ÷ 8 × 4 = $175 +``` + +## 8. Refund Logic Correction Needed + +The current refund service contains a logic issue. + +The service calculates each student’s fee, but it does not store that fee on the student record before refund calculation. + +The corrected logic should assign the calculated fee to each student: + +```php +$student['tuition_fee'] = $studentFee; +``` + +Then the refund loop should use: + +```php +$studentFee = $student['tuition_fee']; +``` + +Without this correction, refund calculations may be unreliable. + +## 9. Extra Charges + +Extra charges should be stored separately from tuition. + +Examples of extra charges: + +- Books +- Uniforms +- Transportation +- Meals +- Technology fee +- Replacement ID card +- Lost book fee +- Damaged equipment fee +- Late pickup fee +- After-school care +- Exam fee +- Late payment fee + +Each extra charge should include: + +- Student ID +- Parent ID +- School year +- Charge name +- Charge description +- Charge amount +- Charge date +- Due date +- Status +- Created by +- Approval status + +Extra charges should be included in the remaining balance but should not automatically affect tuition calculation. + +## 10. Event Charges + +Event charges should be tracked separately from regular extra charges. + +Examples of event charges: + +- Graduation +- Field trip +- School camp +- Sports event +- Competition +- Cultural event +- Workshop +- School ceremony + +Each event charge should include: + +- Event ID +- Event name +- Student ID +- Parent ID +- Event date +- Participation status +- Charge amount +- Payment status +- Refund policy +- Cancellation status + +If an event is canceled, the system should either issue a refund or apply the charge as account credit. + +## 11. Payment Tracking + +Each payment should be recorded against the parent or family account and optionally allocated to specific charges. + +Each payment record should include: + +- Payment ID +- Parent ID +- Student ID, if applicable +- School year +- Amount paid +- Payment method +- Payment date +- Receipt number +- Payment status +- Notes +- Created by + +Payment status may include: + +- Pending +- Paid +- Failed +- Refunded +- Partially refunded +- Canceled + +## 12. Invoice Structure + +The invoice should combine all billing items into one clear document. + +Invoice sections should include: + +1. Tuition charges +2. Extra charges +3. Event charges +4. Discounts and credits +5. Payments received +6. Refunds +7. Remaining balance + +Each invoice should show: + +- Invoice number +- Parent or guardian name +- Student names +- School year +- Issue date +- Due date +- Total charges +- Total paid +- Remaining balance +- Payment instructions + +## 13. Recommended Service Structure + +The billing logic should be split into separate services instead of placing everything inside one fee calculation service. + +### TuitionCalculationService + +Responsible for: + +- Sorting students by grade +- Assigning tuition fee +- Calculating family tuition total +- Returning student-level tuition breakdown + +### RefundCalculationService + +Responsible for: + +- Checking refund eligibility +- Calculating proportional refund +- Applying refund caps +- Returning refund details + +### BalanceCalculationService + +Responsible for: + +- Adding tuition, event charges, and extra charges +- Subtracting payments and credits +- Returning remaining balance + +### ChargeService + +Responsible for: + +- Creating extra charges +- Creating event charges +- Canceling charges +- Marking charges paid or unpaid + +### InvoiceService + +Responsible for: + +- Creating invoices +- Updating invoices +- Generating account statements +- Showing billing history + +## 14. Required Reports + +The system should generate the following reports: + +- Total tuition billed +- Total tuition collected +- Remaining balances by parent +- Remaining balances by student +- Refunds pending +- Refunds issued +- Extra charges collected +- Event charges collected +- Overdue balances +- Payment plan status +- Family account summary + +## 15. Controls and Validation + +The system should prevent incorrect billing through validation rules. + +Required validations: + +- Do not calculate refund without withdrawal date. +- Do not refund after refund deadline. +- Do not refund more than amount paid. +- Do not bill students who are not accepted. +- Do not duplicate event charges. +- Do not apply payment to the wrong school year. +- Do not allow negative remaining balance unless recorded as credit. +- Do not allow manual balance edits without audit log. +- Do not delete payments; reverse them with adjustment records. + +## 16. Recommended Database Tables + +The system should include or update the following tables. + +### tuition_configurations + +Stores school-year billing settings. + +Fields: + +- school_year +- first_student_fee +- second_student_fee +- youth_fee +- refund_deadline +- weeks_study +- last_school_day + +### student_tuition_records + +Stores calculated tuition per student. + +Fields: + +- student_id +- parent_id +- school_year +- grade +- grade_level +- fee_category +- tuition_fee +- discount_amount +- final_tuition_amount + +### charges + +Stores extra and event charges. + +Fields: + +- charge_id +- student_id +- parent_id +- school_year +- charge_type +- charge_name +- amount +- due_date +- status + +### payments + +Stores parent payments. + +Fields: + +- payment_id +- parent_id +- school_year +- amount +- method +- payment_date +- status +- receipt_number + +### refunds + +Stores refund records. + +Fields: + +- refund_id +- parent_id +- student_id +- school_year +- refund_amount +- reason +- withdrawal_date +- approval_status +- refund_status + +### account_ledger + +Stores every financial transaction. + +Fields: + +- ledger_id +- parent_id +- student_id +- school_year +- transaction_type +- description +- debit_amount +- credit_amount +- balance_after_transaction +- created_by +- created_at + +## 17. Implementation Priority + +### Phase 1: Fix Current Tuition and Refund Logic + +- Store assigned tuition fee per student. +- Fix refund calculation bug. +- Return detailed student fee breakdown. +- Add logging for each calculation. +- Add tests for multiple-student families. + +### Phase 2: Add Balance Calculation + +- Combine tuition, extra charges, event charges, and payments. +- Calculate remaining balance. +- Add family account summary. + +### Phase 3: Add Charges + +- Create extra charge system. +- Create event charge system. +- Add charge statuses. +- Prevent duplicate charges. + +### Phase 4: Add Invoice and Statement System + +- Generate invoices. +- Generate monthly statements. +- Show payment history. +- Show remaining balance. + +### Phase 5: Add Reports and Audit Logs + +- Add finance reports. +- Add refund reports. +- Add audit trail. +- Add manual adjustment tracking. + +## 18. Final Recommendation + +The existing service should not be thrown away, but it should not remain responsible for the entire billing system. + +The school should keep the grade-based tuition rules, correct the refund bug, and expand the system into a proper billing module with separate tuition, refund, charge, payment, invoice, and balance services. + +The final system should always answer five questions clearly: + +1. What was the student charged? +2. Why was the student charged? +3. What has the parent paid? +4. What has been refunded or credited? +5. What balance remains? diff --git a/docs/student_promotion_enrollment_plan.md b/docs/student_promotion_enrollment_plan.md new file mode 100644 index 00000000..97b02585 --- /dev/null +++ b/docs/student_promotion_enrollment_plan.md @@ -0,0 +1,509 @@ +# Student Promotion and Enrollment Management Plan + +## 1. Core Rule + +A student who passes the current level should not be automatically placed into the next level. + +The student should first be marked as: + +**Eligible for Promotion** + +After that, the parent or guardian must complete enrollment for the promoted level. + +Once the parent completes enrollment, the student becomes: + +**Promoted and Enrolled** + +No separate school approval is required. + +## 2. Promotion Principle + +Promotion and enrollment are separate steps. + +### Promotion + +Promotion confirms that the student passed the current level and qualifies for the next level. + +### Enrollment + +Enrollment confirms that the parent or guardian wants the student to continue at the school in the promoted level for the next school year. + +Once enrollment is completed by the parent, the student should be officially assigned to the new promoted level. + +## 3. Promotion Statuses + +Recommended statuses: + +- Not Reviewed +- Eligible for Promotion +- Awaiting Parent Enrollment +- Enrollment Started +- Promoted and Enrolled +- Conditional Promotion +- Repeated Level +- On Hold +- Withdrawn +- Graduated +- Not Enrolled for Next Year + +## 4. Status Definitions + +### Not Reviewed + +The student has not yet been evaluated for promotion. + +### Eligible for Promotion + +The student passed the current level and qualifies for the next level, but the parent has not started enrollment yet. + +### Awaiting Parent Enrollment + +The student is eligible for the next level, and the system is waiting for the parent to complete enrollment. + +### Enrollment Started + +The parent has started the enrollment process but has not completed all required steps. + +### Promoted and Enrolled + +The parent completed enrollment for the promoted level. The student is officially placed into the next level for the new school year. + +### Conditional Promotion + +The student has pending academic or administrative requirements before promotion eligibility can be finalized. + +Examples: + +- Makeup exam required +- Missing final grade +- Attendance review +- Academic condition pending + +### Repeated Level + +The student did not meet the passing requirements and must repeat the same level. + +### On Hold + +The student cannot continue through the promotion process because of an unresolved issue. + +Examples: + +- Missing academic result +- Enrollment form incomplete +- Financial hold, if used by school policy +- Required documents missing + +### Withdrawn + +The student is no longer continuing at the school. + +### Graduated + +The student completed the final level and does not move to another school level. + +### Not Enrolled for Next Year + +The student passed and was eligible for promotion, but the parent did not complete enrollment before the deadline. + +This should not be treated as failure. It means the student passed but did not continue enrollment. + +## 5. Promotion Eligibility Criteria + +A student may become eligible for promotion when the school confirms that the student passed the current level. + +Eligibility may be based on: + +- Final academic result +- Required subject completion +- Final average +- Attendance requirement, if applicable +- Makeup exam result, if applicable +- Level completion status + +The school should define these rules clearly per level or program. + +## 6. Updated Workflow + +### Step 1: Academic Result Finalized + +Teachers or academic staff submit the student’s final result for the current level. + +The system records: + +- Final average +- Passed or failed result +- Attendance result, if required +- Current level completion status +- Teacher comments, if needed + +### Step 2: Promotion Eligibility Check + +The system checks whether the student passed the current level. + +If the student passed, the system marks the student as: + +**Eligible for Promotion** + +or + +**Awaiting Parent Enrollment** + +The student is not yet moved into the next level. + +### Step 3: Parent Enrollment Required + +The system notifies the parent or guardian that the student is eligible for the next level and must complete enrollment. + +The notification should include: + +- Student name +- Current level completed +- Promoted level +- Enrollment deadline +- Required documents, if any +- Required payment or deposit, if applicable +- Instructions to complete enrollment + +### Step 4: Parent Starts Enrollment + +When the parent begins the enrollment process, the student status becomes: + +**Enrollment Started** + +The enrollment process may include: + +- Confirming student information +- Confirming parent or guardian information +- Confirming the promoted level +- Uploading required documents +- Accepting school policies +- Paying registration fee or deposit, if applicable +- Submitting the enrollment form + +### Step 5: Parent Completes Enrollment + +Once the parent submits all required enrollment information and completes required payment, if applicable, the enrollment is considered complete. + +The student status becomes: + +**Promoted and Enrolled** + +No additional school approval is needed. + +### Step 6: New School-Year Record Created + +After parent enrollment is completed, the system creates the student’s new school-year enrollment record. + +The new record should include: + +- Student ID +- Parent ID +- New school year +- Promoted level +- Enrollment status +- Enrollment completion date +- Source promotion record + +## 7. Decision Logic + +```text +IF student did not pass current level: + promotion_status = repeated_level + +ELSE IF student passed current level AND parent has not started enrollment: + promotion_status = awaiting_parent_enrollment + +ELSE IF student passed current level AND parent started enrollment BUT enrollment incomplete: + promotion_status = enrollment_started + +ELSE IF student passed current level AND parent completed enrollment: + promotion_status = promoted_and_enrolled + +ELSE: + promotion_status = on_hold +``` + +## 8. Enrollment Completion Rule + +Enrollment should be considered complete when all required parent-side actions are finished. + +Required actions may include: + +- Enrollment form submitted +- Required student information confirmed +- Required parent information confirmed +- Required documents uploaded +- Required agreement accepted +- Required registration fee or deposit paid, if applicable + +Once these are complete, the system should automatically finalize the promotion. + +## 9. Record Update Rule + +The system should not overwrite the student’s current-level record. + +Instead, it should: + +1. Keep the current school-year academic record unchanged. +2. Create a promotion eligibility record. +3. Wait for parent enrollment. +4. Create a new enrollment record for the next school year after parent enrollment is complete. +5. Assign the student to the promoted level only in the new school-year record. + +## 10. Level Mapping + +The school should maintain a clear level progression map. + +Example: + +| Current Level | Next Level | +|---|---| +| KG1 | KG2 | +| KG2 | Grade 1 | +| Grade 1 | Grade 2 | +| Grade 2 | Grade 3 | +| Grade 3 | Grade 4 | +| Grade 4 | Grade 5 | +| Grade 5 | Grade 6 | +| Grade 6 | Grade 7 | +| Grade 7 | Grade 8 | +| Grade 8 | Grade 9 | +| Grade 9 | Youth | +| Youth | Graduated | + +The system should store this mapping in configuration or a dedicated table, not hard-code it inside controller logic. + +## 11. Recommended Data Model Updates + +### student_promotion_records + +Recommended fields: + +- promotion_id +- student_id +- parent_id +- current_school_year +- next_school_year +- current_level_id +- promoted_level_id +- promotion_status +- passed_current_level +- enrollment_required +- enrollment_status +- enrollment_id +- parent_notified_at +- enrollment_deadline +- enrollment_completed_at +- promotion_finalized_at +- created_at +- updated_at + +### enrollment_applications + +Recommended fields: + +- enrollment_id +- student_id +- parent_id +- school_year +- requested_level_id +- source_promotion_id +- application_status +- submitted_at +- completed_at +- required_documents_status +- payment_status +- created_at +- updated_at + +### promotion_conditions + +Recommended condition type: + +- parent_enrollment_required + +Example: + +- condition_type: parent_enrollment_required +- description: Parent must complete enrollment for the promoted level. +- status: pending +- deadline: enrollment deadline date + +## 12. Parent Portal Requirements + +The parent portal should show the parent a clear action. + +Example message: + +“Your child has passed the current level and is eligible for promotion to [Promoted Level]. Please complete enrollment for the new school year by [Deadline].” + +The parent should be able to: + +- View the promoted level +- Start enrollment +- Confirm student information +- Upload required documents +- Pay required enrollment fee, if applicable +- Submit enrollment +- View enrollment status + +## 13. Admin Panel Requirements + +The admin panel should allow staff to view: + +- Students eligible for promotion +- Students awaiting parent enrollment +- Students with enrollment started +- Students promoted and enrolled +- Students not enrolled for next year +- Students repeating the level +- Students on hold + +Admin users should also be able to: + +- Set enrollment deadlines +- Send reminders +- View enrollment completion status +- Export pending enrollment lists +- View promotion history + +## 14. Reminder Process + +The system should send reminders to parents who have not completed enrollment. + +Suggested reminders: + +- First reminder after student becomes eligible +- Second reminder halfway before deadline +- Final reminder before deadline +- Expiration notice after deadline + +Each reminder should be logged. + +## 15. Deadline Handling + +If the parent does not complete enrollment before the deadline, the student should be marked as: + +**Not Enrolled for Next Year** + +This means: + +- The student passed the current level. +- The student was eligible for promotion. +- The parent did not complete enrollment. +- The student should not be counted as enrolled for the next school year. + +## 16. Reports + +The system should generate reports for: + +- Students eligible for promotion +- Students awaiting parent enrollment +- Students with enrollment started +- Students promoted and enrolled +- Students not enrolled for next year +- Students repeating the level +- Students on hold +- Promotion summary by current level +- Enrollment completion summary +- Parent enrollment pending list + +## 17. Permissions + +Access should be controlled by role. + +### Teacher + +Can submit academic results and promotion recommendations. + +### Academic Coordinator + +Can review academic eligibility and promotion readiness. + +### Parent or Guardian + +Can complete enrollment for the promoted level. + +### Registrar or Admin Staff + +Can view promotion and enrollment status, send reminders, and export reports. + +### Administrator + +Can configure levels, promotion rules, deadlines, and system settings. + +## 18. Audit Trail + +Every promotion and enrollment action should be logged. + +Audit log should track: + +- User who made the action +- Date and time +- Student affected +- Old value +- New value +- Action type +- Notes, if any + +Important audited actions: + +- Academic result submitted +- Student marked eligible for promotion +- Parent notified +- Enrollment started +- Enrollment completed +- Student marked promoted and enrolled +- Student marked not enrolled for next year +- Manual status changes + +## 19. Implementation Phases + +### Phase 1: Promotion Rules and Level Mapping + +- Create level progression table. +- Create promotion status rules. +- Define final levels. +- Define repeat-level behavior. + +### Phase 2: Eligibility Engine + +- Build academic eligibility check. +- Generate promotion eligibility records. +- Mark eligible students as awaiting parent enrollment. + +### Phase 3: Parent Enrollment Flow + +- Build parent enrollment action. +- Allow parent to confirm information. +- Allow parent to upload documents, if needed. +- Allow parent to pay registration fee or deposit, if applicable. +- Mark enrollment complete automatically when required steps are done. + +### Phase 4: Record Update + +- Create next-year enrollment record after parent enrollment completion. +- Assign promoted level only in the new school-year record. +- Preserve current-year academic history. + +### Phase 5: Notifications and Reports + +- Notify parents when students become eligible. +- Send reminders before deadline. +- Generate pending enrollment reports. +- Generate promoted and enrolled reports. + +## 20. Final Rule + +The system should follow this rule: + +**Passed Current Level + Parent Completed Enrollment = Promoted and Enrolled** + +Therefore: + +**Passed ≠ Enrolled** + +**Eligible for Promotion ≠ Promoted and Enrolled** + +**Promoted and Enrolled = Student passed current level + Parent completed enrollment** diff --git a/docs/tuition_income_prediction_plan.md b/docs/tuition_income_prediction_plan.md new file mode 100644 index 00000000..a886853a --- /dev/null +++ b/docs/tuition_income_prediction_plan.md @@ -0,0 +1,1094 @@ +# Tuition Income Prediction Plan: One Service With Old/New Calculation Flag + +## Goal + +Create one dedicated tuition income prediction service that supports two calculation methods: + +1. **Old calculation** +2. **New calculation** + +The selected calculation method is controlled by a flag. + +The service must: + +- Pull students from the `students` table. +- Group students by `parent_id`. +- Filter by `school_id`. +- Filter by `school_year`. +- Calculate tuition per family. +- Support editable tuition settings. +- Return family-level details. +- Return family-size summary. +- Return grand totals. +- Allow the prediction page to select which calculation method to use. + +The existing `FeeCalculationService` should remain for refund logic only. + +--- + +## 1. Service Design + +Create one new service: + +```text +App\Services\TuitionIncomePredictionService +``` + +This service contains both calculation methods: + +```php +calculateOldModel(int $studentCount, array $config): float + +calculateNewModel(int $studentCount, array $config): float +``` + +The service chooses which method to use based on: + +```text +calculation_method +``` + +Allowed values: + +```text +old +new +comparison +``` + +Recommended default: + +```text +comparison +``` + +--- + +## 2. Calculation Method Flag + +Use this request parameter: + +```text +calculation_method +``` + +Allowed values: + +| Value | Meaning | +|---|---| +| `old` | Use old calculation only | +| `new` | Use new calculation only | +| `comparison` | Calculate both old and new side by side | + +Example request: + +```text +GET /reports/tuition-income-prediction?school_id=ABC&school_year=2025-2026&calculation_method=comparison +``` + +Do not use `selected_service`. + +This is not selecting a different service anymore. It is selecting a calculation method inside the same service. + +--- + +## 3. Pricing Configuration + +All pricing inputs must be editable. + +Do not hardcode these values inside the calculation logic. + +Configuration keys: + +| Setting Key | Default | Description | +|---|---:|---| +| `tuition_prediction_base_tuition` | `350.00` | Full tuition amount | +| `tuition_prediction_old_model_increase_percent` | `20.00` | Percent increase applied to old model | +| `tuition_prediction_old_model_additional_student_discount` | `150.00` | Old model discount for 2nd student and above | +| `tuition_prediction_new_model_second_third_discount` | `50.00` | New model discount for 2nd and 3rd students | +| `tuition_prediction_new_model_fourth_plus_discount` | `100.00` | New model discount for 4th student and above | + +Use scoped config names. Generic names like `base_tuition` and `increase_percent` are future bug bait. + +--- + +## 4. Calculation Rules + +### 4.1 Old Calculation + +The old model applies a percentage increase to the old pricing structure. + +Formula: + +```text +1st student = +base_tuition × (1 + old_model_increase_percent / 100) + +2nd student and above = +(base_tuition - old_model_additional_student_discount) +× (1 + old_model_increase_percent / 100) +``` + +Default example: + +```text +base_tuition = 350 +old_model_additional_student_discount = 150 +old_model_increase_percent = 20 +``` + +| Student Position | Fee | +|---:|---:| +| 1st | 420 | +| 2nd+ | 240 | + +### 4.2 New Calculation + +The new model uses the base tuition without the old model increase. + +Formula: + +```text +1st student = base_tuition +2nd student = base_tuition - new_model_second_third_discount +3rd student = base_tuition - new_model_second_third_discount +4th student and above = base_tuition - new_model_fourth_plus_discount +``` + +Default example: + +```text +base_tuition = 350 +new_model_second_third_discount = 50 +new_model_fourth_plus_discount = 100 +``` + +| Student Position | Fee | +|---:|---:| +| 1st | 350 | +| 2nd | 300 | +| 3rd | 300 | +| 4th+ | 250 | + +--- + +## 5. Required Student Filters + +All prediction queries must filter students with: + +```sql +WHERE is_active = 1 + AND school_id = :school_id + AND school_year = :school_year + AND parent_id IS NOT NULL + AND parent_id > 0 +``` + +Optional filters: + +```sql +AND semester = :semester +AND year_of_registration = :year_of_registration +``` + +Use optional filters only when provided. + +`school_year` is required. + +Do not replace `school_year` with `year_of_registration`. + +--- + +## 6. Student Model Methods + +Add these methods to the student model. + +### 6.1 Get Student Counts by Family + +```php +public function getStudentCountsByFamily( + string $schoolId, + string $schoolYear, + ?string $semester = null, + ?string $yearOfRegistration = null +): array +``` + +SQL: + +```sql +SELECT + parent_id, + COUNT(*) AS student_count, + SUM(CASE WHEN tuition_paid = 1 THEN 1 ELSE 0 END) AS paid_student_count, + SUM(CASE WHEN tuition_paid = 0 THEN 1 ELSE 0 END) AS unpaid_student_count +FROM students +WHERE is_active = 1 + AND school_id = :school_id + AND school_year = :school_year + AND parent_id IS NOT NULL + AND parent_id > 0 +GROUP BY parent_id +ORDER BY student_count DESC, parent_id ASC; +``` + +Append optional filters safely using bound parameters. + +### 6.2 Count Eligible Students + +```php +public function countEligibleStudents( + string $schoolId, + string $schoolYear, + ?string $semester = null, + ?string $yearOfRegistration = null +): int +``` + +SQL: + +```sql +SELECT COUNT(*) AS raw_student_count +FROM students +WHERE is_active = 1 + AND school_id = :school_id + AND school_year = :school_year + AND parent_id IS NOT NULL + AND parent_id > 0; +``` + +Apply the same optional filters. + +### 6.3 Count Students Missing Parent ID + +```php +public function countStudentsMissingParentId( + string $schoolId, + string $schoolYear, + ?string $semester = null, + ?string $yearOfRegistration = null +): int +``` + +SQL: + +```sql +SELECT COUNT(*) AS missing_parent_count +FROM students +WHERE is_active = 1 + AND school_id = :school_id + AND school_year = :school_year + AND (parent_id IS NULL OR parent_id <= 0); +``` + +Apply optional filters. + +### 6.4 Count Students Missing School Year + +```php +public function countStudentsMissingSchoolYear(string $schoolId): int +``` + +SQL: + +```sql +SELECT COUNT(*) AS missing_school_year_count +FROM students +WHERE is_active = 1 + AND school_id = :school_id + AND (school_year IS NULL OR school_year = ''); +``` + +--- + +## 7. Prediction Service Structure + +Create: + +```text +app/Services/TuitionIncomePredictionService.php +``` + +Suggested methods: + +```php +public function generateReport( + string $schoolId, + string $schoolYear, + string $calculationMethod = 'comparison', + ?string $semester = null, + ?string $yearOfRegistration = null +): array; + +private function getPredictionConfig(): array; + +private function validatePredictionConfig(array $config): void; + +private function validateCalculationMethod(string $calculationMethod): void; + +private function calculateOldModel(int $studentCount, array $config): float; + +private function calculateNewModel(int $studentCount, array $config): float; + +private function buildFamilyReport(array $familyCounts, array $config, string $calculationMethod): array; + +private function buildFamilySizeSummary(array $familyReport, string $calculationMethod): array; + +private function buildTotals(array $familyReport, string $calculationMethod): array; + +private function determineBetterMethod(float $difference): string; + +private function buildWarnings( + int $rawStudentCount, + int $groupedStudentCount, + int $missingParentCount, + int $missingSchoolYearCount +): array; +``` + +--- + +## 8. Configuration Loading + +```php +private function getPredictionConfig(): array +{ + return [ + 'base_tuition' => (float) ($this->configModel->getConfig('tuition_prediction_base_tuition') ?? 350), + 'old_model_increase_percent' => (float) ($this->configModel->getConfig('tuition_prediction_old_model_increase_percent') ?? 20), + 'old_model_additional_student_discount' => (float) ($this->configModel->getConfig('tuition_prediction_old_model_additional_student_discount') ?? 150), + 'new_model_second_third_discount' => (float) ($this->configModel->getConfig('tuition_prediction_new_model_second_third_discount') ?? 50), + 'new_model_fourth_plus_discount' => (float) ($this->configModel->getConfig('tuition_prediction_new_model_fourth_plus_discount') ?? 100), + ]; +} +``` + +--- + +## 9. Configuration Validation + +```php +private function validatePredictionConfig(array $config): void +{ + $baseTuition = (float) $config['base_tuition']; + + if ($baseTuition <= 0) { + throw new \InvalidArgumentException('Base tuition must be greater than zero.'); + } + + if ((float) $config['old_model_increase_percent'] < 0) { + throw new \InvalidArgumentException('Old model increase percent cannot be negative.'); + } + + $discountKeys = [ + 'old_model_additional_student_discount', + 'new_model_second_third_discount', + 'new_model_fourth_plus_discount', + ]; + + foreach ($discountKeys as $key) { + $discount = (float) $config[$key]; + + if ($discount < 0) { + throw new \InvalidArgumentException("{$key} cannot be negative."); + } + + if ($discount > $baseTuition) { + throw new \InvalidArgumentException("{$key} cannot exceed base tuition."); + } + } +} +``` + +--- + +## 10. Calculation Method Validation + +```php +private function validateCalculationMethod(string $calculationMethod): void +{ + $allowed = ['old', 'new', 'comparison']; + + if (!in_array($calculationMethod, $allowed, true)) { + throw new \InvalidArgumentException('Invalid calculation_method.'); + } +} +``` + +--- + +## 11. Old Calculation Method + +```php +private function calculateOldModel(int $studentCount, array $config): float +{ + $baseTuition = (float) $config['base_tuition']; + $increasePercent = (float) $config['old_model_increase_percent']; + $oldModelDiscount = (float) $config['old_model_additional_student_discount']; + + $multiplier = 1 + ($increasePercent / 100); + + $firstStudentFee = $baseTuition * $multiplier; + $additionalStudentFee = ($baseTuition - $oldModelDiscount) * $multiplier; + + $total = 0.0; + + for ($position = 1; $position <= $studentCount; $position++) { + $fee = ($position === 1) + ? $firstStudentFee + : $additionalStudentFee; + + $total += max(0, $fee); + } + + return round($total, 2); +} +``` + +--- + +## 12. New Calculation Method + +```php +private function calculateNewModel(int $studentCount, array $config): float +{ + $baseTuition = (float) $config['base_tuition']; + $secondThirdDiscount = (float) $config['new_model_second_third_discount']; + $fourthPlusDiscount = (float) $config['new_model_fourth_plus_discount']; + + $total = 0.0; + + for ($position = 1; $position <= $studentCount; $position++) { + if ($position === 1) { + $fee = $baseTuition; + } elseif ($position === 2 || $position === 3) { + $fee = $baseTuition - $secondThirdDiscount; + } else { + $fee = $baseTuition - $fourthPlusDiscount; + } + + $total += max(0, $fee); + } + + return round($total, 2); +} +``` + +--- + +## 13. Family Report Logic + +```php +private function buildFamilyReport(array $familyCounts, array $config, string $calculationMethod): array +{ + $report = []; + + foreach ($familyCounts as $family) { + $studentCount = (int) $family['student_count']; + + $row = [ + 'parent_id' => (int) $family['parent_id'], + 'student_count' => $studentCount, + 'paid_student_count' => (int) $family['paid_student_count'], + 'unpaid_student_count' => (int) $family['unpaid_student_count'], + ]; + + if ($calculationMethod === 'old' || $calculationMethod === 'comparison') { + $row['old_model_total'] = $this->calculateOldModel($studentCount, $config); + } + + if ($calculationMethod === 'new' || $calculationMethod === 'comparison') { + $row['new_model_total'] = $this->calculateNewModel($studentCount, $config); + } + + if ($calculationMethod === 'comparison') { + $row['difference'] = round($row['new_model_total'] - $row['old_model_total'], 2); + $row['better_method'] = $this->determineBetterMethod($row['difference']); + } + + $report[] = $row; + } + + return $report; +} +``` + +--- + +## 14. Better Method Logic + +```php +private function determineBetterMethod(float $difference): string +{ + if ($difference > 0) { + return 'new'; + } + + if ($difference < 0) { + return 'old'; + } + + return 'equal'; +} +``` + +--- + +## 15. Family-Size Summary Logic + +Group rows by `student_count`. + +```php +private function buildFamilySizeSummary(array $familyReport, string $calculationMethod): array +{ + $summary = []; + + foreach ($familyReport as $row) { + $size = (int) $row['student_count']; + + if (!isset($summary[$size])) { + $summary[$size] = [ + 'family_size' => $size, + 'family_count' => 0, + 'total_students' => 0, + 'paid_student_count' => 0, + 'unpaid_student_count' => 0, + ]; + + if ($calculationMethod === 'old' || $calculationMethod === 'comparison') { + $summary[$size]['old_model_total'] = 0.0; + } + + if ($calculationMethod === 'new' || $calculationMethod === 'comparison') { + $summary[$size]['new_model_total'] = 0.0; + } + + if ($calculationMethod === 'comparison') { + $summary[$size]['difference'] = 0.0; + $summary[$size]['better_method'] = 'equal'; + } + } + + $summary[$size]['family_count']++; + $summary[$size]['total_students'] += $size; + $summary[$size]['paid_student_count'] += (int) $row['paid_student_count']; + $summary[$size]['unpaid_student_count'] += (int) $row['unpaid_student_count']; + + if (isset($row['old_model_total'])) { + $summary[$size]['old_model_total'] += $row['old_model_total']; + } + + if (isset($row['new_model_total'])) { + $summary[$size]['new_model_total'] += $row['new_model_total']; + } + + if ($calculationMethod === 'comparison') { + $summary[$size]['difference'] = round( + $summary[$size]['new_model_total'] - $summary[$size]['old_model_total'], + 2 + ); + + $summary[$size]['better_method'] = $this->determineBetterMethod($summary[$size]['difference']); + } + } + + ksort($summary); + + return array_values($summary); +} +``` + +--- + +## 16. Totals Logic + +```php +private function buildTotals(array $familyReport, string $calculationMethod): array +{ + $totals = [ + 'total_families' => count($familyReport), + 'total_students' => 0, + 'total_paid_students' => 0, + 'total_unpaid_students' => 0, + ]; + + if ($calculationMethod === 'old' || $calculationMethod === 'comparison') { + $totals['old_model_total'] = 0.0; + } + + if ($calculationMethod === 'new' || $calculationMethod === 'comparison') { + $totals['new_model_total'] = 0.0; + } + + foreach ($familyReport as $row) { + $totals['total_students'] += (int) $row['student_count']; + $totals['total_paid_students'] += (int) $row['paid_student_count']; + $totals['total_unpaid_students'] += (int) $row['unpaid_student_count']; + + if (isset($row['old_model_total'])) { + $totals['old_model_total'] += $row['old_model_total']; + } + + if (isset($row['new_model_total'])) { + $totals['new_model_total'] += $row['new_model_total']; + } + } + + if (isset($totals['old_model_total'])) { + $totals['old_model_total'] = round($totals['old_model_total'], 2); + } + + if (isset($totals['new_model_total'])) { + $totals['new_model_total'] = round($totals['new_model_total'], 2); + } + + if ($calculationMethod === 'comparison') { + $totals['difference'] = round($totals['new_model_total'] - $totals['old_model_total'], 2); + $totals['better_method'] = $this->determineBetterMethod($totals['difference']); + } + + return $totals; +} +``` + +--- + +## 17. Generate Report Flow + +```php +public function generateReport( + string $schoolId, + string $schoolYear, + string $calculationMethod = 'comparison', + ?string $semester = null, + ?string $yearOfRegistration = null +): array { + $this->validateCalculationMethod($calculationMethod); + + $config = $this->getPredictionConfig(); + + $this->validatePredictionConfig($config); + + $familyCounts = $this->studentModel->getStudentCountsByFamily( + $schoolId, + $schoolYear, + $semester, + $yearOfRegistration + ); + + $familyReport = $this->buildFamilyReport($familyCounts, $config, $calculationMethod); + + $familySizeSummary = $this->buildFamilySizeSummary($familyReport, $calculationMethod); + + $totals = $this->buildTotals($familyReport, $calculationMethod); + + $rawStudentCount = $this->studentModel->countEligibleStudents( + $schoolId, + $schoolYear, + $semester, + $yearOfRegistration + ); + + $groupedStudentCount = (int) array_sum(array_column($familyCounts, 'student_count')); + + $missingParentCount = $this->studentModel->countStudentsMissingParentId( + $schoolId, + $schoolYear, + $semester, + $yearOfRegistration + ); + + $missingSchoolYearCount = $this->studentModel->countStudentsMissingSchoolYear($schoolId); + + $warnings = $this->buildWarnings( + $rawStudentCount, + $groupedStudentCount, + $missingParentCount, + $missingSchoolYearCount + ); + + return [ + 'filters' => [ + 'school_id' => $schoolId, + 'school_year' => $schoolYear, + 'semester' => $semester, + 'year_of_registration' => $yearOfRegistration, + 'calculation_method' => $calculationMethod, + ], + 'config' => $config, + 'family_report' => $familyReport, + 'family_size_summary' => $familySizeSummary, + 'totals' => $totals, + 'validation' => [ + 'raw_student_count' => $rawStudentCount, + 'grouped_student_count' => $groupedStudentCount, + 'missing_parent_count' => $missingParentCount, + 'missing_school_year_count' => $missingSchoolYearCount, + ], + 'warnings' => $warnings, + ]; +} +``` + +--- + +## 18. Controller Endpoint + +Suggested route: + +```text +GET /reports/tuition-income-prediction +``` + +Required query parameters: + +```text +school_id +school_year +``` + +Optional query parameters: + +```text +calculation_method +semester +year_of_registration +``` + +Default: + +```text +calculation_method = comparison +``` + +Controller example: + +```php +public function tuitionIncomePrediction() +{ + $schoolId = $this->request->getGet('school_id'); + $schoolYear = $this->request->getGet('school_year'); + $calculationMethod = $this->request->getGet('calculation_method') ?? 'comparison'; + $semester = $this->request->getGet('semester'); + $yearOfRegistration = $this->request->getGet('year_of_registration'); + + if (!$schoolId) { + return $this->response->setStatusCode(400)->setJSON([ + 'error' => 'school_id is required', + ]); + } + + if (!$schoolYear) { + return $this->response->setStatusCode(400)->setJSON([ + 'error' => 'school_year is required', + ]); + } + + try { + $report = $this->tuitionIncomePredictionService->generateReport( + $schoolId, + $schoolYear, + $calculationMethod, + $semester, + $yearOfRegistration + ); + + return $this->response->setJSON($report); + } catch (\InvalidArgumentException $e) { + return $this->response->setStatusCode(400)->setJSON([ + 'error' => $e->getMessage(), + ]); + } catch (\Throwable $e) { + log_message('error', 'Tuition prediction failed: ' . $e->getMessage()); + + return $this->response->setStatusCode(500)->setJSON([ + 'error' => 'Unable to generate tuition prediction report.', + ]); + } +} +``` + +--- + +## 19. Prediction Page UI + +Add a dropdown: + +```text +Calculation Method +``` + +Options: + +| Label | Value | +|---|---| +| Compare Old vs New | `comparison` | +| Old Calculation | `old` | +| New Calculation | `new` | + +Default: + +```text +comparison +``` + +Required filters: + +```text +School +School Year +``` + +Optional filters: + +```text +Semester +Year of Registration +``` + +Display: + +1. Configuration values used. +2. Selected calculation method. +3. Family-size summary. +4. Family-level report. +5. Totals. +6. Validation warnings. + +--- + +## 20. Response Shape + +### Comparison Mode + +```php +[ + 'filters' => [ + 'school_id' => 'ABC', + 'school_year' => '2025-2026', + 'semester' => null, + 'year_of_registration' => null, + 'calculation_method' => 'comparison', + ], + 'config' => [ + 'base_tuition' => 350.00, + 'old_model_increase_percent' => 20.00, + 'old_model_additional_student_discount' => 150.00, + 'new_model_second_third_discount' => 50.00, + 'new_model_fourth_plus_discount' => 100.00, + ], + 'family_report' => [ + [ + 'parent_id' => 101, + 'student_count' => 3, + 'paid_student_count' => 2, + 'unpaid_student_count' => 1, + 'old_model_total' => 900.00, + 'new_model_total' => 950.00, + 'difference' => 50.00, + 'better_method' => 'new', + ], + ], + 'family_size_summary' => [...], + 'totals' => [ + 'total_families' => 102, + 'total_students' => 200, + 'total_paid_students' => 150, + 'total_unpaid_students' => 50, + 'old_model_total' => 66360.00, + 'new_model_total' => 64650.00, + 'difference' => -1710.00, + 'better_method' => 'old', + ], + 'validation' => [ + 'raw_student_count' => 200, + 'grouped_student_count' => 200, + 'missing_parent_count' => 0, + 'missing_school_year_count' => 0, + ], + 'warnings' => [], +] +``` + +### Old Mode + +```php +[ + 'filters' => [ + 'calculation_method' => 'old', + ], + 'family_report' => [ + [ + 'parent_id' => 101, + 'student_count' => 3, + 'paid_student_count' => 2, + 'unpaid_student_count' => 1, + 'old_model_total' => 900.00, + ], + ], + 'totals' => [ + 'total_families' => 102, + 'total_students' => 200, + 'old_model_total' => 66360.00, + ], +] +``` + +### New Mode + +```php +[ + 'filters' => [ + 'calculation_method' => 'new', + ], + 'family_report' => [ + [ + 'parent_id' => 101, + 'student_count' => 3, + 'paid_student_count' => 2, + 'unpaid_student_count' => 1, + 'new_model_total' => 950.00, + ], + ], + 'totals' => [ + 'total_families' => 102, + 'total_students' => 200, + 'new_model_total' => 64650.00, + ], +] +``` + +--- + +## 21. Old Refund Service Fix + +Keep the existing old refund service: + +```text +App\Services\FeeCalculationService +``` + +Do not delete it. + +Do not use it for prediction. + +Fix its known issues separately. + +Critical issue in the old refund service: + +- It calculates `$studentFee` while assigning fees. +- It does not store the fee on the student. +- Later it uses `$studentFee` in the refund loop. +- That can use a stale value from a previous loop. + +Fix by storing: + +```php +$student['tuition_fee'] = $studentFee; +``` + +Then in the refund loop use: + +```php +$studentFee = (float) ($student['tuition_fee'] ?? 0); +``` + +Also fix the array-copy issue: + +- Do not assign `tuition_fee` to `$allStudents` and then calculate refunds from the older `$withdrawnStudents` array. +- Either calculate refunds from `$allStudents`, or map fees back by student ID. + +Recommended: + +```php +foreach ($allStudents as $student) { + if (!$this->isWithdrawnStatus($student['enrollment_status'] ?? '')) { + continue; + } + + $studentFee = (float) ($student['tuition_fee'] ?? 0); + + // refund calculation here +} +``` + +Also fix: + +1. Remove unused `InvoiceModel` unless needed. +2. Validate `refund_deadline`. +3. Validate `last_school_day`. +4. Validate `weeks_study > 0`. +5. Normalize enrollment/admission statuses to lowercase. +6. Handle missing `class_section_id`. +7. Use `student_id ?? id ?? 'unknown'` in logs. + +Do not change the public method signature: + +```php +public function calculateRefund(array $students, int $parentId): float +``` + +Existing callers should continue working. + +--- + +## 22. Test Cases + +Using defaults: + +```text +base_tuition = 350 +old_model_increase_percent = 20 +old_model_additional_student_discount = 150 +new_model_second_third_discount = 50 +new_model_fourth_plus_discount = 100 +``` + +| Students | Old Model | New Model | Difference | Better | +|---:|---:|---:|---:|---| +| 1 | 420 | 350 | -70 | old | +| 2 | 660 | 650 | -10 | old | +| 3 | 900 | 950 | 50 | new | +| 4 | 1140 | 1200 | 60 | new | +| 5 | 1380 | 1450 | 70 | new | + +Also test: + +1. `calculation_method = old` +2. `calculation_method = new` +3. `calculation_method = comparison` +4. Invalid `calculation_method` +5. Missing `school_id` +6. Missing `school_year` +7. Missing `parent_id` +8. Inactive students excluded +9. Different school year excluded +10. Discount greater than base tuition rejected +11. Negative increase percent rejected + +--- + +## 23. Acceptance Criteria + +The task is complete when: + +1. One new prediction service exists. +2. The prediction service contains both old and new calculation methods. +3. A `calculation_method` flag controls which method is used. +4. Valid calculation methods are `old`, `new`, and `comparison`. +5. Prediction page exposes this flag as a dropdown. +6. Report requires `school_id`. +7. Report requires `school_year`. +8. Student counts are grouped by `parent_id`. +9. Base tuition is editable. +10. Increase percent is editable. +11. Old discount is editable. +12. New 2nd/3rd student discount is editable. +13. New 4th+ discount is editable. +14. Report includes config values used. +15. Report includes filters used. +16. Report includes validation counts. +17. Report includes warnings. +18. Existing `FeeCalculationService` remains for refund logic. +19. Existing `FeeCalculationService` is fixed internally. +20. Prediction logic does not call refund logic. diff --git a/routes/api.php b/routes/api.php index 30066186..156b5405 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,4 +1,3 @@ - group(function () { Route::get('profile', [InfoIconController::class, 'profileIcon']); }); - Route::middleware('auth:api')->prefix('administrator')->group(function () { + Route::middleware(['auth:api', 'admin.access'])->prefix('administrator')->group(function () { Route::get('attendance-templates', [AttendanceCommentTemplateController::class, 'bootstrapUrls']) ->name('api.v1.administrator.attendance-templates.bootstrap'); @@ -312,6 +314,29 @@ Route::prefix('v1')->group(function () { Route::get('enroll-withdrawal/new-students', [AdministratorEnrollmentController::class, 'newStudents']); Route::post('enroll-withdrawal/update-statuses', [AdministratorEnrollmentController::class, 'updateStatuses']); + Route::prefix('promotions')->group(function () { + Route::get('/', [AdministratorPromotionController::class, 'index']); + Route::get('summary', [AdministratorPromotionController::class, 'summary']); + Route::post('evaluate', [AdministratorPromotionController::class, 'evaluate']); + Route::post('reminders/dispatch', [AdministratorPromotionController::class, 'dispatchScheduledReminders']); + Route::post('deadlines/expire', [AdministratorPromotionController::class, 'expireDeadlines']); + Route::post('deadlines', [AdministratorPromotionController::class, 'setDeadline']); + + Route::prefix('levels')->group(function () { + Route::get('/', [AdministratorPromotionController::class, 'levelProgressions']); + Route::post('/', [AdministratorPromotionController::class, 'upsertLevelProgression']); + Route::post('seed', [AdministratorPromotionController::class, 'seedLevelProgressions']); + }); + + Route::get('{promotionId}', [AdministratorPromotionController::class, 'show'])->whereNumber('promotionId'); + Route::patch('{promotionId}/status', [AdministratorPromotionController::class, 'updateStatus'])->whereNumber('promotionId'); + Route::post('{promotionId}/deadline', [AdministratorPromotionController::class, 'setDeadline'])->whereNumber('promotionId'); + Route::post('{promotionId}/reminders', [AdministratorPromotionController::class, 'sendReminder'])->whereNumber('promotionId'); + Route::get('{promotionId}/reminders', [AdministratorPromotionController::class, 'reminders'])->whereNumber('promotionId'); + Route::get('{promotionId}/audit', [AdministratorPromotionController::class, 'audit'])->whereNumber('promotionId'); + Route::patch('{promotionId}/enrollment-steps', [AdministratorPromotionController::class, 'adminCompleteEnrollment'])->whereNumber('promotionId'); + }); + Route::get('emergency-contacts', [AdministratorEmergencyContactController::class, 'index']); Route::get('emergency-contacts/data', [AdministratorEmergencyContactController::class, 'index']); Route::get('emergency-contacts/{contactId}', [AdministratorEmergencyContactController::class, 'show']); @@ -396,7 +421,7 @@ Route::prefix('v1')->group(function () { Route::post('generate', [CertificateController::class, 'generate']); }); - Route::prefix('role-permission')->group(function () { + Route::middleware('admin.access')->prefix('role-permission')->group(function () { Route::get('roles', [RolePermissionController::class, 'roles']); Route::post('roles', [RolePermissionController::class, 'storeRole']); Route::get('roles/{roleId}', [RolePermissionController::class, 'showRole']); @@ -625,7 +650,7 @@ Route::prefix('v1')->group(function () { Route::post('{notificationId}/restore', [ApiNotificationController::class, 'restore']); Route::post('{notificationId}/read', [ApiNotificationController::class, 'markRead']); }); - Route::prefix('role-permissions')->group(function () { + Route::middleware('admin.access')->prefix('role-permissions')->group(function () { Route::get('roles', [RolePermissionController::class, 'roles']); Route::post('roles', [RolePermissionController::class, 'storeRole']); Route::get('roles/{roleId}', [RolePermissionController::class, 'showRole']); @@ -645,25 +670,6 @@ Route::prefix('v1')->group(function () { Route::put('roles/{roleId}/permissions', [RolePermissionController::class, 'updateRolePermissions']); }); - Route::prefix('role-permission')->group(function () { - Route::get('roles', [RolePermissionController::class, 'roles']); - Route::post('roles', [RolePermissionController::class, 'storeRole']); - Route::get('roles/{roleId}', [RolePermissionController::class, 'showRole']); - Route::patch('roles/{roleId}', [RolePermissionController::class, 'updateRole']); - Route::delete('roles/{roleId}', [RolePermissionController::class, 'deleteRole']); - - Route::get('users', [RolePermissionController::class, 'users']); - Route::post('users/{userId}/roles', [RolePermissionController::class, 'assignRoles']); - - Route::get('permissions', [RolePermissionController::class, 'permissions']); - Route::post('permissions', [RolePermissionController::class, 'storePermission']); - Route::get('permissions/{permissionId}', [RolePermissionController::class, 'showPermission']); - Route::patch('permissions/{permissionId}', [RolePermissionController::class, 'updatePermission']); - Route::delete('permissions/{permissionId}', [RolePermissionController::class, 'deletePermission']); - - Route::get('roles/{roleId}/permissions', [RolePermissionController::class, 'rolePermissions']); - Route::put('roles/{roleId}/permissions', [RolePermissionController::class, 'updateRolePermissions']); - }); Route::prefix('role-switcher')->group(function () { Route::get('/', [RoleSwitcherController::class, 'index']); Route::post('switch', [RoleSwitcherController::class, 'switch']); @@ -741,11 +747,19 @@ Route::prefix('v1')->group(function () { Route::get('{studentId}/score-card', [StudentApiController::class, 'scoreCard']); }); - Route::prefix('parents')->group(function () { + Route::middleware('parent.access')->prefix('parents')->group(function () { Route::get('attendance', [ParentApiController::class, 'attendance']); Route::get('invoices', [ParentApiController::class, 'invoices']); Route::get('enrollments', [ParentApiController::class, 'enrollments']); Route::post('enrollments', [ParentApiController::class, 'updateEnrollments']); + + Route::prefix('promotions')->group(function () { + Route::get('/', [ParentPromotionController::class, 'overview']); + Route::get('{promotionId}', [ParentPromotionController::class, 'show'])->whereNumber('promotionId'); + Route::post('{promotionId}/start', [ParentPromotionController::class, 'start'])->whereNumber('promotionId'); + Route::patch('{promotionId}/steps', [ParentPromotionController::class, 'updateSteps'])->whereNumber('promotionId'); + Route::post('{promotionId}/submit', [ParentPromotionController::class, 'submit'])->whereNumber('promotionId'); + }); Route::get('registration', [ParentApiController::class, 'registration']); Route::post('registration', [ParentApiController::class, 'storeRegistration']); Route::patch('students/{studentId}', [ParentApiController::class, 'updateStudent']); @@ -770,7 +784,7 @@ Route::prefix('v1')->group(function () { Route::delete('authorized-users/{id}', [AuthorizedUsersController::class, 'destroy'])->whereNumber('id'); }); - Route::prefix('users')->group(function () { + Route::middleware('admin.access')->prefix('users')->group(function () { Route::get('/', [UserController::class, 'index']); Route::post('/', [UserController::class, 'store']); Route::get('login-activity', [UserController::class, 'loginActivity']); @@ -896,6 +910,18 @@ Route::prefix('v1')->group(function () { Route::get('unpaid-parents', [FinancialController::class, 'unpaidParents']); Route::post('fees/refund', [FeeCalculationController::class, 'refund']); Route::post('fees/tuition-total', [FeeCalculationController::class, 'tuitionTotal']); + Route::post('fees/tuition-breakdown', [FeeCalculationController::class, 'tuitionBreakdown']); + Route::post('fees/family-balance', [FeeCalculationController::class, 'familyBalance']); + + Route::prefix('fees/charges')->group(function () { + Route::get('/', [ChargeController::class, 'index']); + Route::post('extra', [ChargeController::class, 'storeExtra']); + Route::post('event', [ChargeController::class, 'storeEvent']); + Route::post('extra/{id}/cancel', [ChargeController::class, 'cancelExtra']); + Route::post('extra/{id}/apply', [ChargeController::class, 'applyExtra']); + Route::post('event/{id}/cancel', [ChargeController::class, 'cancelEvent']); + Route::post('event/{id}/mark-paid', [ChargeController::class, 'markEventPaid']); + }); Route::prefix('refunds')->group(function () { Route::post('recalculate-overpayments', [RefundController::class, 'recalculateOverpayments']); diff --git a/tests/Feature/Api/V1/Finance/ChargeControllerTest.php b/tests/Feature/Api/V1/Finance/ChargeControllerTest.php new file mode 100644 index 00000000..e613a0e7 --- /dev/null +++ b/tests/Feature/Api/V1/Finance/ChargeControllerTest.php @@ -0,0 +1,166 @@ +mock(InvoiceGenerationService::class, function ($mock) { + $mock->shouldReceive('generateInvoice')->andReturn(['ok' => true]); + }); + } + + public function test_list_charges_for_parent(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + $this->seedConfig(); + + DB::table('additional_charges')->insert([ + 'parent_id' => 10, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Books', + 'amount' => 20.00, + 'status' => 'pending', + ]); + + $response = $this->getJson('/api/v1/finance/fees/charges?parent_id=10'); + + $response->assertOk(); + $response->assertJsonPath('ok', true); + $this->assertCount(1, $response->json('charges.extra_charges')); + } + + public function test_store_extra_charge_returns_409_on_duplicate(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + $this->seedConfig(); + + DB::table('additional_charges')->insert([ + 'parent_id' => 10, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Books', + 'amount' => 20.00, + 'status' => 'pending', + ]); + + $response = $this->postJson('/api/v1/finance/fees/charges/extra', [ + 'parent_id' => 10, + 'title' => 'Books', + 'amount' => 20, + 'charge_type' => 'add', + ]); + + $response->assertStatus(409); + $response->assertJsonPath('ok', false); + $response->assertJsonPath('charge.error', 'duplicate_charge'); + } + + public function test_store_event_charge_creates_row(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + $this->seedConfig(); + + $response = $this->postJson('/api/v1/finance/fees/charges/event', [ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Science Fair', + 'amount' => 15, + ]); + + $response->assertStatus(201); + $response->assertJsonPath('ok', true); + $this->assertDatabaseHas('event_charges', [ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Science Fair', + ]); + } + + public function test_cancel_extra_charge_voids_row(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + $this->seedConfig(); + + $id = DB::table('additional_charges')->insertGetId([ + 'parent_id' => 10, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Fee', + 'amount' => 10.00, + 'status' => 'pending', + ]); + + $response = $this->postJson("/api/v1/finance/fees/charges/extra/{$id}/cancel"); + + $response->assertOk(); + $this->assertDatabaseHas('additional_charges', ['id' => $id, 'status' => 'void']); + } + + public function test_charges_endpoints_require_authentication(): void + { + $response = $this->getJson('/api/v1/finance/fees/charges?parent_id=10'); + $response->assertStatus(401); + } + + private function seedConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'school_year', 'config_value' => '2025-2026'], + ['config_key' => 'semester', 'config_value' => 'Fall'], + ]); + } + + private function createUser(): User + { + DB::table('users')->insert([ + 'id' => 1, + 'school_id' => 1, + 'firstname' => 'Admin', + 'lastname' => 'User', + 'cellphone' => '5555555555', + 'email' => 'admin@example.com', + 'address_street' => '123 Main', + 'city' => 'City', + 'state' => 'ST', + 'zip' => '12345', + 'accept_school_policy' => 1, + 'is_verified' => 1, + 'status' => 'Active', + 'is_suspended' => 0, + 'failed_attempts' => 0, + 'password' => bcrypt('secret'), + 'semester' => 'Fall', + 'school_year' => '2025-2026', + ]); + + return User::query()->findOrFail(1); + } +} diff --git a/tests/Feature/Api/V1/Finance/FeeCalculationControllerTest.php b/tests/Feature/Api/V1/Finance/FeeCalculationControllerTest.php index d8859ef7..caa8a480 100644 --- a/tests/Feature/Api/V1/Finance/FeeCalculationControllerTest.php +++ b/tests/Feature/Api/V1/Finance/FeeCalculationControllerTest.php @@ -74,9 +74,188 @@ class FeeCalculationControllerTest extends TestCase 'school_end_date', 'weeks_of_study', 'withdrawn_students', + 'students' => [ + '*' => [ + 'student_id', + 'grade', + 'grade_level', + 'fee_category', + 'tuition_fee', + 'withdrawal_date', + 'weeks_remaining', + 'refund_amount', + 'eligible', + 'reason', + ], + ], ], ]); $this->assertGreaterThan(0, (float) $response->json('refund.refund_amount')); + $this->assertGreaterThan(0, count($response->json('refund.students') ?? [])); + } + + public function test_tuition_breakdown_endpoint_returns_per_student_detail(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + + $this->seedConfig(); + $this->seedClassSection(); + + $response = $this->postJson('/api/v1/finance/fees/tuition-breakdown', [ + 'students' => [ + [ + 'student_id' => 1, + 'firstname' => 'Alpha', + 'lastname' => 'Last', + 'class_section_id' => 101, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 2, + 'firstname' => 'Beta', + 'lastname' => 'Last', + 'class_section_id' => 101, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ], + ]); + + $response->assertOk(); + $response->assertJsonPath('ok', true); + $response->assertJsonStructure([ + 'ok', + 'tuition' => [ + 'school_year', + 'family_total', + 'billable_count', + 'non_billable_count', + 'fees' => ['first_student_fee', 'second_student_fee', 'youth_fee'], + 'students' => [ + '*' => [ + 'student_id', + 'student_name', + 'grade', + 'grade_level', + 'enrollment_status', + 'admission_status', + 'fee_category', + 'tuition_fee', + 'discount_amount', + 'final_tuition_amount', + ], + ], + ], + ]); + + $this->assertSame(550.0, (float) $response->json('tuition.family_total')); + $this->assertSame(2, (int) $response->json('tuition.billable_count')); + } + + public function test_tuition_breakdown_endpoint_requires_authentication(): void + { + $response = $this->postJson('/api/v1/finance/fees/tuition-breakdown', [ + 'students' => [ + ['class_section_id' => 101], + ], + ]); + + $response->assertStatus(401); + } + + public function test_tuition_breakdown_endpoint_validates_payload(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + + $response = $this->postJson('/api/v1/finance/fees/tuition-breakdown', [ + 'students' => [], + ]); + + $response->assertStatus(422); + $response->assertJsonStructure(['message', 'errors']); + } + + public function test_family_balance_endpoint_returns_account_summary(): void + { + $user = $this->createUser(); + Sanctum::actingAs($user); + + $this->seedConfig(); + $this->seedClassSection(); + + DB::table('invoices')->insert([ + 'id' => 1, + 'parent_id' => 10, + 'invoice_number' => 'INV-1', + 'total_amount' => 500.00, + 'balance' => 0.00, + 'paid_amount' => 200.00, + 'has_discount' => 0, + 'issue_date' => '2025-01-05', + 'status' => 'paid', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + DB::table('payments')->insert([ + 'id' => 1, + 'parent_id' => 10, + 'invoice_id' => 1, + 'paid_amount' => 200.00, + 'total_amount' => 200.00, + 'balance' => 0.00, + 'number_of_installments' => 1, + 'payment_date' => '2025-01-10', + 'payment_method' => 'manual', + 'school_year' => '2025-2026', + 'status' => 'Paid', + ]); + + $response = $this->postJson('/api/v1/finance/fees/family-balance', [ + 'parent_id' => 10, + 'students' => [ + [ + 'student_id' => 1, + 'class_section_id' => 101, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ], + ]); + + $response->assertOk(); + $response->assertJsonPath('ok', true); + $response->assertJsonStructure([ + 'ok', + 'account' => [ + 'parent_id', + 'school_year', + 'charges' => ['tuition', 'extra_charges', 'event_charges', 'late_fees', 'total'], + 'credits' => ['discounts', 'total'], + 'payments', + 'refunds_applied', + 'remaining_balance', + 'account_credit', + 'students', + ], + ]); + $this->assertSame(350.0, (float) $response->json('account.charges.tuition')); + $this->assertSame(150.0, (float) $response->json('account.remaining_balance')); + } + + public function test_family_balance_endpoint_requires_authentication(): void + { + $response = $this->postJson('/api/v1/finance/fees/family-balance', [ + 'parent_id' => 10, + 'students' => [ + ['class_section_id' => 101], + ], + ]); + + $response->assertStatus(401); } public function test_tuition_total_endpoint_returns_total(): void diff --git a/tests/Feature/Api/V1/Promotions/ParentPromotionControllerTest.php b/tests/Feature/Api/V1/Promotions/ParentPromotionControllerTest.php new file mode 100644 index 00000000..6fbf199b --- /dev/null +++ b/tests/Feature/Api/V1/Promotions/ParentPromotionControllerTest.php @@ -0,0 +1,145 @@ +seedParent(); + $studentId = $this->seedStudent($parent->id); + $this->seedPromotionRecord($studentId, $parent->id); + + Sanctum::actingAs($parent); + $response = $this->getJson('/api/v1/parents/promotions'); + + $response->assertOk(); + $response->assertJsonPath('ok', true); + $response->assertJsonPath('records.0.parent_action_required', true); + $response->assertJsonPath('records.0.promoted_level', 'Grade 4'); + } + + public function test_parent_completes_full_enrollment_flow(): void + { + $parent = $this->seedParent(); + $studentId = $this->seedStudent($parent->id); + $promotionId = $this->seedPromotionRecord($studentId, $parent->id); + + Sanctum::actingAs($parent); + + // Start enrollment + $start = $this->postJson('/api/v1/parents/promotions/' . $promotionId . '/start'); + $start->assertOk(); + $start->assertJsonPath('data.promotion_status', StudentPromotionRecord::STATUS_ENROLLMENT_STARTED); + + // Complete the checklist incrementally + $update = $this->patchJson('/api/v1/parents/promotions/' . $promotionId . '/steps', [ + 'info_confirmed' => true, + 'documents_uploaded' => true, + 'agreement_accepted' => true, + ]); + $update->assertOk(); + $update->assertJsonPath('data.promotion_status', StudentPromotionRecord::STATUS_ENROLLMENT_STARTED); + + // Final step finalises promotion + $finish = $this->patchJson('/api/v1/parents/promotions/' . $promotionId . '/steps', [ + 'payment_completed' => true, + ]); + $finish->assertOk(); + $finish->assertJsonPath('data.promotion_status', StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED); + + $this->assertDatabaseHas('enrollments', [ + 'student_id' => $studentId, + 'school_year' => '2026-2027', + 'enrollment_status' => 'enrolled', + ]); + } + + public function test_parent_cannot_view_other_parents_promotion(): void + { + $parentA = $this->seedParent('A', 'a@example.com'); + $parentB = $this->seedParent('B', 'b@example.com'); + $studentId = $this->seedStudent($parentB->id); + $promotionId = $this->seedPromotionRecord($studentId, $parentB->id); + + Sanctum::actingAs($parentA); + $response = $this->getJson('/api/v1/parents/promotions/' . $promotionId); + $response->assertStatus(403); + } + + public function test_unauthenticated_request_is_unauthorized(): void + { + $response = $this->getJson('/api/v1/parents/promotions'); + $response->assertStatus(401); + } + + private function seedParent(string $name = 'Parent', string $email = 'parent@example.com'): User + { + DB::table('roles')->insertOrIgnore([ + ['id' => 2, 'name' => 'parent', 'slug' => 'parent', 'is_active' => 1], + ]); + + $userId = DB::table('users')->insertGetId([ + 'firstname' => $name, + 'lastname' => 'User', + 'cellphone' => '5550000000', + 'email' => $email, + 'address_street' => '1 Way', + 'city' => 'C', + 'state' => 'S', + 'zip' => '00000', + 'accept_school_policy' => 1, + 'password' => bcrypt('secret'), + 'user_type' => 'primary', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'status' => 'Active', + ]); + + DB::table('user_roles')->insert([ + 'user_id' => $userId, + 'role_id' => 2, + ]); + + return User::query()->findOrFail($userId); + } + + private function seedStudent(int $parentId): int + { + return (int) DB::table('students')->insertGetId([ + 'school_id' => 'S-1', + 'firstname' => 'Sara', + 'lastname' => 'Test', + 'parent_id' => $parentId, + 'year_of_registration' => '2025', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + } + + private function seedPromotionRecord(int $studentId, int $parentId): int + { + $record = StudentPromotionRecord::query()->create([ + 'student_id' => $studentId, + 'parent_id' => $parentId, + 'current_school_year' => '2025-2026', + 'next_school_year' => '2026-2027', + 'promotion_status' => StudentPromotionRecord::STATUS_AWAITING_PARENT, + 'enrollment_required' => true, + 'enrollment_status' => StudentPromotionRecord::ENROLLMENT_NOT_STARTED, + 'current_level_name' => 'Grade 3', + 'promoted_level_name' => 'Grade 4', + 'enrollment_deadline' => now()->addDays(30)->toDateString(), + ]); + return (int) $record->getKey(); + } +} diff --git a/tests/Unit/Services/Billing/BalanceCalculationServiceTest.php b/tests/Unit/Services/Billing/BalanceCalculationServiceTest.php new file mode 100644 index 00000000..11422592 --- /dev/null +++ b/tests/Unit/Services/Billing/BalanceCalculationServiceTest.php @@ -0,0 +1,238 @@ +seedFeeConfig(); + $this->seedClassSection(101, '2'); + $this->seedClassSection(102, '5'); + + $parentId = 10; + $invoiceId = $this->seedInvoice($parentId, 1000.00); + + DB::table('payments')->insert([ + 'parent_id' => $parentId, + 'invoice_id' => $invoiceId, + 'paid_amount' => 500.00, + 'total_amount' => 500.00, + 'balance' => 0.00, + 'number_of_installments' => 1, + 'payment_date' => '2025-01-10', + 'school_year' => '2025-2026', + 'status' => 'Paid', + ]); + + DB::table('discount_usages')->insert([ + 'voucher_id' => 1, + 'invoice_id' => $invoiceId, + 'parent_id' => $parentId, + 'discount_amount' => 80.00, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + DB::table('additional_charges')->insert([ + 'parent_id' => $parentId, + 'invoice_id' => $invoiceId, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Books', + 'amount' => 100.00, + 'status' => 'applied', + ]); + + DB::table('events')->insert([ + 'id' => 1, + 'event_name' => 'Field Trip', + 'amount' => 25.00, + 'expiration_date' => '2025-06-01', + ]); + + DB::table('event_charges')->insert([ + 'event_id' => 1, + 'parent_id' => $parentId, + 'student_id' => 2, + 'charged' => 50.00, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + DB::table('refunds')->insert([ + 'parent_id' => $parentId, + 'school_year' => '2025-2026', + 'invoice_id' => $invoiceId, + 'refund_amount' => 30.00, + 'refund_paid_amount' => 30.00, + 'status' => 'Paid', + 'semester' => 'Fall', + ]); + + $service = $this->makeService(); + + $result = $service->calculateFamilyAccount([ + [ + 'student_id' => 1, + 'class_section_id' => 101, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 2, + 'class_section_id' => 102, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ], $parentId); + + $this->assertSame($parentId, $result['parent_id']); + $this->assertSame(550.0, $result['charges']['tuition']); + $this->assertSame(100.0, $result['charges']['extra_charges']); + $this->assertSame(50.0, $result['charges']['event_charges']); + $this->assertSame(700.0, $result['charges']['total']); + $this->assertSame(500.0, $result['payments']); + $this->assertSame(80.0, $result['credits']['total']); + $this->assertSame(30.0, $result['refunds_applied']); + $this->assertSame(90.0, $result['remaining_balance']); + $this->assertSame(0.0, $result['account_credit']); + $this->assertCount(2, $result['students']); + } + + public function test_overpayment_records_account_credit(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(201, '3'); + + $parentId = 20; + $invoiceId = $this->seedInvoice($parentId, 500.00); + + DB::table('payments')->insert([ + 'parent_id' => $parentId, + 'invoice_id' => $invoiceId, + 'paid_amount' => 500.00, + 'total_amount' => 500.00, + 'balance' => 0.00, + 'number_of_installments' => 1, + 'payment_date' => '2025-01-10', + 'school_year' => '2025-2026', + 'status' => 'Paid', + ]); + + $service = $this->makeService(); + + $result = $service->calculateFamilyAccount([ + [ + 'student_id' => 5, + 'class_section_id' => 201, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ], $parentId); + + $this->assertSame(350.0, $result['charges']['tuition']); + $this->assertSame(0.0, $result['remaining_balance']); + $this->assertSame(150.0, $result['account_credit']); + } + + public function test_student_rows_include_event_charges(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(301, '4'); + + $parentId = 30; + + DB::table('events')->insert([ + 'id' => 2, + 'event_name' => 'Camp', + 'amount' => 40.00, + 'expiration_date' => '2025-06-01', + ]); + DB::table('event_charges')->insert([ + 'event_id' => 2, + 'parent_id' => $parentId, + 'student_id' => 7, + 'charged' => 40.00, + 'school_year' => '2025-2026', + ]); + + $service = $this->makeService(); + + $result = $service->calculateFamilyAccount([ + [ + 'student_id' => 7, + 'firstname' => 'Sam', + 'lastname' => 'Lee', + 'class_section_id' => 301, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ], $parentId); + + $student = $result['students'][0]; + $this->assertSame(7, $student['student_id']); + $this->assertSame(350.0, $student['tuition']); + $this->assertSame(40.0, $student['event_charges']); + $this->assertSame(390.0, $student['total_charges']); + } + + private function makeService(): BalanceCalculationService + { + $config = new FeeConfigService(); + $tuition = new TuitionCalculationService( + $config, + new FeeStudentFeeService(new FeeGradeService(), $config) + ); + + return new BalanceCalculationService($config, $tuition, new BillingTotalsService()); + } + + private function seedFeeConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'school_year', 'config_value' => '2025-2026'], + ['config_key' => 'first_student_fee', 'config_value' => '350'], + ['config_key' => 'second_student_fee', 'config_value' => '200'], + ['config_key' => 'youth_fee', 'config_value' => '180'], + ]); + } + + private function seedClassSection(int $sectionId, string $gradeName): void + { + DB::table('classSection')->insert([ + 'class_id' => $sectionId, + 'class_section_id' => $sectionId, + 'class_section_name' => $gradeName, + 'semester' => 'Fall', + 'school_year' => '2025-2026', + ]); + } + + private function seedInvoice(int $parentId, float $total): int + { + return (int) DB::table('invoices')->insertGetId([ + 'parent_id' => $parentId, + 'invoice_number' => 'INV-' . $parentId, + 'total_amount' => $total, + 'balance' => 0.00, + 'paid_amount' => 0.00, + 'issue_date' => '2025-01-01', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + } +} diff --git a/tests/Unit/Services/Billing/BillingTotalsServiceTest.php b/tests/Unit/Services/Billing/BillingTotalsServiceTest.php index 5b55939e..3fefc0ed 100644 --- a/tests/Unit/Services/Billing/BillingTotalsServiceTest.php +++ b/tests/Unit/Services/Billing/BillingTotalsServiceTest.php @@ -17,6 +17,7 @@ class BillingTotalsServiceTest extends TestCase 'id' => 1, 'event_name' => 'Field Trip', 'amount' => 25.00, + 'expiration_date' => '2025-06-01', ]); DB::table('event_charges')->insert([ @@ -58,4 +59,78 @@ class BillingTotalsServiceTest extends TestCase $this->assertSame(25.0, $eventSubtotal); $this->assertSame(10.0, $additionalSubtotal); } + + public function test_additional_subtotal_by_parent_sums_applied_charges(): void + { + DB::table('additional_charges')->insert([ + [ + 'parent_id' => 10, + 'invoice_id' => 99, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Uniform', + 'amount' => 40.00, + 'status' => 'applied', + ], + [ + 'parent_id' => 10, + 'invoice_id' => 99, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'deduct', + 'title' => 'Credit', + 'amount' => 10.00, + 'status' => 'applied', + ], + [ + 'parent_id' => 10, + 'invoice_id' => 99, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Pending', + 'amount' => 99.00, + 'status' => 'pending', + ], + ]); + + $service = new BillingTotalsService(); + + $this->assertSame(30.0, $service->additionalSubtotalByParent(10, '2025-2026')); + } + + public function test_event_subtotals_by_student_groups_amounts(): void + { + DB::table('events')->insert([ + 'id' => 1, + 'event_name' => 'Trip', + 'amount' => 20.00, + 'expiration_date' => '2025-06-01', + ]); + + DB::table('event_charges')->insert([ + [ + 'event_id' => 1, + 'parent_id' => 5, + 'student_id' => 1, + 'charged' => 20.00, + 'school_year' => '2025-2026', + ], + [ + 'event_id' => 1, + 'parent_id' => 5, + 'student_id' => 2, + 'charged' => 15.00, + 'school_year' => '2025-2026', + ], + ]); + + $service = new BillingTotalsService(); + $byStudent = $service->eventSubtotalsByStudent(5, '2025-2026'); + + $this->assertSame(20.0, $byStudent[1]); + $this->assertSame(15.0, $byStudent[2]); + $this->assertSame(35.0, $service->eventSubtotal(5, '2025-2026')); + } } diff --git a/tests/Unit/Services/Billing/ChargeServiceTest.php b/tests/Unit/Services/Billing/ChargeServiceTest.php new file mode 100644 index 00000000..6cb0c8f7 --- /dev/null +++ b/tests/Unit/Services/Billing/ChargeServiceTest.php @@ -0,0 +1,228 @@ +seedConfig(); + + DB::table('additional_charges')->insert([ + 'parent_id' => 10, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Books', + 'amount' => 25.00, + 'status' => 'pending', + ]); + + $service = $this->makeService(); + $result = $service->createExtraCharge([ + 'parent_id' => 10, + 'title' => 'Books', + 'amount' => 25, + 'charge_type' => 'add', + ]); + + $this->assertFalse($result['ok']); + $this->assertSame('duplicate_charge', $result['error']); + } + + public function test_create_event_charge_blocks_duplicate(): void + { + $this->seedConfig(); + + DB::table('event_charges')->insert([ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Field Trip', + 'participation' => 'yes', + 'charged' => 25.00, + 'amount' => 25.00, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + $service = $this->makeService(); + $result = $service->createEventCharge([ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Field Trip', + 'amount' => 25, + ]); + + $this->assertFalse($result['ok']); + $this->assertSame('duplicate_charge', $result['error']); + } + + public function test_create_event_charge_succeeds(): void + { + $this->seedConfig(); + + $service = $this->makeService(); + $result = $service->createEventCharge([ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Camp', + 'amount' => 40, + 'created_by' => 1, + ]); + + $this->assertTrue($result['ok']); + $this->assertDatabaseHas('event_charges', [ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Camp', + 'participation' => 'yes', + ]); + } + + public function test_cancel_event_charge_zeros_charge_and_creates_credit(): void + { + $this->seedConfig(); + + $chargeId = DB::table('event_charges')->insertGetId([ + 'parent_id' => 10, + 'student_id' => 1, + 'event_name' => 'Trip', + 'participation' => 'yes', + 'charged' => 30.00, + 'amount' => 30.00, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + $service = $this->makeService(); + $result = $service->cancelEventCharge((int) $chargeId, true); + + $this->assertTrue($result['ok']); + $this->assertSame('canceled', $result['cancellation_status']); + + $charge = EventCharges::query()->find($chargeId); + $this->assertSame('no', $charge->participation); + $this->assertSame(0.0, (float) $charge->charged); + + $this->assertDatabaseHas('additional_charges', [ + 'parent_id' => 10, + 'charge_type' => 'deduct', + 'status' => 'pending', + ]); + } + + public function test_apply_extra_charge_marks_applied(): void + { + $this->seedConfig(); + + $invoiceId = DB::table('invoices')->insertGetId([ + 'parent_id' => 10, + 'invoice_number' => 'INV-10', + 'total_amount' => 100.00, + 'balance' => 100.00, + 'paid_amount' => 0.00, + 'issue_date' => '2025-01-01', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + $chargeId = DB::table('additional_charges')->insertGetId([ + 'parent_id' => 10, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Lab fee', + 'amount' => 15.00, + 'status' => 'pending', + ]); + + $service = $this->makeService(); + $result = $service->applyExtraCharge((int) $chargeId, (int) $invoiceId); + + $this->assertTrue($result['ok']); + $charge = AdditionalCharge::query()->find($chargeId); + $this->assertSame('applied', $charge->status); + $this->assertSame($invoiceId, (int) $charge->invoice_id); + } + + public function test_list_for_parent_returns_both_charge_types(): void + { + $this->seedConfig(); + + DB::table('additional_charges')->insert([ + 'parent_id' => 10, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'charge_type' => 'add', + 'title' => 'Uniform', + 'amount' => 20.00, + 'status' => 'pending', + ]); + + DB::table('events')->insert([ + 'id' => 1, + 'event_name' => 'Trip', + 'amount' => 25.00, + 'expiration_date' => '2025-06-01', + ]); + + DB::table('event_charges')->insert([ + 'event_id' => 1, + 'parent_id' => 10, + 'student_id' => 1, + 'participation' => 'yes', + 'charged' => 25.00, + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + $service = $this->makeService(); + $list = $service->listForParent(10, '2025-2026'); + + $this->assertCount(1, $list['extra_charges']); + $this->assertCount(1, $list['event_charges']); + $this->assertSame('extra', $list['extra_charges'][0]['charge_type']); + $this->assertSame('event', $list['event_charges'][0]['charge_type']); + } + + private function makeService(): ChargeService + { + $invoiceGen = Mockery::mock(InvoiceGenerationService::class); + $invoiceGen->shouldReceive('generateInvoice')->andReturn(['ok' => true]); + + return new ChargeService( + app(ExtraChargesChargeService::class), + app(ExtraChargesInvoiceService::class), + app(ExtraChargesContextService::class), + $invoiceGen + ); + } + + private function seedConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'school_year', 'config_value' => '2025-2026'], + ['config_key' => 'semester', 'config_value' => 'Fall'], + ]); + } +} diff --git a/tests/Unit/Services/Fees/FeeRefundCalculatorServiceTest.php b/tests/Unit/Services/Fees/FeeRefundCalculatorServiceTest.php index 9c8c804e..3c7469a7 100644 --- a/tests/Unit/Services/Fees/FeeRefundCalculatorServiceTest.php +++ b/tests/Unit/Services/Fees/FeeRefundCalculatorServiceTest.php @@ -16,54 +16,12 @@ class FeeRefundCalculatorServiceTest extends TestCase public function test_calculate_refund_caps_at_total_paid(): void { - DB::table('configuration')->insert([ - ['config_key' => 'school_year', 'config_value' => '2025-2026'], - ['config_key' => 'refund_deadline', 'config_value' => '2025-02-01'], - ['config_key' => 'weeks_study', 'config_value' => '8'], - ['config_key' => 'last_school_day', 'config_value' => '2025-06-01'], - ['config_key' => 'first_student_fee', 'config_value' => '350'], - ['config_key' => 'second_student_fee', 'config_value' => '200'], - ['config_key' => 'youth_fee', 'config_value' => '180'], - ]); + $this->seedFeeConfig(); + $this->seedClassSection(101, '3'); - DB::table('classSection')->insert([ - 'id' => 1, - 'class_id' => 1, - 'class_section_id' => 101, - 'class_section_name' => '3', - 'semester' => 'Fall', - 'school_year' => '2025-2026', - ]); + $this->seedInvoiceAndPayment(99, 100.00); - DB::table('invoices')->insert([ - 'id' => 1, - 'parent_id' => 99, - 'invoice_number' => 'INV-1', - 'total_amount' => 100.00, - 'balance' => 0.00, - 'paid_amount' => 100.00, - 'issue_date' => '2025-01-01', - 'school_year' => '2025-2026', - 'semester' => 'Fall', - ]); - - DB::table('payments')->insert([ - 'id' => 1, - 'parent_id' => 99, - 'invoice_id' => 1, - 'paid_amount' => 100.00, - 'total_amount' => 100.00, - 'balance' => 0.00, - 'number_of_installments' => 1, - 'payment_date' => '2025-01-10', - 'school_year' => '2025-2026', - 'status' => 'Paid', - ]); - - $service = new FeeRefundCalculatorService( - new FeeConfigService(), - new FeeStudentFeeService(new FeeGradeService(), new FeeConfigService()) - ); + $service = $this->makeService(); $result = $service->calculateRefund([ [ @@ -76,5 +34,249 @@ class FeeRefundCalculatorServiceTest extends TestCase ], 99); $this->assertSame(100.0, $result['refund_amount']); + $this->assertSame(1, $result['withdrawn_students']); + $this->assertCount(1, $result['students']); + $this->assertTrue($result['students'][0]['eligible']); + $this->assertSame(350.0, $result['students'][0]['tuition_fee']); + } + + public function test_returns_zero_when_parent_has_no_payments(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(101, '3'); + + $service = $this->makeService(); + + $result = $service->calculateRefund([ + [ + 'student_id' => 1, + 'class_section_id' => 101, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + 'withdrawal_date' => '2025-01-15', + ], + ], 12345); + + $this->assertSame(0.0, $result['refund_amount']); + $this->assertSame(0, $result['withdrawn_students']); + $this->assertSame([], $result['students']); + } + + public function test_returns_zero_when_no_withdrawn_students(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(101, '3'); + $this->seedInvoiceAndPayment(50, 500.00); + + $service = $this->makeService(); + + $result = $service->calculateRefund([ + [ + 'student_id' => 1, + 'class_section_id' => 101, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ], 50); + + $this->assertSame(0.0, $result['refund_amount']); + $this->assertSame(0, $result['withdrawn_students']); + } + + /** + * Plan section 8 regression: each withdrawn student must carry the + * tuition fee that was assigned during fee calculation, otherwise the + * refund loop silently produces $0 for any student whose id does not + * round-trip through the lookup map. + */ + public function test_withdrawn_student_breakdown_carries_assigned_tuition_fee(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(201, '4'); + $this->seedClassSection(202, '5'); + $this->seedInvoiceAndPayment(77, 1000.00); + + $service = $this->makeService(); + + $result = $service->calculateRefund([ + [ + 'student_id' => 10, + 'class_section_id' => 201, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 11, + 'class_section_id' => 202, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + 'withdrawal_date' => '2025-01-15', + ], + ], 77); + + $this->assertCount(1, $result['students']); + $withdrawn = $result['students'][0]; + $this->assertSame(11, $withdrawn['student_id']); + // First regular = $350 (grade 4), additional = $200 (grade 5) -> the + // withdrawn 5th-grader is the additional regular student and must + // refund using $200, not $0 or a stale lookup value. + $this->assertSame(200.0, $withdrawn['tuition_fee']); + $this->assertSame('additional_regular', $withdrawn['fee_category']); + $this->assertGreaterThan(0, $withdrawn['refund_amount']); + $this->assertTrue($withdrawn['eligible']); + } + + public function test_multi_student_family_only_refunds_withdrawn_students(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(301, '2'); + $this->seedClassSection(302, '6'); + $this->seedClassSection(303, '10'); + $this->seedInvoiceAndPayment(88, 1000.00); + + $service = $this->makeService(); + + $result = $service->calculateRefund([ + [ + 'student_id' => 21, + 'class_section_id' => 301, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 22, + 'class_section_id' => 302, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + 'withdrawal_date' => '2025-01-15', + ], + [ + 'student_id' => 23, + 'class_section_id' => 303, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + 'withdrawal_date' => '2025-01-15', + ], + ], 88); + + $this->assertCount(2, $result['students']); + $this->assertSame(2, $result['withdrawn_students']); + + $byStudent = []; + foreach ($result['students'] as $row) { + $byStudent[$row['student_id']] = $row; + } + + $this->assertSame('additional_regular', $byStudent[22]['fee_category']); + $this->assertSame(200.0, $byStudent[22]['tuition_fee']); + + $this->assertSame('youth', $byStudent[23]['fee_category']); + $this->assertSame(180.0, $byStudent[23]['tuition_fee']); + + $sumPerStudent = round(array_sum(array_column($result['students'], 'refund_amount')), 2); + $this->assertSame($result['refund_amount'], $sumPerStudent); + } + + public function test_withdrawal_after_deadline_is_not_eligible(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(401, '3'); + $this->seedInvoiceAndPayment(33, 500.00); + + $service = $this->makeService(); + + $result = $service->calculateRefund([ + [ + 'student_id' => 1, + 'class_section_id' => 401, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + 'withdrawal_date' => '2025-03-01', + ], + ], 33); + + $this->assertSame(0.0, $result['refund_amount']); + $this->assertCount(1, $result['students']); + $this->assertFalse($result['students'][0]['eligible']); + $this->assertSame('after_refund_deadline', $result['students'][0]['reason']); + } + + public function test_missing_withdrawal_date_is_skipped_with_reason(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(501, '3'); + $this->seedInvoiceAndPayment(44, 500.00); + + $service = $this->makeService(); + + $result = $service->calculateRefund([ + [ + 'student_id' => 1, + 'class_section_id' => 501, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + ], + ], 44); + + $this->assertSame(0.0, $result['refund_amount']); + $this->assertSame('missing_withdrawal_date', $result['students'][0]['reason']); + } + + private function makeService(): FeeRefundCalculatorService + { + return new FeeRefundCalculatorService( + new FeeConfigService(), + new FeeStudentFeeService(new FeeGradeService(), new FeeConfigService()) + ); + } + + private function seedFeeConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'school_year', 'config_value' => '2025-2026'], + ['config_key' => 'refund_deadline', 'config_value' => '2025-02-01'], + ['config_key' => 'weeks_study', 'config_value' => '8'], + ['config_key' => 'last_school_day', 'config_value' => '2025-06-01'], + ['config_key' => 'first_student_fee', 'config_value' => '350'], + ['config_key' => 'second_student_fee', 'config_value' => '200'], + ['config_key' => 'youth_fee', 'config_value' => '180'], + ]); + } + + private function seedClassSection(int $sectionId, string $gradeName): void + { + DB::table('classSection')->insert([ + 'class_id' => $sectionId, + 'class_section_id' => $sectionId, + 'class_section_name' => $gradeName, + 'semester' => 'Fall', + 'school_year' => '2025-2026', + ]); + } + + private function seedInvoiceAndPayment(int $parentId, float $amount): void + { + $invoiceId = DB::table('invoices')->insertGetId([ + 'parent_id' => $parentId, + 'invoice_number' => 'INV-' . $parentId, + 'total_amount' => $amount, + 'balance' => 0.00, + 'paid_amount' => $amount, + 'issue_date' => '2025-01-01', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + DB::table('payments')->insert([ + 'parent_id' => $parentId, + 'invoice_id' => $invoiceId, + 'paid_amount' => $amount, + 'total_amount' => $amount, + 'balance' => 0.00, + 'number_of_installments' => 1, + 'payment_date' => '2025-01-10', + 'school_year' => '2025-2026', + 'status' => 'Paid', + ]); } } diff --git a/tests/Unit/Services/Fees/FeeStudentFeeServiceTest.php b/tests/Unit/Services/Fees/FeeStudentFeeServiceTest.php index 6b4a669e..ff59b8b6 100644 --- a/tests/Unit/Services/Fees/FeeStudentFeeServiceTest.php +++ b/tests/Unit/Services/Fees/FeeStudentFeeServiceTest.php @@ -15,32 +15,11 @@ class FeeStudentFeeServiceTest extends TestCase public function test_total_tuition_fee_applies_tiers_and_youth_fee(): void { - DB::table('configuration')->insert([ - ['config_key' => 'first_student_fee', 'config_value' => '350'], - ['config_key' => 'second_student_fee', 'config_value' => '200'], - ['config_key' => 'youth_fee', 'config_value' => '180'], - ]); + $this->seedFeeConfig(); + $this->seedClassSection(101, '3'); + $this->seedClassSection(102, '10'); - DB::table('classSection')->insert([ - [ - 'id' => 1, - 'class_id' => 1, - 'class_section_id' => 101, - 'class_section_name' => '3', - 'semester' => 'Fall', - 'school_year' => '2025-2026', - ], - [ - 'id' => 2, - 'class_id' => 2, - 'class_section_id' => 102, - 'class_section_name' => '10', - 'semester' => 'Fall', - 'school_year' => '2025-2026', - ], - ]); - - $service = new FeeStudentFeeService(new FeeGradeService(), new FeeConfigService()); + $service = $this->makeService(); $total = $service->totalTuitionFee([ ['class_section_id' => 101], @@ -49,4 +28,136 @@ class FeeStudentFeeServiceTest extends TestCase $this->assertSame(530.0, $total); } + + public function test_assign_fees_stores_tuition_fee_and_fee_category_on_each_student(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(101, '2'); + $this->seedClassSection(102, '5'); + $this->seedClassSection(103, '10'); + + $service = $this->makeService(); + + $assigned = $service->assignFees([ + ['student_id' => 1, 'class_section_id' => 101], + ['student_id' => 2, 'class_section_id' => 102], + ['student_id' => 3, 'class_section_id' => 103], + ]); + + $byId = []; + foreach ($assigned as $row) { + $byId[$row['student_id']] = $row; + } + + $this->assertSame(350.0, $byId[1]['tuition_fee']); + $this->assertSame('first_regular', $byId[1]['fee_category']); + + $this->assertSame(200.0, $byId[2]['tuition_fee']); + $this->assertSame('additional_regular', $byId[2]['fee_category']); + + $this->assertSame(180.0, $byId[3]['tuition_fee']); + $this->assertSame('youth', $byId[3]['fee_category']); + } + + public function test_calculate_breakdown_includes_billable_and_non_billable_students(): void + { + $this->seedFeeConfig(); + $this->seedClassSection(201, '3'); + $this->seedClassSection(202, '4'); + + $service = $this->makeService(); + + $breakdown = $service->calculateBreakdown([ + [ + 'student_id' => 1, + 'firstname' => 'Ada', + 'lastname' => 'L', + 'class_section_id' => 201, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 2, + 'firstname' => 'Bo', + 'lastname' => 'L', + 'class_section_id' => 202, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 3, + 'firstname' => 'Cy', + 'lastname' => 'L', + 'class_section_id' => 201, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'pending', + ], + ]); + + $this->assertSame(350.0, $breakdown['family_total']); + $this->assertSame(1, $breakdown['billable_count']); + $this->assertSame(2, $breakdown['non_billable_count']); + $this->assertCount(3, $breakdown['students']); + + $byId = []; + foreach ($breakdown['students'] as $row) { + $byId[$row['student_id']] = $row; + } + + $this->assertSame('first_regular', $byId[1]['fee_category']); + $this->assertSame(350.0, $byId[1]['tuition_fee']); + + $this->assertSame('not_billable', $byId[2]['fee_category']); + $this->assertSame(0.0, $byId[2]['tuition_fee']); + + $this->assertSame('not_billable', $byId[3]['fee_category']); + } + + public function test_is_billable_and_is_withdrawn_classifiers(): void + { + $service = $this->makeService(); + + $this->assertTrue($service->isBillable([ + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ])); + $this->assertTrue($service->isBillable([ + 'enrollment_status' => 'payment pending', + 'admission_status' => 'accepted', + ])); + $this->assertFalse($service->isBillable([ + 'enrollment_status' => 'enrolled', + 'admission_status' => 'pending', + ])); + + $this->assertTrue($service->isWithdrawn(['enrollment_status' => 'withdrawn'])); + $this->assertTrue($service->isWithdrawn(['enrollment_status' => 'refund pending'])); + $this->assertTrue($service->isWithdrawn(['enrollment_status' => 'withdraw under review'])); + $this->assertFalse($service->isWithdrawn(['enrollment_status' => 'enrolled'])); + } + + private function makeService(): FeeStudentFeeService + { + return new FeeStudentFeeService(new FeeGradeService(), new FeeConfigService()); + } + + private function seedFeeConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'first_student_fee', 'config_value' => '350'], + ['config_key' => 'second_student_fee', 'config_value' => '200'], + ['config_key' => 'youth_fee', 'config_value' => '180'], + ]); + } + + private function seedClassSection(int $sectionId, string $gradeName): void + { + DB::table('classSection')->insert([ + 'class_id' => $sectionId, + 'class_section_id' => $sectionId, + 'class_section_name' => $gradeName, + 'semester' => 'Fall', + 'school_year' => '2025-2026', + ]); + } } diff --git a/tests/Unit/Services/Fees/TuitionCalculationServiceTest.php b/tests/Unit/Services/Fees/TuitionCalculationServiceTest.php new file mode 100644 index 00000000..f9ecaf8d --- /dev/null +++ b/tests/Unit/Services/Fees/TuitionCalculationServiceTest.php @@ -0,0 +1,178 @@ +seedConfig(); + $this->seedClassSection(101, '2'); + $this->seedClassSection(102, '5'); + $this->seedClassSection(103, '11'); + + $service = $this->makeService(); + + $result = $service->calculate([ + [ + 'student_id' => 1, + 'firstname' => 'Anna', + 'lastname' => 'Doe', + 'class_section_id' => 101, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 2, + 'firstname' => 'Ben', + 'lastname' => 'Doe', + 'class_section_id' => 102, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 3, + 'firstname' => 'Cara', + 'lastname' => 'Doe', + 'class_section_id' => 103, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ]); + + $this->assertSame('2025-2026', $result['school_year']); + $this->assertSame(3, $result['billable_count']); + $this->assertSame(0, $result['non_billable_count']); + $this->assertSame(730.0, $result['family_total']); + + $byStudent = []; + foreach ($result['students'] as $row) { + $byStudent[$row['student_id']] = $row; + } + + $this->assertSame('first_regular', $byStudent[1]['fee_category']); + $this->assertSame(350.0, $byStudent[1]['tuition_fee']); + $this->assertSame('Anna Doe', $byStudent[1]['student_name']); + + $this->assertSame('additional_regular', $byStudent[2]['fee_category']); + $this->assertSame(200.0, $byStudent[2]['tuition_fee']); + + $this->assertSame('youth', $byStudent[3]['fee_category']); + $this->assertSame(180.0, $byStudent[3]['tuition_fee']); + } + + public function test_calculate_excludes_non_billable_students_from_family_total(): void + { + $this->seedConfig(); + $this->seedClassSection(201, '3'); + $this->seedClassSection(202, '4'); + + $service = $this->makeService(); + + $result = $service->calculate([ + [ + 'student_id' => 10, + 'class_section_id' => 201, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + [ + 'student_id' => 11, + 'class_section_id' => 202, + 'enrollment_status' => 'withdrawn', + 'admission_status' => 'accepted', + ], + ]); + + $this->assertSame(1, $result['billable_count']); + $this->assertSame(1, $result['non_billable_count']); + $this->assertSame(350.0, $result['family_total']); + + $byStudent = []; + foreach ($result['students'] as $row) { + $byStudent[$row['student_id']] = $row; + } + + $this->assertSame('not_billable', $byStudent[11]['fee_category']); + $this->assertSame(0.0, $byStudent[11]['tuition_fee']); + } + + public function test_calculate_applies_per_student_discount(): void + { + $this->seedConfig(); + $this->seedClassSection(301, '2'); + + $service = $this->makeService(); + + $result = $service->calculate([ + [ + 'student_id' => 99, + 'class_section_id' => 301, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + 'discount_amount' => 100.0, + ], + ]); + + $this->assertSame(250.0, $result['family_total']); + $this->assertSame(100.0, $result['students'][0]['discount_amount']); + $this->assertSame(250.0, $result['students'][0]['final_tuition_amount']); + } + + public function test_family_total_helper(): void + { + $this->seedConfig(); + $this->seedClassSection(401, '3'); + + $service = $this->makeService(); + + $this->assertSame(350.0, $service->familyTotal([ + [ + 'student_id' => 1, + 'class_section_id' => 401, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ], + ])); + } + + private function makeService(): TuitionCalculationService + { + $config = new FeeConfigService(); + return new TuitionCalculationService( + $config, + new FeeStudentFeeService(new FeeGradeService(), $config) + ); + } + + private function seedConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'school_year', 'config_value' => '2025-2026'], + ['config_key' => 'first_student_fee', 'config_value' => '350'], + ['config_key' => 'second_student_fee', 'config_value' => '200'], + ['config_key' => 'youth_fee', 'config_value' => '180'], + ]); + } + + private function seedClassSection(int $sectionId, string $gradeName): void + { + DB::table('classSection')->insert([ + 'class_id' => $sectionId, + 'class_section_id' => $sectionId, + 'class_section_name' => $gradeName, + 'semester' => 'Fall', + 'school_year' => '2025-2026', + ]); + } +} diff --git a/tests/Unit/Services/Payments/PaymentEventChargesServiceTest.php b/tests/Unit/Services/Payments/PaymentEventChargesServiceTest.php index c11f82ca..98cddfd6 100644 --- a/tests/Unit/Services/Payments/PaymentEventChargesServiceTest.php +++ b/tests/Unit/Services/Payments/PaymentEventChargesServiceTest.php @@ -72,7 +72,7 @@ class PaymentEventChargesServiceTest extends TestCase 'updated_by' => null, ]); - $service = new PaymentEventChargesService(); + $service = app(PaymentEventChargesService::class); $students = $service->getEnrolledStudents(10, '2025-2026'); $this->assertCount(1, $students); diff --git a/tests/Unit/Services/Promotions/LevelProgressionServiceTest.php b/tests/Unit/Services/Promotions/LevelProgressionServiceTest.php new file mode 100644 index 00000000..f20daddd --- /dev/null +++ b/tests/Unit/Services/Promotions/LevelProgressionServiceTest.php @@ -0,0 +1,86 @@ +seedDefaults(); + $this->assertGreaterThan(0, $created); + $this->assertSame($created, LevelProgression::query()->count()); + $this->assertDatabaseHas('level_progressions', [ + 'current_level_name' => 'Grade 3', + 'next_level_name' => 'Grade 4', + ]); + $this->assertDatabaseHas('level_progressions', [ + 'current_level_name' => 'Youth', + 'is_terminal' => 1, + ]); + } + + public function test_resolve_by_class_id_uses_mapping_when_present(): void + { + DB::table('classes')->insert([ + ['id' => 7, 'class_name' => 'Grade 3', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 0], + ['id' => 8, 'class_name' => 'Grade 4', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 0], + ]); + + $service = new LevelProgressionService(); + $service->seedDefaults(); + + $resolved = $service->resolveByCurrentClassId(7); + $this->assertNotNull($resolved); + $this->assertSame('Grade 3', $resolved['current_level_name']); + $this->assertSame('Grade 4', $resolved['next_level_name']); + $this->assertSame(8, $resolved['next_level_id']); + $this->assertFalse($resolved['is_terminal']); + } + + public function test_resolve_falls_back_to_class_id_plus_one_when_no_mapping(): void + { + DB::table('classes')->insert([ + ['id' => 100, 'class_name' => 'Custom A', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 0], + ['id' => 101, 'class_name' => 'Custom B', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 0], + ]); + + $service = new LevelProgressionService(); + $resolved = $service->resolveByCurrentClassId(100); + + $this->assertNotNull($resolved); + $this->assertSame('Custom A', $resolved['current_level_name']); + $this->assertSame('Custom B', $resolved['next_level_name']); + $this->assertSame(101, $resolved['next_level_id']); + } + + public function test_upsert_mapping_updates_existing_row(): void + { + $service = new LevelProgressionService(); + $service->upsertMapping([ + 'current_level_name' => 'Grade 5', + 'next_level_name' => 'Grade 6', + 'order_index' => 70, + ]); + $service->upsertMapping([ + 'current_level_name' => 'Grade 5', + 'next_level_name' => 'Grade 6 (Updated)', + 'order_index' => 75, + ]); + + $this->assertDatabaseHas('level_progressions', [ + 'current_level_name' => 'Grade 5', + 'next_level_name' => 'Grade 6 (Updated)', + 'order_index' => 75, + ]); + $this->assertSame(1, LevelProgression::query()->where('current_level_name', 'Grade 5')->count()); + } +} diff --git a/tests/Unit/Services/Promotions/PromotionEligibilityServiceTest.php b/tests/Unit/Services/Promotions/PromotionEligibilityServiceTest.php new file mode 100644 index 00000000..ea0c1e05 --- /dev/null +++ b/tests/Unit/Services/Promotions/PromotionEligibilityServiceTest.php @@ -0,0 +1,169 @@ +seedConfig(); + $studentId = $this->seedStudent(); + $this->seedClassChain(); + $this->seedAssignment($studentId, 701, '2025-2026'); + $this->seedScores($studentId, '2025-2026', 80.0, 75.0); + + $service = $this->makeService(); + $record = $service->evaluateStudent($studentId, '2025-2026', 1); + + $this->assertNotNull($record); + $this->assertSame(StudentPromotionRecord::STATUS_AWAITING_PARENT, $record->promotion_status); + $this->assertTrue((bool) $record->passed_current_level); + $this->assertSame(77.5, (float) $record->final_average); + $this->assertSame('Grade 3', $record->current_level_name); + $this->assertSame('Grade 4', $record->promoted_level_name); + $this->assertSame('2026-2027', $record->next_school_year); + } + + public function test_failing_student_becomes_repeated(): void + { + $this->seedConfig(); + $studentId = $this->seedStudent(); + $this->seedClassChain(); + $this->seedAssignment($studentId, 701, '2025-2026'); + $this->seedScores($studentId, '2025-2026', 50.0, 55.0); + + $service = $this->makeService(); + $record = $service->evaluateStudent($studentId, '2025-2026', 1); + + $this->assertNotNull($record); + $this->assertSame(StudentPromotionRecord::STATUS_REPEATED, $record->promotion_status); + $this->assertFalse((bool) $record->passed_current_level); + } + + public function test_missing_scores_marks_on_hold(): void + { + $this->seedConfig(); + $studentId = $this->seedStudent(); + $this->seedClassChain(); + $this->seedAssignment($studentId, 701, '2025-2026'); + + $service = $this->makeService(); + $record = $service->evaluateStudent($studentId, '2025-2026', 1); + + $this->assertNotNull($record); + $this->assertSame(StudentPromotionRecord::STATUS_ON_HOLD, $record->promotion_status); + $this->assertNull($record->passed_current_level); + } + + public function test_terminal_level_is_graduated(): void + { + $this->seedConfig(); + $studentId = $this->seedStudent(); + $this->seedClassChain(); + $this->seedAssignment($studentId, 901, '2025-2026'); + $this->seedScores($studentId, '2025-2026', 90.0, 90.0); + + // Mark Youth as terminal + \App\Models\LevelProgression::query()->where('current_level_name', 'Youth')->update(['is_terminal' => 1]); + + $service = $this->makeService(); + $record = $service->evaluateStudent($studentId, '2025-2026', 1); + + $this->assertNotNull($record); + $this->assertSame(StudentPromotionRecord::STATUS_GRADUATED, $record->promotion_status); + } + + public function test_audit_log_records_status_changes(): void + { + $this->seedConfig(); + $studentId = $this->seedStudent(); + $this->seedClassChain(); + $this->seedAssignment($studentId, 701, '2025-2026'); + $this->seedScores($studentId, '2025-2026', 80.0, 80.0); + + $service = $this->makeService(); + $service->evaluateStudent($studentId, '2025-2026', 99); + + $this->assertDatabaseHas('promotion_audit_log', [ + 'student_id' => $studentId, + 'action_type' => 'eligibility_evaluated', + 'user_id' => 99, + ]); + $this->assertDatabaseHas('promotion_audit_log', [ + 'student_id' => $studentId, + 'action_type' => 'record_created', + ]); + } + + private function makeService(): PromotionEligibilityService + { + $progression = new LevelProgressionService(); + $audit = new PromotionAuditService(); + $status = new PromotionStatusService($audit); + return new PromotionEligibilityService($progression, $status, $audit); + } + + private function seedConfig(): void + { + DB::table('configuration')->insert([ + ['config_key' => 'school_year', 'config_value' => '2025-2026'], + ['config_key' => 'semester', 'config_value' => 'Fall'], + ]); + } + + private function seedStudent(int $parentId = 5): int + { + return DB::table('students')->insertGetId([ + 'school_id' => 'S-100', + 'firstname' => 'Sara', + 'lastname' => 'Test', + 'parent_id' => $parentId, + 'year_of_registration' => '2025', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + } + + private function seedClassChain(): void + { + DB::table('classes')->insert([ + ['id' => 7, 'class_name' => 'Grade 3', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 30], + ['id' => 8, 'class_name' => 'Grade 4', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 30], + ['id' => 13, 'class_name' => 'Youth', 'school_year' => '2025-2026', 'semester' => 'Fall', 'capacity' => 30], + ]); + DB::table('classSection')->insert([ + ['class_id' => 7, 'class_section_id' => 701, 'class_section_name' => '3A'], + ['class_id' => 13, 'class_section_id' => 901, 'class_section_name' => 'Youth A'], + ]); + } + + private function seedAssignment(int $studentId, int $classSectionId, string $schoolYear): void + { + DB::table('student_class')->insert([ + 'student_id' => $studentId, + 'class_section_id' => $classSectionId, + 'school_year' => $schoolYear, + 'semester' => 'Fall', + 'is_event_only' => 0, + ]); + } + + private function seedScores(int $studentId, string $schoolYear, float $fall, float $spring): void + { + DB::table('semester_scores')->insert([ + ['student_id' => $studentId, 'class_section_id' => 0, 'school_year' => $schoolYear, 'semester' => 'fall', 'semester_score' => $fall], + ['student_id' => $studentId, 'class_section_id' => 0, 'school_year' => $schoolYear, 'semester' => 'spring', 'semester_score' => $spring], + ]); + } +} diff --git a/tests/Unit/Services/Promotions/PromotionEnrollmentServiceTest.php b/tests/Unit/Services/Promotions/PromotionEnrollmentServiceTest.php new file mode 100644 index 00000000..efa98d9c --- /dev/null +++ b/tests/Unit/Services/Promotions/PromotionEnrollmentServiceTest.php @@ -0,0 +1,146 @@ +bootstrap(); + + $service->updateSteps($record, $parentId, [ + 'info_confirmed' => true, + 'documents_uploaded' => true, + 'agreement_accepted' => true, + ], $parentId); + + $service->updateSteps($record, $parentId, [ + 'payment_completed' => true, + ], $parentId); + + $record->refresh(); + $this->assertSame(StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, $record->promotion_status); + $this->assertSame(StudentPromotionRecord::ENROLLMENT_COMPLETED, $record->enrollment_status); + $this->assertNotNull($record->promotion_finalized_at); + $this->assertDatabaseHas('enrollments', [ + 'student_id' => $record->student_id, + 'school_year' => $record->next_school_year, + 'enrollment_status' => 'enrolled', + 'admission_status' => 'accepted', + ]); + $this->assertDatabaseHas('promotion_audit_log', [ + 'promotion_id' => $record->getKey(), + 'action_type' => 'promotion_finalized', + ]); + } + + public function test_partial_checklist_keeps_status_in_progress(): void + { + [$record, $service, $parentId] = $this->bootstrap(); + + $service->updateSteps($record, $parentId, [ + 'info_confirmed' => true, + 'documents_uploaded' => true, + ], $parentId); + + $record->refresh(); + $this->assertSame(StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, $record->promotion_status); + $this->assertSame(StudentPromotionRecord::ENROLLMENT_IN_PROGRESS, $record->enrollment_status); + $this->assertNull($record->promotion_finalized_at); + } + + public function test_submit_requires_complete_checklist(): void + { + [$record, $service, $parentId] = $this->bootstrap(); + + $service->updateSteps($record, $parentId, [ + 'info_confirmed' => true, + ], $parentId); + + $this->expectException(RuntimeException::class); + $service->submitEnrollment($record->refresh(), $parentId, $parentId); + } + + public function test_other_parent_cannot_act_on_record(): void + { + [$record, $service] = $this->bootstrap(); + + $this->expectException(RuntimeException::class); + $service->startEnrollment($record, 9999, 9999); + } + + public function test_expired_records_become_not_enrolled(): void + { + [$record, $service] = $this->bootstrap(); + $record->enrollment_deadline = now()->subDays(2)->toDateString(); + $record->save(); + + $result = $service->markExpiredDeadlines(CarbonImmutable::now(), 99); + + $this->assertSame(1, $result['expired']); + $record->refresh(); + $this->assertSame(StudentPromotionRecord::STATUS_NOT_ENROLLED, $record->promotion_status); + $this->assertSame(StudentPromotionRecord::ENROLLMENT_EXPIRED, $record->enrollment_status); + } + + /** + * @return array{0:StudentPromotionRecord, 1:PromotionEnrollmentService, 2:int} + */ + private function bootstrap(): array + { + $audit = new PromotionAuditService(); + $service = new PromotionEnrollmentService(new PromotionStatusService($audit), $audit); + + $parentId = (int) DB::table('users')->insertGetId([ + 'firstname' => 'Parent', + 'lastname' => 'One', + 'email' => 'parent@example.com', + 'cellphone' => '5551234567', + 'address_street' => '1 Way', + 'city' => 'C', + 'state' => 'S', + 'zip' => '00000', + 'accept_school_policy' => 1, + 'password' => bcrypt('x'), + 'school_year' => '2025-2026', + 'semester' => 'Fall', + 'status' => 'Active', + ]); + + $studentId = (int) DB::table('students')->insertGetId([ + 'school_id' => 'S-1', + 'firstname' => 'Sara', + 'lastname' => 'Test', + 'parent_id' => $parentId, + 'year_of_registration' => '2025', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + $record = StudentPromotionRecord::query()->create([ + 'student_id' => $studentId, + 'parent_id' => $parentId, + 'current_school_year' => '2025-2026', + 'next_school_year' => '2026-2027', + 'promotion_status' => StudentPromotionRecord::STATUS_AWAITING_PARENT, + 'enrollment_required' => true, + 'enrollment_status' => StudentPromotionRecord::ENROLLMENT_NOT_STARTED, + 'promoted_level_name' => 'Grade 4', + 'enrollment_deadline' => now()->addDays(30)->toDateString(), + ]); + + return [$record, $service, $parentId]; + } +} diff --git a/tests/Unit/Services/Promotions/PromotionStatusServiceTest.php b/tests/Unit/Services/Promotions/PromotionStatusServiceTest.php new file mode 100644 index 00000000..c4e157f6 --- /dev/null +++ b/tests/Unit/Services/Promotions/PromotionStatusServiceTest.php @@ -0,0 +1,110 @@ +makeRecord(StudentPromotionRecord::STATUS_AWAITING_PARENT); + $service = $this->makeService(); + + $updated = $service->transition( + $record, + StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + 42, + 'parent began enrollment' + ); + + $this->assertSame(StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, $updated->promotion_status); + $this->assertDatabaseHas('promotion_audit_log', [ + 'promotion_id' => $record->getKey(), + 'action_type' => 'status_changed', + 'old_value' => StudentPromotionRecord::STATUS_AWAITING_PARENT, + 'new_value' => StudentPromotionRecord::STATUS_ENROLLMENT_STARTED, + 'user_id' => 42, + ]); + } + + public function test_disallowed_transition_throws(): void + { + $record = $this->makeRecord(StudentPromotionRecord::STATUS_NOT_REVIEWED); + $service = $this->makeService(); + + $this->expectException(RuntimeException::class); + $service->transition($record, StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, 1); + } + + public function test_force_status_bypasses_transition_map(): void + { + $record = $this->makeRecord(StudentPromotionRecord::STATUS_NOT_REVIEWED); + $service = $this->makeService(); + + $updated = $service->forceStatus($record, StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, 7, 'manual fix'); + + $this->assertSame(StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, $updated->promotion_status); + $this->assertDatabaseHas('promotion_audit_log', [ + 'promotion_id' => $record->getKey(), + 'action_type' => 'manual_override', + 'field' => 'promotion_status', + 'old_value' => StudentPromotionRecord::STATUS_NOT_REVIEWED, + 'new_value' => StudentPromotionRecord::STATUS_PROMOTED_AND_ENROLLED, + ]); + } + + public function test_no_op_transition_returns_record_unchanged(): void + { + $record = $this->makeRecord(StudentPromotionRecord::STATUS_AWAITING_PARENT); + $service = $this->makeService(); + + $updated = $service->transition( + $record, + StudentPromotionRecord::STATUS_AWAITING_PARENT, + 1 + ); + + $this->assertSame(StudentPromotionRecord::STATUS_AWAITING_PARENT, $updated->promotion_status); + $this->assertDatabaseMissing('promotion_audit_log', [ + 'promotion_id' => $record->getKey(), + 'action_type' => 'status_changed', + ]); + } + + private function makeService(): PromotionStatusService + { + return new PromotionStatusService(new PromotionAuditService()); + } + + private function makeRecord(string $status): StudentPromotionRecord + { + $studentId = DB::table('students')->insertGetId([ + 'school_id' => 'S-1', + 'firstname' => 'Test', + 'lastname' => 'Student', + 'parent_id' => 1, + 'year_of_registration' => '2025', + 'school_year' => '2025-2026', + 'semester' => 'Fall', + ]); + + return StudentPromotionRecord::query()->create([ + 'student_id' => $studentId, + 'parent_id' => 1, + 'current_school_year' => '2025-2026', + 'next_school_year' => '2026-2027', + 'promotion_status' => $status, + 'enrollment_required' => true, + 'enrollment_status' => StudentPromotionRecord::ENROLLMENT_NOT_STARTED, + ]); + } +}

Z=H5FC`lBbNR=Mec}T=|69S}=?zu|lj6cf{-% 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%0Dug@#V?G@_=mIUha224LBnX2 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 qz9%*1jmbVnPgGxGxhMdt3H-WRUI53 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 literal 0 HcmV?d00001 diff --git a/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8_phase9.zip b/docs/modular_plans/laravel_school_context_phase1_phase2_phase3_phase4_phase5_phase6_phase7_phase8_phase9.zip new file mode 100644 index 0000000000000000000000000000000000000000..5d64cd919b4ebc327ccfdf9f1859033c3e568aef GIT binary patch literal 456640 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