Serviciile salonului
Serviciile sunt legate de un anumit salon. Fiecare maestru poate avea prețul său pentru un serviciu (service_master_prices).
Listă servicii
GET /api/v1/salons/:id/services
Lista serviciilor salonului cu prețuri pe maeștri. Public.
Răspuns 200
{
"success": true,
"status": "200",
"message": "Services retrieved successfully",
"errors": null,
"data": [
{
"id": "uuid",
"name": "Men's Haircut",
"description": "Classic cut",
"duration_min": 30,
"category": "barbershop",
"masters": [
{
"master_id": "uuid",
"price": 150.0,
"first_name": "Ion",
"last_name": "Popescu"
}
]
}
]
}
Adaugă serviciu
POST /api/v1/salons/:id/services
Adaugă un serviciu în salon. Doar proprietarul salonului.
Cerere
{
"service": {
"name": "Men's Haircut",
"description": "Classic cut",
"duration_min": 30,
"category_id": "uuid"
}
}
Răspuns 201
{
"success": true,
"status": "201",
"message": "Service added successfully",
"errors": null,
"data": {
"id": "uuid",
"name": "Men's Haircut",
"description": "Classic cut",
"duration_min": 30,
"category": "barbershop",
"masters": []
}
}
Actualizare serviciu
PATCH /api/v1/salons/:id/services/:salon_service_id
Actualizează un serviciu. Doar proprietarul salonului.
Cerere
{
"service": {
"name": "Updated Name",
"duration_min": 45
}
}
Răspuns 200
Același corp ca răspunsul POST.
Ștergere serviciu
DELETE /api/v1/salons/:id/services/:salon_service_id
Șterge un serviciu. Doar proprietarul salonului.
Răspuns 200
{
"success": true,
"status": "200",
"message": "Service deleted successfully",
"errors": null,
"data": null
}
Listă maeștri serviciu
GET /api/v1/salons/:id/services/:salon_service_id/masters
Lista maeștrilor atribuiți unui serviciu cu prețuri. Public.
Răspuns 200
{
"success": true,
"status": "200",
"message": "Masters retrieved successfully",
"errors": null,
"data": [
{
"master_id": "uuid",
"price": 150.0,
"first_name": "Ion",
"last_name": "Popescu"
}
]
}
Atribuie maestru serviciului
POST /api/v1/salons/:id/services/:salon_service_id/masters
Atribuie un maestru unui serviciu cu un preț. Doar proprietarul salonului.
Cerere
{
"master_id": "uuid",
"price": 150.0
}
Răspuns 201
{
"success": true,
"status": "201",
"message": "Master assigned successfully",
"errors": null,
"data": {
"master_id": "uuid",
"price": 150.0,
"first_name": "Ion",
"last_name": "Popescu"
}
}
Actualizare preț maestru
PATCH /api/v1/salons/:id/services/:salon_service_id/masters/:master_id
Actualizează prețul unui maestru pentru un serviciu. Doar proprietarul salonului.
Cerere
{
"price": 200.0
}
Răspuns 200
{
"success": true,
"status": "200",
"message": "Price updated successfully",
"errors": null,
"data": {
"master_id": "uuid",
"price": 200.0,
"first_name": "Ion",
"last_name": "Popescu"
}
}
Elimină maestru din serviciu
DELETE /api/v1/salons/:id/services/:salon_service_id/masters/:master_id
Elimină un maestru de pe un serviciu. Doar proprietarul salonului.
Răspuns 200
{
"success": true,
"status": "200",
"message": "Master removed successfully",
"errors": null,
"data": null
}