service->list(); return response()->json([ 'ok' => true, 'classes' => SubjectClassResource::collection($data['classes']), 'entries' => SubjectCurriculumResource::collection($data['entries']), 'subject_labels' => $data['subject_labels'], ]); } public function show(int $id): JsonResponse { $entry = SubjectCurriculum::query()->find($id); if (!$entry) { return response()->json(['ok' => false, 'message' => 'Curriculum entry not found.'], 404); } return response()->json([ 'ok' => true, 'entry' => new SubjectCurriculumResource($entry->toArray()), ]); } public function store(SubjectCurriculumStoreRequest $request): JsonResponse { $entry = $this->service->store($request->validated()); return response()->json([ 'ok' => true, 'entry' => new SubjectCurriculumResource($entry->toArray()), ], 201); } public function update(SubjectCurriculumUpdateRequest $request, int $id): JsonResponse { $entry = $this->service->update($id, $request->validated()); if (!$entry) { return response()->json(['ok' => false, 'message' => 'Curriculum entry not found.'], 404); } return response()->json([ 'ok' => true, 'entry' => new SubjectCurriculumResource($entry->toArray()), ]); } public function destroy(int $id): JsonResponse { $deleted = $this->service->delete($id); if (!$deleted) { return response()->json(['ok' => false, 'message' => 'Curriculum entry not found.'], 404); } return response()->json(['ok' => true]); } }