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 dari denah lantai. party_size adalah jumlah orang yang dapat ditampung setiap meja (akan ada entri untuk setiap ukuran yang dapat diakomodasi meja). 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 slot satu kali di penjual ini akan terlihat seperti:

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 telah 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 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 tabel gabungan

Ada banyak cara bagi restoran untuk menggabungkan meja guna mendukung grup yang lebih besar. Anda diharapkan menentukan spots_open dan spots_total dalam feed dengan cara yang secara akurat mencerminkan apakah Anda dapat menerima tamu dengan ukuran tertentu. Berikut adalah salah satu contoh cara menentukan penggabungan tabel. Cara penghitungan ini mungkin sedikit berbeda di feed Anda dan Anda dapat menentukan spots_open dan spots_total dengan cara yang sesuai dengan logika bisnis Anda.

Jika restoran mendukung penggabungan meja untuk membentuk grup yang lebih besar, Anda dapat memperbarui spots_open dan spots_total untuk mencerminkan hal ini.

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

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

Jika tidak ada 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
9 1 1
10 1 1

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

Gambar 4: Denah lantai dengan satu pemesanan aktif yang mencakup dua meja
Gambar 4: Denah lantai dengan satu pemesanan aktif yang mencakup 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