คำจำกัดความของพารามิเตอร์
ตามที่ระบุไว้ในคําจํากัดความของ Availability
party_size
: จำนวนคนที่รองรับในช่วงเวลาที่ระบุ ร้านอาหารจะเชื่อมโยงกับสล็อตหลายที่พร้อมกันได้ แต่ละช่องจะระบุparty_size
ที่แตกต่างกัน ในกรณีที่จองโต๊ะโดยมีผู้ใช้ 2, 3 หรือ 4 คนได้spots_open
: จำนวนห้องว่างที่พร้อมให้บริการในขณะนี้สำหรับรายการความพร้อมให้บริการนี้spots_total
: จำนวนสปอตทั้งหมดที่ผู้ขายมีสำหรับการกำหนดค่านี้ (รวมถึงสปอตที่ใช้งานไม่ได้)
พารามิเตอร์ทั้ง 3 ตัวนี้จะทำงานร่วมกันเพื่อสร้างการนำเสนอแบบดิจิทัลของแปลนอาคาร party_size
คือจำนวนคนที่แต่ละตารางรองรับได้ (จะมีรายการสำหรับทุกขนาดที่ตารางรองรับได้) spots_open
และ spots_total
คือจำนวนตารางที่รองรับ party_size
นั้นได้
ตัวอย่างแปลนอาคารที่ว่างเปล่า
สมมติว่าร้านอาหารที่มีแปลนอาคารต่อไปนี้และไม่มีการจองที่ใช้งานอยู่
![รูปที่ 1: แปลนอาคารที่ไม่มีการจองที่ใช้งานอยู่](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=3&hl=th)
ค่าสำหรับ 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 } } ] }
ตัวอย่างแปลนอาคารที่มีการจอง
ตอนนี้สมมติว่ามีการจองโต๊ะกลมไว้
![รูปที่ 2: แปลนอาคารที่มีการจองที่ใช้งานอยู่ 1 รายการ](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_2.png?authuser=3&hl=th)
ตอนนี้ค่าของ 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
เพื่อให้สอดคล้องกับความต้องการนี้
สมมติว่าร้านอาหารสามารถรวมโต๊ะเล็กๆ 2 โต๊ะเข้าด้วยกัน ซึ่งรองรับแขกได้ถึง 7-10 คน
![รูปที่ 3: แปลนอาคารที่ไม่มีการจองที่ใช้งานอยู่](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_1.png?authuser=3&hl=th)
ในกรณีที่ไม่มีการจองที่ใช้งานอยู่ ค่าของ 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 คนที่รวมโต๊ะขนาดเล็ก 2 โต๊ะเข้าด้วยกัน
![รูปที่ 4: แปลนอาคารที่มีการจองที่ใช้งานอยู่ 1 รายการที่ครอบคลุม 2 ตาราง](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/tutorial_dining_flow_3.png?authuser=3&hl=th)
จากนั้นค่าของ 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 |