collectionResponse(InstitutionCategory::orderBy('value')->get()); } /** * Crea una categoria. */ public function store(StoreInstitutionCategoryRequest $request): JsonResponse { $category = InstitutionCategory::create($request->validated()); return $this->createdResponse($category); } /** * Dettaglio di una categoria. */ public function show(InstitutionCategory $institutionCategory): JsonResponse { return $this->okResponse($institutionCategory); } /** * Aggiorna una categoria. */ public function update(UpdateInstitutionCategoryRequest $request, InstitutionCategory $institutionCategory): JsonResponse { $institutionCategory->update($request->validated()); return $this->updatedResponse($institutionCategory); } /** * Elimina una categoria (se non assegnata ad alcuna istituzione). */ public function destroy(InstitutionCategory $institutionCategory): JsonResponse { if ($institutionCategory->isInUse()) { return $this->conflictResponse('Cannot delete: category assigned to at least one institution.'); } $institutionCategory->delete(); return $this->deletedResponse(); } /** * Indica se la categoria è in uso (bloccata per l'eliminazione). */ public function usage(InstitutionCategory $institutionCategory): JsonResponse { return response()->json([ 'in_use' => $institutionCategory->isInUse(), ]); } }