service->getMaterials($request->all()); }, __('message.material.fetched')); } public function store(MaterialStoreRequest $request) { return ApiResponse::handle(function () use ($request) { // 동적 필드 지원을 위해 전체 입력값 전달 (Service에서 검증) return $this->service->setMaterial($request->all()); }, __('message.material.created')); } public function show(int $id) { return ApiResponse::handle(function () use ($id) { return $this->service->getMaterial($id); }, __('message.material.fetched')); } public function update(MaterialUpdateRequest $request, int $id) { return ApiResponse::handle(function () use ($request, $id) { // 동적 필드 지원을 위해 전체 입력값 전달 (Service에서 검증) return $this->service->updateMaterial($id, $request->all()); }, __('message.material.updated')); } public function destroy(int $id) { return ApiResponse::handle(function () use ($id) { return $this->service->destroyMaterial($id); }, __('message.material.deleted')); } }