จัดโครงสร้างข้อมูลความพร้อมจำหน่ายสินค้าสำหรับการจอง

คุณต้องส่งการแมปสินค้าคงคลังที่ถูกต้องและเป็นปัจจุบันเพื่อแสดงช่วงเวลาในขั้นตอนการจองให้สำเร็จ จำนวนที่นั่งที่ว่างอาจเปลี่ยนแปลงอย่างมากหลังจากการจองเพียงครั้งเดียว เนื่องจากลักษณะของร้านอาหารและความสามารถในการรวมโต๊ะหรือขนาดปาร์ตี้ ตัวอย่างในเอกสารนี้จะแนะนำวิธีดูแลรักษาและเชื่อมโยงพื้นที่โฆษณาที่มีอยู่อย่างเหมาะสม

พารามิเตอร์ต่อไปนี้เป็นพารามิเตอร์ที่ระบุไว้ใน Availability definition

  • party_size: จำนวนคนในกลุ่มที่ธุรกิจรองรับได้ในช่วงเวลาที่เลือก แผนภาพในบทความนี้แสดงวิธีต่างๆ ที่คุณสามารถกำหนดค่า ขนาดของปาร์ตี้
  • spots_open: จำนวนโต๊ะที่พร้อมให้บริการในขณะนี้สำหรับช่วงเวลาที่พร้อมให้บริการและขนาดปาร์ตี้ที่เฉพาะเจาะจง
  • spots_total: จำนวนโต๊ะทั้งหมดที่ผู้ขายมีสำหรับการกำหนดค่านี้ รวมถึงโต๊ะที่ไม่พร้อมให้บริการ

พารามิเตอร์ทั้ง 3 นี้ทำงานร่วมกันเพื่อสร้างการแสดงผังชั้นแบบดิจิทัล party_size คือจำนวนคนที่แต่ละโต๊ะรองรับได้ โดยจะมี รายการสำหรับแต่ละขนาดที่โต๊ะรองรับ spots_open และ spots_total คือจำนวนโต๊ะที่รองรับparty_sizeได้

ตัวอย่างแปลนชั้นที่ว่างเปล่า

ลองนึกภาพร้านอาหารที่มีผังพื้นต่อไปนี้และไม่มีการจองที่ใช้งานอยู่

รูปที่ 1 แปลนชั้นที่ไม่มีการจองที่ใช้งานอยู่

รูปที่ 1 แปลนพื้นที่มีการจองที่ใช้งานอยู่

ค่าสำหรับ 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

ฟีดความพร้อมให้บริการสำหรับช่วงเวลาหนึ่งของผู้ขายรายนี้จะมีลักษณะดังนี้

{
  "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
          }
        }
      ]
}

ตัวอย่างแปลนชั้นที่มีการจอง

ร้านอาหารที่มีโต๊ะกลมซึ่งจองไว้ก่อนหน้านี้มีดังนี้

รูปที่ 1 แปลนพื้นที่มีการจองที่ใช้งานอยู่ 1 รายการ

รูปที่ 2 แปลนพื้นที่มีการจองที่ใช้งานอยู่ 1 รายการ

ค่าสำหรับ 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

ฟีดความพร้อมให้บริการสำหรับช่วงเวลาหนึ่งของผู้ขายรายนี้จะมีลักษณะดังนี้

{
  "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 คน

รูปที่ 1 แปลนชั้นที่ไม่มีการจองที่ใช้งานอยู่

รูปที่ 3 แปลนพื้นที่มีการจองที่ใช้งานอยู่

ในกรณีที่ไม่มีการจองที่ใช้งานอยู่ ค่าสำหรับ 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 โต๊ะ

รูปที่ 1 แปลนพื้นที่มีการจองที่ใช้งานอยู่ 1 รายการซึ่งครอบคลุม 2 โต๊ะ

รูปที่ 4 แปลนพื้นที่มีการจองที่ใช้งานอยู่ 1 รายการซึ่งครอบคลุม 2 โต๊ะ

จากนั้นค่าของ 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