Definicje parametrów
Jak określono w
Availability
definicja:
party_size
: liczba miejsc, w których w tym czasie można brać udział; gniazdo. Restauracja może być powiązana z wieloma automatami jednocześnie, każdy określający innąparty_size
, jeśli na przykład 2, 3 lub 4 osoby może mieć stoliki z rezerwacjąspots_open
: liczba dostępnych obecnie miejsc wpis o dostępnościspots_total
: łączna liczba miejsc, które sprzedawca ma w przypadku tego elementu. konfiguracji (w tym niedostępnych)
Te 3 parametry współdziałają, aby utworzyć cyfrową reprezentację
plan piętra. party_size
to liczba osób, jaką może pomieścić każda z nich (istnieje
może być wpisem dla każdego rozmiaru obsługiwanego w tabeli). spots_open
i spots_total
to liczba tabel, w których można umieścić tę wartość party_size
.
Przykład pustego planu piętra
Wyobraź sobie restaurację z poniższym planem piętra, która nie jest aktywna rezerwacje:
![Rysunek 1. Plan piętra bez aktywnych rezerwacji](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=4&hl=pl)
Wartości party_size
, spots_open
i spots_total
to:
party_size | spots_open | spots_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
Plik danych o dostępności dla jednego przedziału czasu u tego sprzedawcy będzie wyglądał tak:
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 } } ] }
Przykładowy plan piętra z rezerwacją
Wyobraźmy sobie teraz, że jeden ze okrągłych stołów został zarezerwowany:
![Rysunek 2. Plan piętra z 1 aktywną rezerwacją](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_2.png?authuser=4&hl=pl)
Wartości party_size
, spots_open
i spots_total
będą teraz wyglądać tak:
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 } } ] }
Określanie dostępności posiłków dzięki obsłudze połączonych tabel
Restauracja może łączyć stoły na wiele sposobów, by obsługiwał większe
grup. W plikach danych powinny występować wartości spots_open
i spots_total
w sposób, który dokładnie odzwierciedla to, czy możesz akceptować strony określonych
rozmiaru. Poniżej przedstawiamy przykład, jak można określić łączenie tabel.
Twoje pliki danych mogą nieco inaczej obliczać te obliczenia,
możesz określić spots_open
i spots_total
w taki sposób,
z Twoją logiką biznesową.
Jeśli restauracja ma możliwość łączenia stolików w większą imprezę,
Zaktualizuj odpowiednio swoje dane w aplikacjach spots_open
i spots_total
.
Załóżmy, że restauracja może połączyć 2 małe stoły dla 7–10 osób ludzi.
![Rysunek 3. Plan piętra bez aktywnych rezerwacji](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=4&hl=pl)
W przypadku braku aktywnych rezerwacji wartości parametrów party_size
, spots_open
,
i spots_total
to:
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 |
Teraz przy tym samym planie piętra rezerwuje się pokój dla 10 osób, w którym łączy 2 małe tabele.
![Rysunek 4. Plan piętra z 1 aktywną rezerwacją obejmującą 2 tabele](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_3.png?authuser=4&hl=pl)
Następnie wartości w polach party_size
, spots_open
i spots_total
to:
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 |