61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Service;
|
|
|
|
class ServicesController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$services = Service::all();
|
|
return response()->json($services);
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$validated = $request->validate([
|
|
'name' => 'required|string|max:255',
|
|
'description' => 'nullable|string',
|
|
'duration_minutes' => 'required|integer',
|
|
'price' => 'required|numeric',
|
|
'is_active' => 'boolean'
|
|
]);
|
|
|
|
$service = Service::create($validated);
|
|
|
|
return response()->json($service, 201);
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$service = Service::findOrFail($id);
|
|
|
|
$validated = $request->validate([
|
|
'name' => 'required|string|max:255',
|
|
'description' => 'nullable|string',
|
|
'duration_minutes' => 'required|integer',
|
|
'price' => 'required|numeric',
|
|
'is_active' => 'boolean'
|
|
]);
|
|
|
|
$service->update($validated);
|
|
|
|
return response()->json($service);
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$service = Service::findOrFail($id);
|
|
$service->delete();
|
|
|
|
return response()->json(['message' => 'Услуга удалена']);
|
|
}
|
|
|
|
public function publicIndex()
|
|
{
|
|
$services = \App\Models\Service::where('is_active', true)->get();
|
|
return response()->json($services);
|
|
}
|
|
} |