Определения параметров
Как указано в определении Availability :
-
party_size: размер вечеринки, который может быть размещен в течение этого временного интервала. Ресторан может быть связан с несколькими слотами одновременно, в каждом из которых указан разныйparty_size, если, например, при резервировании могут разместиться 2, 3 или 4 человека. -
spots_open: количество мест, доступных в настоящее время для этой записи о доступности. -
spots_total: общее количество мест, которые есть у продавца для этой конфигурации (включая те, которые недоступны).
Эти три параметра работают вместе, чтобы создать цифровое представление плана этажа. party_size — это количество человек, которое может вместить каждый стол (для каждого размера стола будет своя запись). spots_open и spots_total — это количество столов, которые могут вместить этот party_size .
Пример пустого плана этажа
Представьте себе ресторан со следующей планировкой и без активных заказов:

Значения party_size , spots_open и spots_total будут следующими:
| party_size | пятна_открыть | пятна_всего |
|---|---|---|
| 4 | 3 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
Фид доступности для одного временного интервала у этого продавца будет выглядеть так:
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 } } ] }
Пример плана этажа с бронированием
А теперь представьте, что один из круглых столов забронирован:

Значения party_size , spots_open и spots_total теперь будут такими:
| party_size | пятна_открыть | пятна_всего |
|---|---|---|
| 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 } } ] }
Указание доступности столовой с поддержкой комбинированных столов
Есть много способов, которыми ресторан может объединить столы для обслуживания больших групп. Ожидается, что в ваших фидах вы укажете spots_open и spots_total таким образом, чтобы точно отражать, можете ли вы принимать вечеринки заданного размера. Ниже приведен один из примеров того, как можно указать объединение таблиц. Ваши каналы могут несколько отличаться в том, как производится этот расчет, и вы можете указать spots_open и spots_total способом, соответствующим вашей бизнес-логике.
Если ресторан поддерживает объединение столов в большую вечеринку, вы можете обновить spots_open и spots_total чтобы отразить это.
Скажем, в ресторане можно объединить два небольших столика, чтобы вместить группу из 7–10 человек.

В случае отсутствия активных бронирований значения party_size , spots_open и spots_total будут следующими:
| party_size | пятна_открыть | пятна_всего |
|---|---|---|
| 4 | 3 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
| 9 | 1 | 1 |
| 10 | 1 | 1 |
Теперь, при той же планировке, делается заказ на вечеринку из 10 человек, состоящую из двух небольших столиков.

Затем значения party_size , spots_open и spots_total теперь будут такими:
| party_size | пятна_открыть | пятна_всего |
|---|---|---|
| 4 | 1 | 3 |
| 5 | 1 | 3 |
| 6 | 2 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
| 9 | 0 | 1 |
| 10 | 0 | 1 |