reader->search($this->context->current(), $request->toDTO()); return ApiResponse::success($result); } public function store(CreateStudentRequest $request): JsonResponse { $result = $this->students->createStudent($this->context->current(), $request->toDTO()); return ApiResponse::success((new StudentResource($result))->resolve($request), 'Student created.', [], 201); } public function show(int $student): JsonResponse { $result = $this->students->getStudent($this->context->current(), $student); return ApiResponse::success((new StudentResource($result))->resolve(request())); } public function update(UpdateStudentRequest $request, int $student): JsonResponse { $result = $this->students->updateStudent($this->context->current(), $student, $request->toDTO()); return ApiResponse::success((new StudentResource($result))->resolve($request), 'Student updated.'); } public function transition(StudentStatusTransitionRequest $request, int $student): JsonResponse { $result = $this->students->transitionStatus($this->context->current(), $student, $request->toDTO()); return ApiResponse::success((new StudentResource($result))->resolve($request), 'Student status changed.'); } }