GET /api/v1/salons/:id/availability
Obține intervalele disponibile pentru rezervare la un salon într-o zi specifică. Endpoint public.
Parametri de interogare
| Parametru | Obligatoriu | Descriere |
|---|---|---|
service_id | Da | UUID-ul serviciului (determină durata intervalului) |
date | Nu | Data în format YYYY-MM-DD (implicit — azi) |
master_id | Nu | UUID-ul maestrului pentru filtrarea intervalelor |
Cerere
GET /api/v1/salons/:id/availability?service_id=uuid&date=2026-04-07&master_id=uuid
Răspuns 200
{
"success": true,
"status": "200",
"message": "Availability retrieved successfully",
"errors": null,
"data": [
{
"starts_at": "2026-04-07T09:00:00+03:00",
"ends_at": "2026-04-07T09:30:00+03:00",
"duration_min": 30,
"master_id": "uuid"
},
{
"starts_at": "2026-04-07T09:30:00+03:00",
"ends_at": "2026-04-07T10:00:00+03:00",
"duration_min": 30,
"master_id": "uuid"
}
]
}
Răspuns 422 — service_id lipsește
{
"success": false,
"status": "422",
"message": "service_id is required",
"errors": null,
"data": null
}
Logica generării intervalelor
- Se preia programul salonului (sau al maestrului, dacă
master_ideste specificat) - Din orele de lucru pentru
datese scad programările confirmate existente - Se generează intervale de lungime
duration_min(din serviciu) - Se iau în considerare
schedule_blocks(concedii, concedii medicale) - Fusuri orare — prin
salon.timezone(IANA, implicitEurope/Chisinau)