建立保留項目的可用性資料

參數定義

Availability 定義中所述:

  • party_size:這個時段可容納的派對人數。一間餐廳可同時與多個時段建立關聯,每個時段都可指定不同的 party_size,例如 2 人、3 或 4 人可住在保留項目
  • spots_open:目前可供這個可用性項目的地點數量
  • spots_total:商家具備這項設定的地點總數 (包括無法使用的地點)

搭配使用這三個參數後,就能以數位方式呈現樓層平面圖。party_size 是每個資料表可以容納的人數 (每個資料表可支援的每種大小各有一個項目)。spots_openspots_total 是能夠容納該 party_size 的資料表數量。

空白平面圖範例

假設某間餐廳的樓層平面圖如下,沒有有效的預訂記錄:

圖 1:沒有有效預訂的平面圖
圖 1:無有效預訂的樓層平面圖

party_sizespots_openspots_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:內含一個有效預訂的平面圖
圖 2:內含一個 有效預訂的平面圖

現在 party_sizespots_openspots_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_openspots_total,以便準確反映自己是否能接受特定尺寸方。以下舉例說明如何指定合併資料表。您的動態饋給可能以不同的方式計算,您可以依據商業邏輯指定 spots_openspots_total

如果餐廳支援合併資料表來舉辦更大型派對,您可以更新 spots_openspots_total 來反映這一點。

假設餐廳可以結合兩張小桌子,用來容納 7 至 10 人的派對。

圖 3:沒有有效預訂的平面圖
圖 3:包含有效預訂的樓層平面圖

如果沒有有效的預訂,party_sizespots_openspots_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 人,當中會結合兩張小桌子。

圖 4:平面圖,其中有一個有效預訂,範圍橫跨兩個資料表
圖 4:內含一項有效預訂 (橫跨兩份資料表) 的平面圖

接著,party_sizespots_openspots_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