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 horaires pour le même créneau horaire, chacun spécifiant unparty_size
différent, si par exemple 2, 3 ou 4 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 dont dispose 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 accueillir (une entrée est associée à chaque taille de table). spots_open
et spots_total
indiquent le nombre de tables pouvant accueillir cette party_size
.
Exemple de plan d'étage vide
Imaginons un restaurant dont le plan d'étage est le suivant et qui n'a aucune 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 |
Le flux de disponibilité d'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 une réservation
Imaginons maintenant qu'une des tables rondes a été réservée:
Les valeurs de party_size
, spots_open
et spots_total
sont 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 repas avec la prise en charge des tables combinées
Un restaurant peut combiner des tables de différentes manières 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 parties d'une taille donnée. Voici un exemple de combinaison de tables.
La manière dont ce calcul est effectué peut varier légèrement d'un flux à l'autre. Vous pouvez spécifier spots_open
et spots_total
de manière à ce qu'ils correspondent à votre logique métier.
Si un restaurant accepte de combiner des tables pour former un groupe plus important, vous pouvez mettre à jour vos spots_open
et spots_total
pour le refléter.
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 d'étage, 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 alors 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 |