REST Resource: inventory.partners.merchants.services.availability

منبع: در دسترس بودن

بازه زمانی در دسترس بودن خدمات فروشنده، که زمان و تعداد نقاط را نشان می‌دهد.

نمایش JSON
{
  "startTime": string,
  "duration": string,
  "spotsTotal": string,
  "spotsOpen": string,
  "availabilityTag": string,
  "resources": {
    object (Resources)
  },
  "paymentOptionId": [
    string
  ],
  "recurrence": {
    object (Recurrence)
  },
  "scheduleException": [
    {
      object (ScheduleException)
    }
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "prepayment": {
    object (Prepayment)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode),
  "linkoutRequiredReason": enum (LinkoutRequiredReason)
}
فیلدها
startTime

string ( Timestamp format)

زمان شروع قرار ملاقات.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولید شده همیشه به صورت Z-normalized خواهد بود و از ارقام کسری ۰، ۳، ۶ یا ۹ استفاده می‌کند. آفست‌های غیر از "Z" نیز پذیرفته می‌شوند. مثال‌ها: "2014-10-02T15:01:23Z" ، "2014-10-02T15:01:23.045123456Z" یا "2014-10-02T15:01:23+05:30" .

duration

string ( Duration format)

مدت زمان قرار ملاقات

مدت زمانی بر حسب ثانیه با حداکثر نه رقم کسری که به ' s ' ختم می‌شود. مثال: "3.5s" .

spotsTotal

string ( int64 format)

تعداد کل جایگاه‌ها و جایگاه‌های خالی این ظرفیت. مثال‌ها:

  • کلاس یوگا با ۱۰ جای خالی و ۳ جای رزرو شده: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • جلسه ماساژ با صندلی که از قبل رزرو شده است: availability {spotsTotal: 1, spotsOpen: 0 ...}

توجه: اگر درخواست‌ها با استفاده از قالب فشرده‌سازی دسترسی‌پذیری تعریف‌شده در زیر ارسال شوند، این دو فیلد استنباط خواهند شد.

  • یک Recurrence به معنی spotsTotal=1 و spotsOpen=1 است.
  • یک ScheduleException به معنی spotsTotal=1 و spotsOpen=0 است.
spotsOpen

string ( int64 format)

تعداد نقاط باز.

availabilityTag

string

یک رشته‌ی مبهم اختیاری برای شناسایی این بازه زمانی خالی. در صورت تنظیم، در درخواست‌هایی که قرار ملاقات‌ها را رزرو/به‌روزرسانی/لغو می‌کنند، لحاظ خواهد شد.

resources

object ( Resources )

منابع اختیاری که برای رفع ابهام این بازه زمانی از سایر بازه‌های زمانی استفاده می‌شوند، زمانی که کارکنان یا اتاق‌های مختلفی بخشی از سرویس هستند.

به عنوان مثال، همان کلاس یوگا با دو مربی:

availability { resources { staffId: "1" staffName: "Amy" }
               spotsTotal: 10 spotsOpen: 7 }
availability { resources { staffId: "2" staffName: "John" }
               spotsTotal: 5 spotsOpen: 2 }
paymentOptionId[]

string

فهرستی از شناسه‌ها که به گزینه‌های پرداختی اشاره دارند که می‌توانند برای پرداخت هزینه این اسلات استفاده شوند. گزینه‌های پرداخت واقعی در سطح فروشنده تعریف می‌شوند و همچنین می‌توانند بین چندین فروشنده به اشتراک گذاشته شوند.

این فیلد هرگونه payment_option_ids مشخص شده در پیام سرویس را لغو می‌کند. به طور مشابه payment_option_ids مشخص شده در اینجا لازم نیست در پیام سرویس وجود داشته باشند، اگرچه باید در سطح فروشنده تعریف شوند.

recurrence

object ( Recurrence )

اطلاعات تکرار برای در دسترس بودن، که نشان دهنده بیش از یک زمان شروع است. یک تکرار باید شامل قرار ملاقات‌ها برای یک روز کاری باشد.

scheduleException[]

object ( ScheduleException )

زمان‌هایی که نمی‌توان این سرویس را زمان‌بندی کرد. برای محدود کردن تعداد پیام‌های scheduleException، اتصال استثناهای مجاور را در نظر بگیرید.

deposit

object ( Deposit )

سپرده اختیاری برای این قابلیت. در صورت مشخص شدن سپرده خدمات، آن را لغو می‌کند.

noShowFee

object ( NoShowFee )

هزینه عدم نمایش برای این دسترسی اختیاری است. در صورت مشخص بودن هزینه عدم نمایش، این هزینه لغو می‌شود.

prepayment

object ( Prepayment )

اختیاری. اطلاعات پیش‌پرداخت اختیاری برای این موجودی.

requireCreditCard

enum ( RequireCreditCard )

نشان می‌دهد که آیا کاربر برای رزرو این بازه زمانی باید کارت اعتباری ارائه دهد یا خیر. اگر مقدار آن تنظیم نشده باشد، از سطح سرویسی که در آن تنظیم شده است، به ارث می‌رسد. (اختیاری)

ticketTypeId[]

string

فهرستی از انواع تیکت‌های پشتیبانی‌شده برای این بازه زمانیِ در دسترس بودن را نشان می‌دهد. در صورت عدم تنظیم، همه انواع تیکت در سرویس والد برای این بازه زمانی در دسترس هستند. توجه داشته باشید که مقادیر این فیلد باید در سرویس والد تعریف شوند. مثال‌ها:

  • سرویس با چهار نوع بلیط: TicketType {ticketTypeId: "adult_1" shortDescription: "روزهای هفته بزرگسالان"} TicketType {ticketTypeId: "adult_2" shortDescription: "آخر هفته بزرگسالان"} TicketType {ticketTypeId: "youth_1" shortDescription: "روزهای هفته جوانان"} TicketType {ticketTypeId: "youth_2" shortDescription: "آخر هفته جوانان"}

برای نمایش موجودی در طول روزهای هفته: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...} . برای نمایش موجودی در طول تعطیلات: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...} .

  • سرویس با سه نوع بلیط: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

