为预留构建可用性数据

参数定义

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

此商家某个时间空档的可用性 Feed 将如下所示:

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

支持使用组合表指定餐厅空房情况

餐馆可以通过多种方式组合桌子,以支持较大的多人桌。您应在 Feed 中指定 spots_openspots_total,从而准确反映您能否接受给定规模的各方。以下示例说明了如何指定组合表。 您的 Feed 的计算方式可能略有不同,您可以按照自己业务逻辑的方式来指定 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