get(); return response()->json($services); } // POST api/admin/services - создать услугу public function store(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'description' => 'required|string', 'durationminutes' => 'required|integer|min:1|max:500', 'price' => 'required|numeric|min:0' ]); $service = Services::create([ 'name' => $request->name, 'description' => $request->description, 'durationminutes' => $request->durationminutes, 'price' => $request->price, 'isactive' => true // по умолчанию активна ]); return response()->json($service, 201); } // PUT api/admin/services/{id} - обновить услугу public function update(Request $request, $id) { $service = Services::findOrFail($id); $request->validate([ 'name' => 'required|string|max:255', 'description' => 'required|string', 'durationminutes' => 'required|integer|min:1|max:500', 'price' => 'required|numeric|min:0' ]); $service->update([ 'name' => $request->name, 'description' => $request->description, 'durationminutes' => $request->durationminutes, 'price' => $request->price, ]); return response()->json($service); } // DELETE api/admin/services/{id} - только если нет активных броней public function destroy($id) { $service = Services::findOrFail($id); // ПРОВЕРКА: нельзя удалить услугу с активными бронями $activeBookings = \App\Models\Booking::where('service_id', $id) ->where('status', '!=', 'cancelled') ->exists(); if ($activeBookings) { return response()->json([ 'error' => 'Нельзя удалить услугу с активными бронями' ], 400); } $service->delete(); return response()->json(['message' => 'Услуга удалена']); } }