remove codeigniter

This commit is contained in:
root
2026-06-04 02:41:08 -04:00
parent 4e33882ac7
commit b4e6ac03c5
180 changed files with 457 additions and 2186 deletions
+3 -4
View File
@@ -5,7 +5,7 @@
- **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
- Validation helper compatible with legacy-style rules
- Lightweight pagination helper for arrays/query builders
- Current-user resolution helpers (id + role list)
@@ -18,14 +18,14 @@
### Request normalization
- Stores the underlying Laravel request as `laravelRequest`.
- Wraps it in `CiRequestAdapter` as `$this->request` for compatibility patterns.
- Wraps it in `request adapter` 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()`.
- Normalizes legacy-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.
@@ -63,4 +63,3 @@
- `getCurrentUser()`:
- No auth → `null`
- Role query failure → returns user with empty roles and logs error
+13 -13
View File
@@ -61,7 +61,7 @@ These are not accusations; they are where bugs usually crawl out wearing a tiny
- **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.
- **legacy compatibility surface:** 41 files, 62 matches.
- **Queued or dispatched work:** 7 files, 8 matches.
- **Cache-dependent behavior:** 5 files, 12 matches.
@@ -123,7 +123,7 @@ Review priority should follow blast radius: auth, finance, payments, attendance,
- 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.
- Document legacy compatibility areas explicitly, especially legacy adapters and helper shims.
- Add API examples for primary user flows: login, role switch, parent dashboard, attendance submission, invoice payment, grading submission.
@@ -179,7 +179,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**Priority:** P2/P3 Feature hardening
**Detected surface:** 7 controllers, 0 services, 0 requests, 0 resources.
**Controllers:** BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
**Controllers:** BaseApiController, request adapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
**Plan:**
- Confirm all inputs are validated through FormRequest classes.
- Confirm all reads and writes are authorized.
@@ -248,7 +248,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**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
**Services:** RegistrationCaptchaService, PermissionCheckService, ApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService
**Requests:** RegisterRequest, SetRoleSessionRequest, LoginSessionRequest
**Resources:** RegisterResource
**Plan:**
@@ -420,7 +420,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**Priority:** P2/P3 Feature hardening
**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources.
**Controllers:** BaseApiController, CiRequestAdapter
**Controllers:** BaseApiController, request adapter
**Plan:**
- Confirm config reads/writes are permissioned and validated.
- Add health/config smoke tests.
@@ -1249,7 +1249,7 @@ A module is not considered done until all of this is true:
## 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
- **ApiRoot:** 7 controllers. BaseApiController, request adapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
- **Assignment:** 1 controllers. AssignmentApiController
- **Attendance:** 6 controllers. AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController
- **AttendanceTracking:** 1 controllers. AttendanceTrackingController
@@ -1262,7 +1262,7 @@ A module is not considered done until all of this is true:
- **Classes:** 1 controllers. ClassController
- **Communication:** 1 controllers. CommunicationController
- **CompetitionScores:** 1 controllers. CompetitionScoresController
- **Core:** 2 controllers. BaseApiController, CiRequestAdapter
- **Core:** 2 controllers. BaseApiController, request adapter
- **Discounts:** 1 controllers. DiscountController
- **Documentation:** 2 controllers. ApiDocsAdminController, DocsCatalogController
- **Email:** 3 controllers. BroadcastEmailController, EmailController, EmailExtractorController
@@ -1300,7 +1300,7 @@ A module is not considered done until all of this is true:
- **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
- **Auth:** 9 services, 870 LOC. RegistrationCaptchaService, PermissionCheckService, ApiRegistrationService, 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
@@ -1599,7 +1599,7 @@ A module is not considered done until all of this is true:
- `app/Services/Parents/ParentAttendanceReportService.php`: 4 matches
- `app/Config/Database.php`: 3 matches
- `app/Helpers/ci_helpers.php`: 3 matches
- `app/Helpers/app_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
@@ -1607,14 +1607,14 @@ A module is not considered done until all of this is true:
- `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/Auth/ApiRegistrationService.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/request adapter.php`: 1 matches
- `app/Http/Controllers/Api/Core/request adapter.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
@@ -1625,7 +1625,7 @@ A module is not considered done until all of this is true:
- `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/database compatibility layer.php`: 1 matches
- `app/Models/User.php`: 1 matches
- `app/Services/Admin/CompetitionWinners/CompetitionWinnersDomain.php`: 1 matches
- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches
+14 -14
View File
@@ -128,7 +128,7 @@ These are not accusations; they are where bugs usually crawl out wearing a tiny
- **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.
- **legacy compatibility surface:** 41 files, 62 matches.
- **Queued or dispatched work:** 7 files, 8 matches.
- **Cache-dependent behavior:** 5 files, 12 matches.
@@ -195,7 +195,7 @@ Review priority should follow blast radius: auth, finance, payments, attendance,
- 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.
- Document legacy compatibility areas explicitly, especially legacy adapters and helper shims.
- Add API examples for primary user flows: login, role switch, parent dashboard, attendance submission, invoice payment, grading submission.
@@ -251,12 +251,12 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**Priority:** P2/P3 Feature hardening
**Detected surface:** 7 controllers, 0 services, 0 requests, 0 resources.
**Controllers:** BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
**Controllers:** BaseApiController, request adapter, 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.
- Define whether `BaseApiController`, `request adapter`, 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.
@@ -332,7 +332,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**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
**Services:** RegistrationCaptchaService, PermissionCheckService, ApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService
**Requests:** RegisterRequest, SetRoleSessionRequest, LoginSessionRequest
**Resources:** RegisterResource
**Plan:**
@@ -504,7 +504,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**Priority:** P2/P3 Feature hardening
**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources.
**Controllers:** BaseApiController, CiRequestAdapter
**Controllers:** BaseApiController, request adapter
**Plan:**
- Confirm config reads/writes are permissioned and validated.
- Add health/config smoke tests.
@@ -1370,7 +1370,7 @@ A module is not considered done until all of this is true:
## 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
- **ApiRoot:** 7 controllers. BaseApiController, request adapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
- **Assignment:** 1 controllers. AssignmentApiController
- **Attendance:** 6 controllers. AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController
- **AttendanceTracking:** 1 controllers. AttendanceTrackingController
@@ -1383,7 +1383,7 @@ A module is not considered done until all of this is true:
- **Classes:** 1 controllers. ClassController
- **Communication:** 1 controllers. CommunicationController
- **CompetitionScores:** 1 controllers. CompetitionScoresController
- **Core:** 2 controllers. BaseApiController, CiRequestAdapter
- **Core:** 2 controllers. BaseApiController, request adapter
- **Discounts:** 1 controllers. DiscountController
- **Documentation:** 2 controllers. ApiDocsAdminController, DocsCatalogController
- **Email:** 3 controllers. BroadcastEmailController, EmailController, EmailExtractorController
@@ -1421,7 +1421,7 @@ A module is not considered done until all of this is true:
- **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
- **Auth:** 9 services, 870 LOC. RegistrationCaptchaService, PermissionCheckService, ApiRegistrationService, 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
@@ -1862,7 +1862,7 @@ These tickets are the plans mandatory implementation layer. Each one should b
- `app/Services/Parents/ParentAttendanceReportService.php`: 4 matches
- `app/Config/Database.php`: 3 matches
- `app/Helpers/ci_helpers.php`: 3 matches
- `app/Helpers/app_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
@@ -1870,14 +1870,14 @@ These tickets are the plans mandatory implementation layer. Each one should b
- `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/Auth/ApiRegistrationService.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/request adapter.php`: 1 matches
- `app/Http/Controllers/Api/Core/request adapter.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
@@ -1888,7 +1888,7 @@ These tickets are the plans mandatory implementation layer. Each one should b
- `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/database compatibility layer.php`: 1 matches
- `app/Models/User.php`: 1 matches
- `app/Services/Admin/CompetitionWinners/CompetitionWinnersDomain.php`: 1 matches
- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches
+1 -1
View File
@@ -373,7 +373,7 @@ Generated from the uploaded `Api(1).zip` controller tree. This is a controller-b
**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`
**Detected dependencies:** Services: `ApiRegistrationService`, `RegistrationCaptchaService`, `RegistrationService` | Resources: `RegisterResource`
**Plan**
- Define endpoint contract for each public method: request fields, response resource, status codes, and failure shape.
@@ -302,7 +302,7 @@ These are not accusations; they are where bugs usually crawl out wearing a tiny
- **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.
- **legacy compatibility surface:** 41 files, 62 matches.
- **Queued or dispatched work:** 7 files, 8 matches.
- **Cache-dependent behavior:** 5 files, 12 matches.
@@ -369,7 +369,7 @@ Review priority should follow blast radius: auth, finance, payments, attendance,
- 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.
- Document legacy compatibility areas explicitly, especially legacy adapters and helper shims.
- Add API examples for primary user flows: login, role switch, parent dashboard, attendance submission, invoice payment, grading submission.
@@ -578,12 +578,12 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**Priority:** P2/P3 Feature hardening
**Detected surface:** 7 controllers, 0 services, 0 requests, 0 resources.
**Controllers:** BaseApiController, CiRequestAdapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
**Controllers:** BaseApiController, request adapter, 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.
- Define whether `BaseApiController`, `request adapter`, 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.
@@ -659,7 +659,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**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
**Services:** RegistrationCaptchaService, PermissionCheckService, ApiRegistrationService, RegistrationService, ApiLoginSecurityService, AuthSessionService, UserRoleService, PasswordResetCleanupService, RegistrationFormatterService
**Requests:** RegisterRequest, SetRoleSessionRequest, LoginSessionRequest
**Resources:** RegisterResource
**Plan:**
@@ -831,7 +831,7 @@ Each module gets the same discipline: define ownership, confirm validation, conf
**Priority:** P2/P3 Feature hardening
**Detected surface:** 2 controllers, 0 services, 0 requests, 0 resources.
**Controllers:** BaseApiController, CiRequestAdapter
**Controllers:** BaseApiController, request adapter
**Plan:**
- Confirm config reads/writes are permissioned and validated.
- Add health/config smoke tests.
@@ -1697,7 +1697,7 @@ A module is not considered done until all of this is true:
## 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
- **ApiRoot:** 7 controllers. BaseApiController, request adapter, RolePermissionController, RoleSwitcherController, ScannerController, StatsController, UserController
- **Assignment:** 1 controllers. AssignmentApiController
- **Attendance:** 6 controllers. AdminAttendanceApiController, AttendanceCommentTemplateController, EarlyDismissalsController, LateSlipLogsController, StaffAttendanceApiController, TeacherAttendanceApiController
- **AttendanceTracking:** 1 controllers. AttendanceTrackingController
@@ -1710,7 +1710,7 @@ A module is not considered done until all of this is true:
- **Classes:** 1 controllers. ClassController
- **Communication:** 1 controllers. CommunicationController
- **CompetitionScores:** 1 controllers. CompetitionScoresController
- **Core:** 2 controllers. BaseApiController, CiRequestAdapter
- **Core:** 2 controllers. BaseApiController, request adapter
- **Discounts:** 1 controllers. DiscountController
- **Documentation:** 2 controllers. ApiDocsAdminController, DocsCatalogController
- **Email:** 3 controllers. BroadcastEmailController, EmailController, EmailExtractorController
@@ -1748,7 +1748,7 @@ A module is not considered done until all of this is true:
- **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
- **Auth:** 9 services, 870 LOC. RegistrationCaptchaService, PermissionCheckService, ApiRegistrationService, 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
@@ -2189,7 +2189,7 @@ These tickets are the plans mandatory implementation layer. Each one should b
- `app/Services/Parents/ParentAttendanceReportService.php`: 4 matches
- `app/Config/Database.php`: 3 matches
- `app/Helpers/ci_helpers.php`: 3 matches
- `app/Helpers/app_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
@@ -2197,14 +2197,14 @@ These tickets are the plans mandatory implementation layer. Each one should b
- `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/Auth/ApiRegistrationService.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/request adapter.php`: 1 matches
- `app/Http/Controllers/Api/Core/request adapter.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
@@ -2215,7 +2215,7 @@ These tickets are the plans mandatory implementation layer. Each one should b
- `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/database compatibility layer.php`: 1 matches
- `app/Models/User.php`: 1 matches
- `app/Services/Admin/CompetitionWinners/CompetitionWinnersDomain.php`: 1 matches
- `app/Services/Attendance/StaffAttendanceService.php`: 1 matches