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

В случае отсутствия активных бронирований значения party_size , spots_open и spots_total будут следующими:
| party_size | spot_open | spot_total |
|---|---|---|
| 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 | spot_open | spot_total |
|---|---|---|
| 4 | 1 | 3 |
| 5 | 1 | 3 |
| 6 | 2 | 4 |
| 7 | 1 | 1 |
| 8 | 1 | 1 |
| 9 | 0 | 1 |
| 10 | 0 | 1 |