Definicje parametrów
Zgodnie z definicją Availability:
party_size: Liczba osób, które można przyjąć w tym przedziale czasu. Restauracja może być powiązana z kilkoma przedziałami czasowymi w tym samym czasie, z których każdy określa innąparty_size, jeśli na przykład można zarezerwować stolik dla 2, 3 lub 4 osób.spots_open: liczba miejsc dostępnych obecnie w przypadku tego wpisu o dostępności.spots_total: łączna liczba miejsc, które sprzedawca ma w tej konfiguracji (w tym te, które nie są dostępne).
Te 3 parametry wspólnie tworzą cyfrową reprezentację planu piętra. party_size to liczba osób, które mogą siedzieć przy każdym stole (będzie wpis dla każdego rozmiaru stołu). spots_open i spots_total
to liczby stolików, przy których może usiąść party_size.
Przykładowy pusty plan piętra
Wyobraź sobie restaurację z tym planem piętra i bez aktywnych rezerwacji:
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 czasowego u tego sprzedawcy wyglądałby 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ź sobie, że jeden z okrągłych stolików został zarezerwowany:
Wartości party_size, spots_open i spots_total będą teraz takie:
| 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 miejsc w restauracji z obsługą połączonych stolików
Restauracja może łączyć stoliki na wiele sposobów, aby pomieścić większe grupy. W plikach danych musisz określić spots_open i spots_total w sposób, który dokładnie odzwierciedla, czy możesz przyjąć grupy o danym rozmiarze. Poniżej znajdziesz przykład sposobu łączenia tabel.
Sposób obliczania tych wartości może się nieco różnić w zależności od pliku danych. Możesz określić wartości spots_open i spots_total w sposób zgodny z logiką biznesową.
Jeśli restauracja umożliwia łączenie stolików w większe grupy, możesz zaktualizować spots_open i spots_total, aby to odzwierciedlić.
Załóżmy, że restauracja może połączyć 2 małe stoliki, aby pomieścić grupę 7–10 osób.
Jeśli nie ma aktywnych rezerwacji, wartości party_size, spots_open i spots_total są następujące:
| 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, rezerwacja jest dokonywana dla grupy 10-osobowej, która łączy dwa małe stoliki.
Wartości party_size, spots_open i spots_total to teraz:
| 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 |