매개변수 정의
Availability 정의에 지정된 대로
party_size: 이 시간대에 수용할 수 있는 인원수입니다. 음식점은 예를 들어 2, 3 또는 4인석을 예약할 수 있는 경우 각각 다른party_size를 지정하여 동시에 여러 시간대에 연결할 수 있습니다.spots_open: 이 가용성 항목에 현재 사용 가능한 자리 수입니다.spots_total: 이 구성에 대해 판매자가 보유한 총 자리수입니다 (이용 불가능한 자리수 포함).
이 세 매개변수는 함께 작동하여 평면도의 디지털 표현을 빌드합니다. party_size는 각 테이블에 앉을 수 있는 인원수입니다 (테이블에 앉을 수 있는 모든 크기에 항목이 있음). spots_open 및 spots_total는 해당 party_size를 수용할 수 있는 테이블의 수입니다.
빈 평면도 예시
다음과 같은 평면도가 있고 활성 예약이 없는 레스토랑을 가정해 보겠습니다.
party_size, spots_open, spots_total의 값은 다음과 같습니다.
| party_size | spots_open | spots_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 | 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 } } ] }
결합된 테이블 지원으로 식사 가능 여부 지정
레스토랑에서 더 큰 그룹을 지원하기 위해 테이블을 결합할 수 있는 방법은 다양합니다. 피드에서 특정 크기의 파티를 수용할 수 있는지 여부를 정확하게 반영하는 방식으로 spots_open 및 spots_total을 지정해야 합니다. 다음은 테이블 결합을 지정하는 방법의 한 예입니다.
피드에서 이 계산이 이루어지는 방식은 약간 다를 수 있으며, 비즈니스 로직에 맞는 방식으로 spots_open 및 spots_total를 지정해도 됩니다.
식당에서 테이블을 결합하여 더 큰 그룹을 형성하는 것을 지원하는 경우 이를 반영하도록 spots_open 및 spots_total를 업데이트할 수 있습니다.
예를 들어 음식점에서 작은 테이블 두 개를 결합하여 7~10명으로 구성된 그룹을 수용할 수 있다고 가정해 보겠습니다.
활성 예약이 없는 경우 party_size, spots_open, spots_total 값은 다음과 같습니다.
| 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 |
이제 동일한 평면도에서 작은 테이블 두 개를 결합한 10명 규모의 예약이 이루어집니다.
이제 party_size, spots_open, spots_total의 값은 다음과 같습니다.
| 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 |