service->getPendingViolations( $request->query('school_year'), $request->query('semester') ); return response()->json([ 'success' => true, 'data' => $result, ]); } public function notifiedViolations(Request $request): JsonResponse { $result = $this->service->getNotifiedViolations( $request->query('school_year'), $request->query('semester') ); return response()->json([ 'success' => true, 'data' => $result, ]); } public function studentCase(int $studentId, Request $request): JsonResponse { $result = $this->service->getStudentCase( $studentId, $request->query('code'), $request->query('incident_date'), filter_var($request->query('include_notified'), FILTER_VALIDATE_BOOL) === true, filter_var($request->query('pending_only'), FILTER_VALIDATE_BOOL) === true, $request->query('school_year'), $request->query('semester'), ); return response()->json( $result, $result['status'] ?? 200 ); } public function record(RecordAttendanceTrackingRequest $request): JsonResponse { $result = $this->service->record($request->validated()); return response()->json( $result, $result['status'] ?? 200 ); } public function sendAutoEmails(Request $request): JsonResponse { $result = $this->service->sendAutoEmails($request->input('variant')); return response()->json($result); } public function compose(ComposeAttendanceEmailRequest $request): JsonResponse { $result = $this->service->compose( (int) $request->validated('student_id'), (string) $request->validated('code', 'ABS_1'), (string) $request->validated('variant', 'default'), $request->validated('incident_date'), ); return response()->json( $result, $result['status'] ?? 200 ); } public function sendManualEmail(SendAttendanceManualEmailRequest $request): JsonResponse { $result = $this->service->sendEmailManual($request->validated()); return response()->json( $result, $result['status'] ?? 200 ); } public function parentsInfo(ParentsInfoRequest $request): JsonResponse { $result = $this->service->parentsInfo((int) $request->validated('student_id')); return response()->json( $result, $result['status'] ?? 200 ); } public function saveNotificationNote(SaveAttendanceNotificationNoteRequest $request): JsonResponse { $result = $this->service->saveNotificationNote($request->validated()); return response()->json( $result, $result['status'] ?? 200 ); } }