fn ($q) => $q->where('is_active', true)->orderBy('name')]) ->where('is_active', true) ->orderBy('name') ->paginate(config('app.pagination')); return ApiResponse::OK->response([ 'categories' => $categorias ]); } public function show(Category $categoria) { $categoria->load(['subcategories' => fn ($q) => $q->where('is_active', true)->orderBy('name')]); return ApiResponse::OK->response([ 'model' => $categoria ]); } public function store(CategoryStoreRequest $request) { $categoria = Category::create($request->validated()); return ApiResponse::OK->response([ 'model' => $categoria ]); } public function update(CategoryUpdateRequest $request, Category $categoria) { $categoria->update($request->validated()); return ApiResponse::OK->response([ 'model' => $categoria->fresh() ]); } public function destroy(Category $categoria) { if ($categoria->inventories()->exists()) { return ApiResponse::BAD_REQUEST->response([ 'message' => 'No se puede eliminar la clasificación porque tiene productos asociados.' ]); } $categoria->delete(); return ApiResponse::OK->response(); } }