collectionResponse(UserRole::all()); } /** * Crea un nuovo ruolo. */ public function store(StoreUserRoleRequest $request): JsonResponse { $role = UserRole::create($request->validated()); return $this->createdResponse($role); } /** * Dettaglio di un ruolo. */ public function show(UserRole $userRole): JsonResponse { return $this->okResponse($userRole); } /** * Aggiorna un ruolo. */ public function update(UpdateUserRoleRequest $request, UserRole $userRole): JsonResponse { $userRole->update($request->validated()); return $this->updatedResponse($userRole); } /** * Elimina un ruolo (se non di sistema e non in uso). */ public function destroy(UserRole $userRole): JsonResponse { if ($userRole->isSystemRole()) { return $this->conflictResponse('Cannot delete a system role.'); } if ($userRole->isInUse()) { return $this->conflictResponse('Cannot delete: role assigned to at least one user.'); } $userRole->delete(); return $this->deletedResponse(); } /** * Indica se il ruolo รจ bloccato per l'eliminazione (di sistema o in uso). */ public function usage(UserRole $userRole): JsonResponse { return response()->json([ 'in_use' => $userRole->isSystemRole() || $userRole->isInUse(), ]); } }