Menyusun data ketersediaan untuk Reservasi

Definisi parameter

Seperti yang ditentukan dalam definisi Availability:

  • party_size: Jumlah tamu yang dapat diakomodasi selama slot waktu ini. Restoran dapat dikaitkan dengan beberapa Slot untuk waktu yang sama, yang masing-masing menentukan party_size yang berbeda, jika misalnya 2, 3, atau 4 orang dapat duduk dengan reservasi
  • spots_open: Jumlah tempat yang saat ini tersedia untuk entri ketersediaan ini
  • spots_total: Jumlah total tempat yang dimiliki penjual untuk konfigurasi ini (termasuk yang tidak tersedia)

Ketiga parameter ini bekerja sama untuk membuat representasi digital denah lantai. party_size adalah jumlah orang yang dapat ditampung setiap tabel (akan ada entri untuk setiap ukuran yang dapat diakomodasi oleh tabel). spots_open dan spots_total adalah jumlah tabel yang dapat mengakomodasi party_size tersebut.

Contoh denah lantai kosong

Bayangkan sebuah restoran dengan denah lantai berikut dan tidak ada pemesanan aktif:

Gambar 1: Denah lantai tanpa pemesanan aktif
Gambar 1: Denah lantai tanpa pemesanan aktif

Nilai untuk party_size, spots_open, dan spots_total adalah:

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

Feed ketersediaan untuk satu slot waktu di penjual ini akan terlihat seperti ini:

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

Contoh denah lantai dengan pemesanan

Sekarang bayangkan salah satu meja bundar sudah dipesan:

Gambar 2: Denah lantai dengan satu pemesanan aktif
Gambar 2: Denah lantai dengan satu pemesanan aktif

Nilai untuk party_size, spots_open, dan spots_total sekarang akan menjadi:

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

Menentukan ketersediaan tempat makan dengan dukungan meja gabungan

Ada banyak cara yang dapat digunakan restoran untuk menggabungkan tabel guna mendukung kelompok yang lebih besar. Di feed Anda, Anda diharapkan untuk menentukan spots_open dan spots_total dengan cara yang secara akurat mencerminkan apakah Anda dapat menerima pihak dengan ukuran tertentu. Berikut ini adalah salah satu contoh cara menentukan tabel gabungan. Feed Anda mungkin berbeda dalam cara penghitungan ini, dan Anda boleh menentukan spots_open dan spots_total dengan cara yang sesuai dengan logika bisnis Anda.

Jika restoran mendukung penggabungan tabel untuk membentuk pesta yang lebih besar, Anda dapat memperbarui spots_open dan spots_total untuk menampilkan hal ini.

Misalnya, sebuah restoran dapat menggabungkan dua meja kecil untuk menampung 7-10 orang.

Gambar 3: Denah lantai tanpa pemesanan aktif
Gambar 3: Denah lantai tanpa pemesanan aktif

Jika tidak ada pemesanan yang aktif, nilai untuk party_size, spots_open, dan spots_total adalah:

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

Sekarang, dengan denah lantai yang sama, pemesanan dilakukan untuk pesta berkapasitas 10 orang yang menggabungkan dua meja kecil.

Gambar 4: Denah lantai dengan satu pemesanan aktif yang membentang di dua meja
Gambar 4: Denah lantai dengan satu pemesanan aktif yang membentang di dua meja

Kemudian, nilai untuk party_size, spots_open, dan spots_total sekarang adalah:

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