Sắp xếp dữ liệu về tình trạng còn chỗ cho tính năng Đặt trước

Định nghĩa tham số

Như được chỉ định trong định nghĩa Availability:

  • party_size: Số người có thể được phục vụ trong khung giờ này. Một nhà hàng có thể được liên kết với nhiều Slot cho cùng một thời gian, mỗi Slot chỉ định một party_size khác nhau, nếu chẳng hạn như 2, 3 hoặc 4 người có thể ngồi với một lượt đặt chỗ
  • spots_open: Số lượng chỗ hiện có cho mục nhập lịch rảnh này
  • spots_total: Tổng số vị trí mà người bán có cho cấu hình này (kể cả những vị trí không có sẵn)

Ba thông số này phối hợp với nhau để tạo ra một bản trình bày kỹ thuật số về sơ đồ mặt bằng. party_size là số người mà mỗi bàn có thể chứa (sẽ có một mục cho mỗi kích thước mà bàn có thể chứa). spots_openspots_total là số lượng bàn có thể chứa party_size đó.

Ví dụ về sơ đồ tầng trống

Hãy tưởng tượng một nhà hàng có sơ đồ mặt bằng sau đây và không có lượt đặt chỗ nào đang hoạt động:

Hình 1: Sơ đồ mặt bằng không có lượt đặt phòng đang hoạt động
Hình 1: Sơ đồ mặt bằng không có lượt đặt phòng nào đang hoạt động

Các giá trị cho party_size, spots_openspots_total sẽ là:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1

Nguồn cấp dữ liệu về tình trạng còn chỗ cho một khung giờ tại người bán này sẽ có dạng như sau:

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

Ví dụ về sơ đồ mặt bằng có yêu cầu đặt chỗ

Bây giờ, hãy tưởng tượng rằng một trong các bàn tròn đã được đặt trước:

Hình 2: Sơ đồ mặt bằng có một lượt đặt phòng đang hoạt động
Hình 2: Sơ đồ mặt bằng có một lượt đặt phòng đang hoạt động

Các giá trị cho party_size, spots_openspots_total hiện sẽ là:

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

Chỉ định tình trạng còn chỗ ăn uống bằng tính năng hỗ trợ kết hợp bàn

Nhà hàng có thể kết hợp các bàn theo nhiều cách để phục vụ các nhóm lớn hơn. Bạn phải chỉ định spots_openspots_total trong nguồn cấp dữ liệu theo cách phản ánh chính xác việc bạn có thể chấp nhận nhóm khách có một số lượng người nhất định hay không. Sau đây là một ví dụ về cách bạn có thể chỉ định kết hợp các bảng. Nguồn cấp dữ liệu của bạn có thể có sự khác biệt về cách tính toán này và bạn có thể chỉ định spots_openspots_total theo cách phù hợp với logic kinh doanh của bạn.

Nếu một nhà hàng hỗ trợ việc kết hợp các bàn để phục vụ một nhóm lớn hơn, bạn có thể cập nhật spots_openspots_total để phản ánh điều này.

Ví dụ: một nhà hàng có thể kết hợp 2 bàn nhỏ để phục vụ nhóm từ 7 đến 10 người.

Hình 3: Sơ đồ mặt bằng không có lượt đặt phòng nào đang hoạt động
Hình 3: Sơ đồ mặt bằng không có lượt đặt phòng đang hoạt động

Trong trường hợp không có lượt đặt phòng nào đang hoạt động, các giá trị cho party_size, spots_openspots_total là:

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

Giờ đây, với cùng một sơ đồ mặt bằng, một lượt đặt phòng được thực hiện cho nhóm 10 người, kết hợp hai bàn nhỏ.

Hình 4: Sơ đồ mặt bằng có một lượt đặt phòng đang hoạt động trải dài trên 2 bàn
Hình 4: Sơ đồ mặt bằng có một lượt đặt chỗ đang hoạt động trải dài trên 2 bàn

Sau đó, các giá trị cho party_size, spots_openspots_total sẽ là:

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