ساختار داده های در دسترس بودن برای رزروها

تعاریف پارامترها

همانطور که در تعریف Availability مشخص شده است:

  • party_size : اندازه مهمانی که می توان در این بازه زمانی در نظر گرفت. یک رستوران می‌تواند به‌طور هم‌زمان با چندین اسلات مرتبط شود، که هر کدام party_size متفاوتی را مشخص می‌کنند، اگر به‌عنوان مثال، ۲، ۳ یا ۴ نفر می‌توانند با رزرو بنشینند.
  • spots_open : تعداد نقاط موجود در حال حاضر برای این ورودی در دسترس بودن
  • spots_total : تعداد کل نقاطی که تاجر برای این پیکربندی دارد (از جمله مواردی که در دسترس نیستند)

این سه پارامتر با هم کار می کنند تا یک نمایش دیجیتالی از پلان طبقه ایجاد کنند. party_size تعداد افرادی است که هر میز می تواند در خود جای دهد (برای هر اندازه ای که میز می تواند در خود جای دهد یک ورودی وجود دارد). spots_open و spots_total تعداد میزهایی هستند که می توانند آن party_size در خود جای دهند.

نمونه طرح طبقه خالی

رستورانی را با پلان زیر و بدون رزرو فعال تصور کنید:

شکل 1: پلان طبقه بدون رزرو فعال
شکل 1: پلان طبقه بدون رزرو فعال

مقادیر party_size ، spots_open و spots_total عبارتند از:

اندازه_پارتی 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_size ، spots_open و spots_total عبارتند از:

اندازه_پارتی 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_open و spots_total به گونه ای مشخص کنید که به طور دقیق نشان دهد که آیا می توانید مهمانی هایی با اندازه معین را بپذیرید یا خیر. آنچه در زیر می آید نمونه ای از نحوه تعیین ترکیب جداول است. فیدهای شما ممکن است تا حدودی در نحوه محاسبه متفاوت باشد و برای شما قابل قبول است که spots_open و spots_total را به گونه ای مشخص کنید که با منطق تجاری شما مطابقت داشته باشد.

اگر رستورانی از ترکیب میزها برای تشکیل یک مهمانی بزرگتر پشتیبانی می کند، می توانید spots_open و spots_total خود را به روز کنید تا این موضوع را منعکس کند.

فرض کنید یک رستوران می تواند دو میز کوچک را برای یک مهمانی 7 تا 10 نفره ترکیب کند.

شکل 3: پلان طبقه بدون رزرو فعال
شکل 3: پلان طبقه بدون رزرو فعال

در صورت عدم رزرو فعال، مقادیر party_size ، spots_open و spots_total عبارتند از:

اندازه_پارتی 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_size ، spots_open و spots_total اکنون هستند:

اندازه_پارتی 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