फ़ीड में उपलब्धता की जानकारी को व्यवस्थित करना

उपलब्धता का फ़ॉर्मैट चुनना

उपलब्धता का डेटा बताने के दो तरीके हैं: (1) बुकिंग के लिए उपलब्ध सीटें या (2) बार-बार होने वाली बुकिंग. अपने सभी व्यापारियों/कंपनियों और सेवाओं के लिए, सिर्फ़ एक तरीका चुनें. कोई एक तरीका चुनने के बाद, आपको पूरे इंटिग्रेशन (फ़ीड, बुकिंग सर्वर, और रीयल टाइम अपडेट) के लिए उसी तरीके का इस्तेमाल करना होगा.

उपलब्धता के लिए कौनसा फ़ॉर्मैट ज़्यादा सही है, यह तय करने के लिए नीचे दी गई गाइड का इस्तेमाल करें:

  • क्या आपके सिस्टम में, उपलब्धता को साफ़ तौर पर स्लॉट के तौर पर सेव किया जाता है, जैसे कि सुबह 8:00 बजे से सुबह 8:30 बजे तक?
    • Spots Open का इस्तेमाल करना
  • क्या आपके सिस्टम में, उपलब्धता को बार-बार होने वाले फ़ॉर्मैट में सेव किया जाता है, इसका मतलब है कि व्यापारियों/कंपनियों/कारोबारियों की सेवाएं, लगातार और कुछ बदलावों के साथ उपलब्ध होती हैं? उदाहरण के लिए, स्लॉट सुबह 9 बजे से शाम 5 बजे तक हर 15 मिनट में दोहराए जाते हैं. साथ ही, हर 15 मिनट में सिर्फ़ एक सीट उपलब्ध होती है.
  • क्या आपके कारोबारियों या कंपनियों की सेवाओं के लिए, एक से ज़्यादा स्लॉट एक साथ उपलब्ध हो सकते हैं? उदाहरण के लिए, किसी क्लास के लिए 30 सीटें खाली हैं
    • Spots Open का इस्तेमाल करना
  • क्या इनमें से कोई भी विकल्प लागू नहीं होता?
    • Spots Open का इस्तेमाल करना
    • ध्यान दें: बार-बार होने वाली प्रोसेस का इस्तेमाल करना ज़्यादा बेहतर होता है और इससे फ़ीड का साइज़ भी कम हो सकता है. हालांकि, अगर आपका डेटा मॉडल, बार-बार होने वाली प्रोसेस के साथ काम नहीं करता है, तो इसका इस्तेमाल करने का सुझाव नहीं दिया जाता. ऐसा इसलिए, क्योंकि आपको हर रीयल टाइम अपडेट के लिए, पूरे दिन के बार-बार होने वाले स्लॉट का फिर से हिसाब लगाना होगा.

    Spots Open

    पैरामीटर की परिभाषाएं:

    • spots_open: इस उपलब्धता वाली एंट्री के लिए, फ़िलहाल उपलब्ध सीटों की संख्या.
    • spots_total: इस कॉन्फ़िगरेशन के लिए, कारोबारी/कंपनी के पास मौजूद स्पॉट की कुल संख्या. इसमें वे स्पॉट भी शामिल हैं जो उपलब्ध नहीं हैं.

    स्पॉट ओपन करने का तरीका, हर स्लॉट की उपलब्धता के बारे में साफ़ तौर पर बताता है. साथ ही, एक ही सेवा के लिए कई स्पॉट वाले मॉडल के साथ काम करता है. ये दोनों पैरामीटर, सेवा की क्षमता को डिजिटल तरीके से दिखाने के लिए एक साथ काम करते हैं.

    बुकिंग होने पर, रीयल टाइम अपडेट की मदद से, spots_open की संख्या एक कम होनी चाहिए. हालांकि, spots_total की संख्या में कोई बदलाव नहीं होना चाहिए. spots_open = 0 होने के बाद, स्लॉट नहीं दिखेगा.

    सेवाओं के उदाहरण

    योग क्लास या ब्यूटी सलोन के फ़्लोर प्लान इस तरह के हों और कोई बुकिंग न की गई हो

    पहली इमेज: फ़्लोर प्लान, जिसमें कोई भी बुकिंग नहीं है

    इन कारोबारियों के दो स्लॉट के लिए, उपलब्धता फ़ीड कुछ ऐसा दिखेगा:

    JSON
        {
          "availability": [
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT
                  "merchant_id": "1001"
                },
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT
                  "merchant_id": "1001",
                }
              ]
        }
        

    बुकिंग की सुविधा वाली सेवाओं के उदाहरण

    दूसरी इमेज: फ़्लोर प्लान, जिसमें एक बुकिंग चालू है

    अब कोई उपयोगकर्ता, इनमें से किसी एक जगह को बुक करता है. बुकिंग होने पर, उपलब्धता अपडेट करने के लिए रीयल टाइम अपडेट जारी किया जाता है. हर दिन उपलब्धता की जानकारी वाले अगले फ़ीड में, यह बुकिंग दिखनी चाहिए. इन कारोबारियों/कंपनियों के उपलब्धता फ़ीड में, 1 सितंबर, 2018 को जीएमटी समय के मुताबिक, शाम 4:00:00 बजे के स्लॉट के लिए, स्पॉट_ओपन की वैल्यू एक कम हो जाएगी. 1 सितंबर, 2018 को रात 8:00:00 बजे GMT के स्लॉट में कोई बदलाव नहीं होगा.

    बुकिंग के साथ फ़ीड स्निपेट

    JSON
        {
          "availability": [
                {
                  "spots_total": 6,
                  "spots_open": 5,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT
                  "merchant_id": "1001"
                },
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT
                  "merchant_id": "1001",
                }
              ]
    }
        

    बार-बार होने वाला

    पैरामीटर की परिभाषाएं

    • बार-बार होने वाली उपलब्धता के स्लॉट: बार-बार होने वाली उपलब्धता के स्लॉट को दिखाने के लिए
    • repeat_until_sec: आखिरी स्लॉट के खत्म होने के समय का यूटीसी टाइमस्टैंप, जब तक कि उपलब्धता दोहराई जाती है.
    • repeat_every_sec: उपलब्धता के एक सेकंड के अंतराल के बीच के सेकंड की संख्या. उदाहरण के लिए, अगर repeat_every_sec = 1800 (30 मिनट) है और start_sec सुबह 9:00 बजे से शुरू होता है, तो स्लॉट हर 30 मिनट पर, 9:00 बजे, 9:30 बजे, 10:00 बजे वगैरह दोहराया जाएगा.
      • ध्यान दें: spots_open और spots_total की जानकारी देने की ज़रूरत नहीं है. जब तक schedule_exception की वैल्यू मौजूद नहीं होती, तब तक दोनों की वैल्यू 1 मानी जाती है

    बार-बार होने वाली सेवाओं के लिए, हर दिन उपलब्धता की जानकारी देने का तरीका. उदाहरण के लिए, हर दिन सुबह 9:00 बजे से शाम 5:00 बजे तक हर 30 मिनट में होने वाली सेवा. बार-बार होने वाले स्लॉट के लिए, स्लॉट की अवधि, दिन में स्लॉट शुरू होने का समय, स्लॉट को कितनी बार दोहराना है, और उसी दिन स्लॉट दोहराना कब बंद करना है, यह तय किया जाता है. ध्यान दें: हर दिन के लिए, बार-बार चलने वाले स्लॉट का एक नया सेट अलग से तय करना होगा. अगर समयसीमा के दौरान कोई स्लॉट पहले से बुक है, तो आपको शेड्यूल में अपवाद के तौर पर बताना होगा. उदाहरण के लिए, सुबह 9 बजे से रात 9 बजे तक हर आधे घंटे में दोहराएं. हालांकि, सुबह 11:00 बजे से 11:30 बजे तक दोहराना बंद करें. हर सेवा के लिए, दोहराए जाने की अवधि और शेड्यूल से जुड़ी शर्तें अलग-अलग होंगी.

    सेवाओं के उदाहरण

    ब्यूटी सलोन का फ़्लोर प्लान इस तरह का है और कोई बुकिंग नहीं है

    तीसरी इमेज: ऐसे फ़्लोर प्लान जिनके लिए कोई बुकिंग नहीं की गई है. यह माना जाता है कि हर सेवा के लिए सिर्फ़ एक जगह खाली है. उदाहरण के लिए, सायली हर 30 मिनट में बाल काटने की सेवा देती है, लेकिन एक बार में सिर्फ़ एक ग्राहक को सेवा दे सकती है.

    इन कारोबारियों के एक स्लॉट की उपलब्धता का फ़ीड कुछ ऐसा दिखेगा:

    फ़ीड स्निपेट:

    JSON
        {
        "availability": [
              {
                "merchant_id": "1001",
                "service_id": "1001",  # haircut
                "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT
                "duration_sec": 1800,
                "recurrence": {
                  "repeat_every_sec": 1800,
                  "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT
                }
              }
            ]
        }
        

    बुकिंग की सुविधा वाली सेवाओं के उदाहरण

    चौथी इमेज: फ़्लोर प्लान, जिसमें एक बुकिंग चालू है. यह माना जाता है कि हर सेवा के लिए सिर्फ़ एक जगह खाली है. उदाहरण के लिए, सायली हर 30 मिनट में बाल काटने की सेवा देती है, लेकिन एक बार में सिर्फ़ एक ग्राहक को सेवा दे सकती है.

    अब मान लें कि कोई उपयोगकर्ता दोपहर 12:30 बजे, सैली के साथ बाल कटवाने का अपॉइंटमेंट बुक करता है. जब कोई बुकिंग होती है, तो उपलब्धता की जानकारी को अपडेट करने के लिए रीयल टाइम में अपडेट जारी किया जाता है. हर दिन उपलब्धता की जानकारी देने वाले अगले फ़ीड में, यह बुकिंग दिखनी चाहिए. इन कारोबारियों/कंपनियों/कारोबारियों के लिए, उपलब्धता फ़ीड में अपवाद के तौर पर, 12:30 बजे से 1:00 बजे के बीच, 30 मिनट की सेवा के लिए अपॉइंटमेंट शेड्यूल करने की सुविधा नहीं होगी.

    बुकिंग वाला फ़ीड स्निपेट:

    JSON
        {
          "availability": [
                {
                  "merchant_id": "1001",
                  "service_id": "1001",
                  "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT
                  "duration_sec": 1800,
                  "recurrence": {
                    "repeat_every_sec": 1800,
                    "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT
                  },
                  "schedule_exception": [
                    {
                      "time_range": {
                        "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT
                        "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT
                      }
                    }
                  ],
                }
              ]
        }