json(Giro::all()); } public function activos(): JsonResponse { return response()->json(Giro::where('activo', true)->get()); } public function store(Request $request): JsonResponse { $validated = $request->validate([ 'nombre' => 'required|string|max:255|unique:giros,nombre', 'activo' => 'boolean', ]); $giro = Giro::create($validated); return response()->json($giro, 201); } public function show(Giro $giro): JsonResponse { return response()->json($giro); } public function update(Request $request, Giro $giro): JsonResponse { $validated = $request->validate([ 'nombre' => 'string|max:255|unique:giros,nombre,' . $giro->id, 'activo' => 'boolean', ]); $giro->update($validated); return response()->json($giro); } public function destroy(Giro $giro): JsonResponse { if ($giro->clientes()->exists()) { return response()->json([ 'message' => 'No se puede eliminar un giro con clientes asociados' ], 422); } $giro->delete(); return response()->json(['message' => 'Giro eliminado']); } }