Services & capacités
Découpez votre journée en services (déjeuner, dîner, brunch...) chacun avec ses propres horaires, durée de slot, et capacité totale cumulée. Le widget filtre automatiquement quand un service est plein.
Concept
Un service est une période continue de la journée avec :
- Un code unique (
lunch,dinner,brunch...) - Des horaires (
start_time→end_time) - Une durée de slot (ex : 15 min pour un lunch rapide)
- Un nombre de réservations max par slot
- Une capacité totale en couverts (max_total_guests) pour le service entier
Quand la capacité totale est atteinte, tous les slots du service deviennent service_full
et le widget bascule en "complet" — même si certains slots individuels avaient encore de la place.
Lister les services
Liste tous les services configurés. Si ?date=YYYY-MM-DD est fourni, ajoute l'usage actuel.
curl "https://api.restaurateur.ch/api/v1/services?date=2026-06-15" \
-H "X-API-Key: VOTRE_CLE_API"{
"services": [
{
"id": 12, "code": "lunch", "label": "Déjeuner",
"start_time": "12:00", "end_time": "13:45",
"slot_duration_min": 15, "max_bookings_per_slot": 5,
"max_total_guests": 20, "is_active": true, "sort_order": 0,
"usage_on_date": { "date": "2026-06-15", "bookings": 4, "guests": 8, "service_full": false }
}
]
}Créer un service
Body
| Champ | Type | Notes |
|---|---|---|
code | string | required Unique par restaurant |
label | string | Libellé affiché (ex: "Déjeuner") |
start_time | HH:MM | required |
end_time | HH:MM | required |
slot_duration_min | int | Défaut 30 |
max_bookings_per_slot | int | Défaut 5 |
max_total_guests | int|null | null = illimité |
is_active | bool | Défaut true |
sort_order | int | Pour l'ordre d'affichage |
curl -X POST https://api.restaurateur.ch/api/v1/services \
-H "X-API-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"code": "lunch",
"label": "Déjeuner",
"start_time": "12:00",
"end_time": "13:45",
"slot_duration_min": 15,
"max_bookings_per_slot": 5,
"max_total_guests": 20
}'Modifier un service
Tous les champs sont optionnels. Envoyez uniquement ceux à modifier.
# Désactiver un service (sans le supprimer)
curl -X PUT https://api.restaurateur.ch/api/v1/services/13 \
-H "X-API-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"is_active": false}'
# Augmenter la capacité pour un événement
curl -X PUT https://api.restaurateur.ch/api/v1/services/12 \
-H "X-API-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"max_total_guests": 40}'Supprimer un service
Supprime définitivement le service. Les réservations existantes ne sont pas touchées.
Préférez is_active: false si vous voulez juste le désactiver temporairement.
curl -X DELETE https://api.restaurateur.ch/api/v1/services/13 \
-H "X-API-Key: VOTRE_CLE_API"Workflow : capacité cumulée lunch
Exemple : "Au max 20 couverts au déjeuner, peu importe la répartition sur les créneaux".
- Créer le service
lunch12:00-13:45 avecmax_total_guests: 20 - Le widget affiche les créneaux normalement tant que
guests_booked < 20 - Quand le total atteint 20, tous les créneaux du service deviennent
service_full - Vous pouvez augmenter dynamiquement
max_total_guestsvia PUT si un client appelle directement