Définition des paramètres
Comme indiqué dans la définition de Availability :
party_size: nombre de personnes pouvant être incluses dans la réservation de ce créneau. Un restaurant peut être associé à plusieurs créneaux en même temps, chacun spécifiant unparty_sizedifférent, si par exemple 2, 3 ou 4 personnes peuvent être assis pour la même réservation.spots_open: nombre de places actuellement disponibles pour cette entrée de disponibilité.spots_total: nombre total d'emplacements dont dispose le marchand pour cette configuration (y compris ceux qui ne sont pas disponibles).
Ces trois paramètres fonctionnent ensemble pour créer une représentation numérique du plan de l'étage. party_size correspond au nombre de personnes que chaque table peut accueillir (il y aura une entrée pour chaque taille de table). spots_open et spots_total indiquent le nombre de tables pouvant accueillir ce party_size.
Exemple de plan d'étage vide
Imaginez un restaurant avec le plan de salle suivant et sans réservation active :
Les valeurs de party_size, spots_open et spots_total seraient les suivantes :
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 3 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
Le flux de disponibilité pour un créneau horaire chez ce marchand se présenterait comme suit :
JSON
{ "availability": [ { "spots_total": 3, "spots_open": 3, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 4 } }, { "spots_total": 3, "spots_open": 3, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 5 } }, { "spots_total": 4, "spots_open": 4, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 6 } }, { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 7 } }, { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 8 } } ] }
Exemple de plan d'étage avec une réservation
Imaginez maintenant que l'une des tables rondes a été réservée :
Les valeurs de party_size, spots_open et spots_total seraient désormais les suivantes :
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 2 | 3 |
| 5 | 2 | 3 |
| 6 | 3 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
JSON
{ "availability": [ { "spots_total": 3, "spots_open": 2, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 4 } }, { "spots_total": 3, "spots_open": 2, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 5 } }, { "spots_total": 4, "spots_open": 3, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 6 } }, { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 7 } }, { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1535806800, "merchant_id": "merch1", "resources": { "party_size": 8 } } ] }
Spécifier la disponibilité des tables combinées
Il existe de nombreuses façons pour un restaurant de combiner des tables pour accueillir des groupes plus importants. Dans vos flux, vous devez spécifier spots_open et spots_total de manière à refléter précisément si vous pouvez accepter des groupes d'une taille donnée. Vous trouverez ci-dessous un exemple de spécification de la combinaison de tables.
La façon dont ce calcul est effectué peut varier légèrement selon vos flux. Vous pouvez spécifier spots_open et spots_total de manière à correspondre à votre logique métier.
Si un restaurant autorise la combinaison de tables pour accueillir un groupe plus important, vous pouvez modifier vos spots_open et spots_total pour refléter cette possibilité.
Imaginons qu'un restaurant puisse combiner deux petites tables pour accueillir un groupe de 7 à 10 personnes.
En l'absence de réservations actives, les valeurs de party_size, spots_open et spots_total sont les suivantes :
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 3 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
| 9 | 1 | 1 |
| 10 | 1 | 1 |
Maintenant, avec le même plan, une réservation est effectuée pour un groupe de 10 personnes qui combine deux petites tables.
Les valeurs de party_size, spots_open et spots_total sont désormais les suivantes :
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 1 | 3 |
| 5 | 1 | 3 |
| 6 | 2 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
| 9 | 0 | 1 |
| 10 | 0 | 1 |