Definizioni dei parametri
Come specificato nella definizione
Availability:
party_size: Il numero di persone che possono essere ospitate durante questo orario. Un ristorante può essere associato a più slot per lo stesso orario, ognuno dei quali specifica un diversoparty_size, ad esempio 2, 3 o 4 persone possono sedersi con una prenotazionespots_open: Il numero di posti attualmente disponibili per questa voce di disponibilitàspots_total: Il numero totale di posti che il commerciante ha per questa configurazione (inclusi quelli non disponibili)
Questi tre parametri lavorano insieme per creare una rappresentazione digitale della
planimetria. party_size è il numero di persone che ogni tavolo può ospitare (ci sarà
una voce per ogni dimensione che un tavolo può ospitare). spots_open e spots_total
sono conteggi di quante tabelle possono ospitare quel party_size.
Esempio di planimetria vuota
Immagina un ristorante con la seguente planimetria e nessuna prenotazione attiva:
I valori per party_size, spots_open e spots_total sarebbero:
| party_size | spots_open | spots_total |
|---|---|---|
| 4 | 3 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
Il feed di disponibilità per una fascia oraria presso questo commerciante sarebbe simile al seguente:
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 } } ] }
Esempio di planimetria con una prenotazione
Ora immagina che uno dei tavoli rotondi sia stato prenotato:
I valori per party_size, spots_open e spots_total ora saranno:
| 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 } } ] }
Specificare la disponibilità di ristoranti con il supporto delle tabelle combinate
Esistono molti modi in cui un ristorante può combinare i tavoli per ospitare gruppi più grandi. Nei feed devi specificare spots_open e spots_total
in modo da riflettere con precisione se puoi accettare gruppi di una determinata
dimensione. Di seguito è riportato un esempio di come specificare la combinazione delle tabelle.
I tuoi feed potrebbero differire leggermente nel modo in cui viene eseguito questo calcolo ed è
accettabile specificare spots_open e spots_total in modo da
corrispondere alla tua logica di business.
Se un ristorante supporta la combinazione di tavoli per formare un gruppo più grande, puoi
aggiornare spots_open e spots_total per riflettere questa modifica.
Supponiamo che un ristorante possa unire due tavoli piccoli per ospitare un gruppo di 7-10 persone.
In caso di nessuna prenotazione attiva, i valori per party_size, spots_open
e spots_total sono:
| 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 |
Ora, con la stessa planimetria, viene effettuata una prenotazione per un gruppo di 10 persone che combina due tavoli piccoli.
I valori di party_size, spots_open e spots_total sono ora:
| 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 |