برای نشان دادن اینکه هر سه نوع بلیط برای این بازه زمانی در دسترس هستند، از availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} یا `availability {...}' استفاده کنید (ticketTypeId را در این بازه زمانی تنظیم نکنید).

(اختیاری)

durationRequirement

enum ( DurationRequirement )

الزام نمایش مدت زمان و/یا زمان پایان هر بازه زمانی. در صورت عدم دسترسی به بازه زمانی، این فیلد نادیده گرفته می‌شود. در ستون «کارها باید انجام شوند» استفاده نمی‌شود. (اختیاری)

schedulingRuleOverrides

object ( SchedulingRuleOverrides )

قوانین زمان‌بندی دسترسی. اگر فیلدها پر شوند، هرگونه قانون زمان‌بندی مربوطه در SchedulingRules سطح سرویس را لغو می‌کنند.

confirmationMode

enum ( ConfirmationMode )

حالت تأییدی که هنگام رزرو این موجودی استفاده خواهد شد. تلاش برای ایجاد رزرو برای موجودی‌هایی با حالت تأیید CONFIRMATION_MODE_SYNCHRONOUS باید فوراً تأیید یا رد شود. تلاش برای ایجاد رزرو برای موجودی‌هایی با حالت تأیید CONFIRMATION_MODE_ASYNCHRONOUS باید یا فوراً رد شود یا با وضعیت PENDING ایجاد شود.

linkoutRequiredReason

enum ( LinkoutRequiredReason )

اختیاری. دلیل نیاز به linkout برای این اسلات. در صورت تنظیم، منبع فروشنده برای این اسلات باید یک LinkoutTemplate معتبر داشته باشد. (اختیاری)

منابع

یک منبع برای تفکیک بازه‌های زمانی در دسترس از یکدیگر استفاده می‌شود، زمانی که کارکنان یا اتاق‌های مختلفی بخشی از سرویس هستند. چندین بازه زمانی برای یک سرویس و بازه زمانی یکسان می‌توانند در کنار هم وجود داشته باشند، زمانی که منابع مختلفی دارند.

نمایش JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer,
  "roomDescription": {
    object (Text)
  }
}
فیلدها
staffId

string

شناسه اختیاری برای کارمندی که خدمات را ارائه می‌دهد. این فیلد، کارمند را در تمام فروشگاه‌ها، خدمات و سوابق در دسترس بودن شناسایی می‌کند. همچنین باید در طول زمان پایدار باشد تا امکان همبستگی با رزروهای گذشته فراهم شود. در صورت وجود staffName، این فیلد باید وجود داشته باشد.

staffName

string

نام اختیاری یکی از کارکنان ارائه دهنده خدمات. این فیلد برای کاربرانی که رزرو انجام می‌دهند نمایش داده می‌شود و باید خوانا باشد، نه اینکه یک شناسه مبهم باشد. در صورت وجود staffId، این فیلد باید موجود باشد.

roomId

string

یک شناسه اختیاری برای اتاقی که سرویس در آن قرار دارد. این فیلد، اتاق را در بین تمام فروشندگان، سرویس‌ها و رکوردهای در دسترس بودن مشخص می‌کند. همچنین باید در طول زمان پایدار باشد تا امکان همبستگی با رزروهای گذشته فراهم شود. در صورت وجود roomName، این فیلد نیز باید موجود باشد.

roomName

string

یک نام اختیاری برای اتاقی که سرویس در آن قرار دارد. این فیلد برای کاربرانی که رزرو انجام می‌دهند نمایش داده می‌شود و باید برای انسان قابل خواندن باشد، برخلاف یک شناسه مبهم. (اختیاری اما در صورت وجود roomId الزامی است) در غذاخوری، نام اتاق فقط باید برای قسمت‌های نشیمن مانند بار یا پاسیو استفاده شود و نباید برای منوهای با قیمت ثابت، فعالیت‌های ویژه یا هر مقدار غیر اتاقی دیگری (مانند رزرو یا شام) استفاده شود. اکیداً توصیه می‌شود که قسمت نشیمن پیش‌فرض، اتاقی مرتبط با آن نداشته باشد.

partySize

integer

فقط برای صرف غذا: تعداد نفراتی که می‌توانند در این بازه زمانی در رستوران حضور داشته باشند. یک رستوران می‌تواند برای یک زمان مشخص به چندین جایگاه اختصاص داده شود که هر کدام تعداد نفرات متفاوتی را مشخص می‌کنند، مثلاً اگر ۲، ۳ یا ۴ نفر بتوانند با رزرو قبلی در آن بنشینند.

roomDescription

object ( Text )

اختیاری. توضیحات اتاق محلی. در صورت تنظیم، باید یک مقدار پیش‌فرض ارائه شود. ترجیح داده می‌شود زبان‌های رایج برای زبان فروشنده نیز ارائه شود. (اختیاری)

عود

پیام‌های تکرار اختیاری هستند، اما امکان نمایش فشرده‌تری از بازه‌های زمانی در دسترس بودن که به طور مداوم تکرار می‌شوند را فراهم می‌کنند. آن‌ها معمولاً نشان‌دهنده برنامه کاری یک روز هستند. سپس از پیام‌های ScheduleException برای نمایش محدوده‌های زمانی رزرو شده/در دسترس نبودن در روز کاری استفاده می‌شود.

الزامات:

  1. گسترش اسلات‌های در دسترس یا تکرارها نباید اسلات‌های یکسان ایجاد کند. اگر شناسه‌ها، زمان شروع، مدت زمان و منابع مطابقت داشته باشند، اسلات‌ها یکسان در نظر گرفته می‌شوند.
  2. قالب استاندارد دسترسی و دوره‌های تکرار را در بازه‌های زمانی یک سرویس واحد با هم ترکیب نکنید. دوره‌های تکرار به نفع فروشندگان/سرویس‌هایی است که قرار ملاقات ارائه می‌دهند. قالب استاندارد برای فروشندگان/سرویس‌هایی با کلاس‌های منظم برنامه‌ریزی شده است.
  3. دوره‌های عود نباید بیش از ۲۴ ساعت طول بکشد.
نمایش JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
فیلدها
repeatUntil

string ( Timestamp format)

حداکثر زمان UTC فراگیر که در دسترس بودن تا آن زمان تکرار می‌شود.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولید شده همیشه به صورت Z-normalized خواهد بود و از ارقام کسری ۰، ۳، ۶ یا ۹ استفاده می‌کند. آفست‌های غیر از "Z" نیز پذیرفته می‌شوند. مثال‌ها: "2014-10-02T15:01:23Z" ، "2014-10-02T15:01:23.045123456Z" یا "2014-10-02T15:01:23+05:30" .

repeatEvery

string ( Duration format)

زمان بین اسلات‌های دسترسی متوالی را تعریف می‌کند.

مثال: یک بازه زمانی ۲۰ دقیقه‌ای برای دسترسی، بازه زمانی تکرار ۳۰ دقیقه‌ای، بازه زمانی شروع ۹:۰۰ صبح و بازه زمانی تکرار تا ساعت ۱۱:۰۰ صبح، بازه‌های زمانی ۹-۹:۲۰ صبح، ۹:۳۰-۹:۵۰ صبح، ۱۰-۱۰:۲۰ صبح، ۱۰:۳۰-۱۰:۵۰ صبح، ۱۱-۱۱:۲۰ صبح را نشان می‌دهد. (الزامی)

مدت زمانی بر حسب ثانیه با حداکثر نه رقم کسری که به ' s ' ختم می‌شود. مثال: "3.5s" .

استثنای زمانبندی

پیام‌های ScheduleException نشان‌دهنده محدوده‌های زمانی رزرو شده/غیرقابل دسترس در روز کاری هستند که استثناهایی برای تکرار شرح داده شده در بالا محسوب می‌شوند. با رزرو شدن بازه‌های زمانی، لیست استثناها باید به‌روزرسانی شود تا محدوده‌های زمانی جدید غیرقابل دسترس را منعکس کند. خود تکرار نباید تغییر کند.

نمایش JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
فیلدها
timeRange

object ( TimeRange )

محدوده زمانی استثنا. هر بازه زمانی که توسط تکرار توصیف شده و با این محدوده زمانی بسته-باز همپوشانی داشته باشد، غیرقابل دسترس در نظر گرفته خواهد شد.

مثال: اگر تابع تکرار مدت زمان ۲۰ دقیقه، repeatEvery به مدت ۳۰ دقیقه، startTime به مدت ۹:۰۰ صبح و repeatUntil به مدت ۱۱:۰۰ صبح را مشخص کند، آنگاه یک ScheduleException با timeRange به مدت ۹:۴۵ صبح تا ۱۱:۰۰ صبح، اسلات‌های ۹:۳۰ تا ۹:۵۰ صبح، ۱۰:۱۰ تا ۱۰:۲۰ صبح و ۱۰:۳۰ تا ۱۰:۵۰ صبح را از دسترس خارج می‌کند.

توجه داشته باشید که از آنجا که محدوده زمانی بسته-باز است، بازه زمانی شروع شده از ساعت ۱۱ صبح تحت تأثیر قرار نمی‌گیرد.

پیش‌پرداخت

مبلغی که ممکن است به عنوان بخشی از رزرو از کاربر دریافت شود.

نمایش JSON
{
  "priceInfo": {
    object (PriceInfo)
  }
}
فیلدها
priceInfo

object ( PriceInfo )

کانتینر برای جزئیات قیمت.

اطلاعات قیمت

کانتینر برای جزئیات قیمت.

نمایش JSON
{
  "priceType": enum (PriceType),

  // Union field price_options can be only one of the following:
  "price": {
    object (Price)
  },
  "priceRange": {
    object (PriceRange)
  }
  // End of list of possible types for union field price_options.
}
فیلدها
priceType

enum ( PriceType )

نحوه اعمال قیمت یا محدوده قیمت (به ازای هر نفر یا ثابت) را تعریف می‌کند.

فیلد اتحادیه‌ای price_options . گزینه‌های قیمت می‌توانند یا قیمت دقیق یا یک محدوده را مشخص کنند. price_options فقط می‌تواند یکی از موارد زیر باشد:
price

object ( Price )

قیمت یک خدمت یا هزینه.

priceRange

object ( PriceRange )

حد بالا و/یا پایین یک سرویس یا هزینه.

محدوده قیمت

بسته‌بندی برای طیف وسیعی از مبالغ پولی، به عنوان نامحدود در نظر گرفته می‌شود، مگر اینکه هر دو مقدار تنظیم شده باشند. حداقل یکی از minAmount و maxAmount مورد نیاز است.

نمایش JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
فیلدها
minPrice

object ( Price )

حداقل مقدار.

maxPrice

object ( Price )

حداکثر مبلغ. همیشه باید بزرگتر از حداقل قیمت باشد.

مدت زمانالزام

این enum نشان می‌دهد که چه الزاماتی برای کاربر وجود دارد تا مدت زمان/زمان پایان اسلات‌های درخواستی را تأیید یا مشاهده کند.

انوم‌ها
DURATION_REQUIREMENT_UNSPECIFIED نحوه‌ی مدیریت زمان پایان مشخص نشده است. این پیش‌فرض است.
DO_NOT_SHOW_DURATION زمان پایان به کاربر نشان داده نمی‌شود.
MUST_SHOW_DURATION قبل از تعیین وقت ملاقات، زمان پایان باید به کاربر نشان داده شود.

لغو قوانین زمانبندی

قوانین زمان‌بندی سطح دسترسی

نمایش JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
فیلدها
lastBookableSec

string ( int64 format)

آخرین زمانی (به ثانیه) که این اسلات می‌تواند رزرو شود. این مهر زمانی باید قبل از startSec اسلات باشد تا رعایت شود (اگر کاربران باید بتوانند پس از زمان شروع رزرو کنند، از Service Level SchedulingRules.min_booking_before_end_time استفاده کنید). در صورت وجود، هر چیزی که در min_booking_buffer از Service مربوطه SchedulingRules مشخص شده است را لغو می‌کند.

firstBookableSec

string ( int64 format)

اولین باری (به ثانیه) که این اسلات می‌تواند رزرو شود. این مهر زمانی باید قبل از startSec اسلات یا در صورت مشخص شدن lastBookableSec باشد.

lastOnlineCancellableSec

string ( int64 format)

در صورت تنظیم، آخرین باری (به ثانیه از زمان عصر یونیکس) که این بازه زمانی خاص از طریق رزرو با گوگل قابل لغو است. این فیلد هرگونه قانون لغو در سطح سرویس را لغو می‌کند. (اختیاری)

حالت تأیید

روش‌های تأیید مورد استفاده هنگام رزرو ظرفیت‌های موجود.

انوم‌ها
CONFIRMATION_MODE_UNSPECIFIED حالت تأیید مشخص نشده است. تأیید همزمان فرض خواهد شد.
CONFIRMATION_MODE_SYNCHRONOUS رزرو برای این ظرفیت به صورت همزمان تأیید خواهد شد.
CONFIRMATION_MODE_ASYNCHRONOUS رزرو برای این ظرفیت به صورت غیرهمزمان تأیید خواهد شد.

دلیل لازم برای لینک‌اوت

دلیل اینکه یک اسلات تجربه لینک اوت دارد.

انوم‌ها
LINKOUT_REQUIRED_REASON_UNSPECIFIED مقدار پیش‌فرض: استفاده نشود، معادل ناشناخته است.
PAYMENT_REQUIRED برای رزرو اسلات، پرداخت در پلتفرم همکار الزامی است.

روش‌ها

replace

« Availability Service موجود یک فروشنده که توسط تجمیع‌کننده مشخص شده مدیریت می‌شود» را جایگزین کرده و آن را برمی‌گرداند.