Définition des paramètres
Comme indiqué dans la définition de Availability
:
party_size
: nombre de personnes pouvant être ajoutées pendant ce créneau horaire. Un restaurant peut être associé à plusieurs emplacements en même temps, chacun spécifiant unparty_size
différent (par exemple, si deux, trois ou quatre personnes peuvent réserver une table).spots_open
: nombre de places actuellement disponibles pour cette entrée de disponibilitéspots_total
: nombre total de places disponibles dans le marchand pour cette configuration (y compris celles qui ne sont pas disponibles)
Ces trois paramètres fonctionnent ensemble pour créer une représentation numérique du plan d'étage. party_size
correspond au nombre de personnes que chaque table peut contenir (il existe une entrée pour chaque taille pouvant être acceptée par une table). spots_open
et spots_total
correspondent au nombre de tables pouvant accueillir cette party_size
.
Exemple de plan d'étage vide
Imaginez un restaurant avec le plan d'étage suivant et aucune réservation active:
![Figure 1: Plan d'étage sans réservation active](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=5&hl=fr)
Les valeurs de party_size
, spots_open
et spots_total
seraient:
party_size | spots_open | spots_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
Le flux disponibilité pour un créneau horaire chez ce marchand se présente 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 réservation
Imaginons maintenant que l'une des tables rondes ait été réservée:
![Figure 2: Plan d'étage avec une réservation active](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_2.png?authuser=5&hl=fr)
Les valeurs de party_size
, spots_open
et spots_total
seraient désormais:
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 restaurants avec prise en charge des tables combinées
Un restaurant peut combiner les tables de nombreuses façons pour prendre en charge des groupes plus importants. Dans vos flux, vous devez spécifier les champs spots_open
et spots_total
de manière à indiquer précisément si vous pouvez accepter des groupes d'une taille donnée. Voici un exemple de la manière dont vous pouvez spécifier des tableaux combinant des tables.
La manière dont ce calcul est effectué peut être légèrement différente dans vos flux, et vous êtes autorisé à spécifier spots_open
et spots_total
conformément à votre logique métier.
Si un restaurant accepte la combinaison de tables pour former un plus grand groupe, vous pouvez mettre à jour vos valeurs spots_open
et spots_total
en conséquence.
Supposons qu'un restaurant puisse combiner deux petites tables pour accueillir 7 à 10 personnes.
![Figure 3: Plan d'étage sans réservation active](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=5&hl=fr)
En l'absence de réservation active, 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 |
Désormais, avec le même plan d'étage, une réservation est effectuée pour un groupe de 10 personnes tout en combinant deux petites tables.
![Figure 4: Plan d'étage avec une réservation active couvrant deux tables](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_3.png?authuser=5&hl=fr)
Les valeurs de party_size
, spots_open
et spots_total
sont maintenant 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 |