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)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
الحقول
startTime

string (Timestamp format)

وقت بدء خانة الموعد

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

مدة خانة المواعيد

مدة بالثواني مكونة من تسعة أرقام كسور كحد أقصى وتنتهي بالأرقام "s" مثال: "3.5s"

spotsTotal

string (int64 format)

عدد الأماكن المتاحة والأماكن المفتوحة في هذا المكان أمثلة:

  • صف يوغا من 10 أماكن مع 3 محجوزة: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • تم حجز جلسة تدليك كرسي بالكامل من قبل: availability {spotsTotal: 1, spotsOpen: 0 ...}

ملاحظة: في حال إرسال الطلبات باستخدام تنسيق ضغط مدى التوفّر المحدّد أدناه، سيتم استنتاج هذين الحقلَين.

  • يشير التكرار إلى spotsTotal=1 وspotsOpen=1.
  • يشير الجدول الزمني إلى الاستثناء 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

قائمة بالمعرّفات التي تشير إلى خيارات الدفع التي يمكن استخدامها للدفع مقابل هذه الخانة. ويتمّ تحديد خيارات الدفع الفعلية على مستوى "التاجر" ويمكن أيضًا مشاركتها بين عدّة تجّار.

يلغي هذا الحقل أي payments_option_ids محدد في رسالة الخدمة. وبالمثل، لا يجب أن تكون مَعلمات payment_option_ids المحدّدة هنا متوفّرة في رسالة الخدمة، ولكن يجب تحديدها على مستوى التاجر.

recurrence

object (Recurrence)

معلومات التكرار لمدى التوفّر، والتي تمثل أكثر من وقت بدء واحد. يجب أن يحتوي التكرار على مواعيد ليوم عمل واحد.

scheduleException[]

object (ScheduleException)

الأوقات التي لا يمكن فيها جدولة هذه الخدمة. للحد من عدد رسائل ScheduleException، يمكنك ضم الاستثناءات المجاورة.

deposit

object (Deposit)

يمكنك أيضًا إيداع مبلغ اختياري في مدى التوفّر هذا. لإلغاء إيداع الخدمة في حال تحديد واحد.

noShowFee

object (NoShowFee)

هذه السمة اختيارية عدم عرض أي رسوم لمدى التوفّر. يؤدي هذا الإجراء إلى إلغاء رسوم عدم العرض للخدمة في حال تحديد أحدها.

requireCreditCard

enum (RequireCreditCard)

تشير هذه السمة إلى ما إذا كان على المستخدم تقديم بطاقة ائتمان من أجل حجز خانة مدى التوفّر هذه. في حال عدم ضبط القيمة، يتم اكتسابها من مستوى الخدمة في حال ضبطها عليها. (اختياري)

ticketTypeId[]

string

يشير إلى قائمة بأنواع التذاكر المسموح بها في خانة مدى التوفّر هذه. في حال ترك هذه السياسة بدون ضبط، ستتم إتاحة جميع أنواع التذاكر في الخدمة الرئيسية لهذه الخانة. تجدر الإشارة إلى أنّه يجب تحديد قيم هذا الحقل في الخدمة الرئيسية. أمثلة:

  • خدمة بأربعة أنواع تذاكر: TicketType {ticketTypeId: "adult_1" ShortDescription: "الأشخاص البالغون أيام الأسبوع"} TicketType {ticketTypeId: "adult_2" ShortDescription: "Adult weeks"} 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: "كبار السن"}

للإشارة إلى توفّر أنواع التذاكر الثلاثة في هذه الخانة الزمنية، استخدِم السمة availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} أو "مدى التوفّر {...}". (لا تضبط TicketTypeId في هذه الخانة).

(اختياري)

durationRequirement

enum (DurationRequirement)

شرط إظهار مدة الخانات و/أو وقت الانتهاء. سيتم تجاهل هذا الحقل في حال عدم توفّر الخانة. لا تُستخدم في مجال النشاطات المقترَحة. (اختياري)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

قواعد جدولة مدى التوفّر في حال تعبئة الحقول، سيتم إلغاء أي قواعد جدولة مقابلة في SchedulingRules على مستوى الخدمة.

confirmationMode

enum (ConfirmationMode)

وضع التأكيد الذي سيتم استخدامه عند حجز مدى التوفّر هذا يجب تأكيد أو رفض محاولات إنشاء حجوزات لجداول التوفّر باستخدام وضع التأكيد CONFIRMATION_mode_SYNCHRONOUS أو الرفض على الفور. يجب رفض محاولات إنشاء حجوزات لجداول التوفّر باستخدام وضع التأكيد CONFIRMATION_mode_ASYNCHRONOUS على الفور أو إنشاؤها بالحالة "في انتظار المراجعة".

الموارد

يتم استخدام المورد لتمييز خانات التوفّر عن بعضها البعض عندما يكون أعضاء طاقم العمل أو الغرف المختلفة جزءًا من الخدمة. ويمكن أن توجد خانات متعددة للخدمة والفاصل الزمني نفسيهما عندما يكون لهما موارد مختلفة.

تمثيل JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
الحقول
staffId

string

معرّف اختياري لموظف يقدّم الخدمة. يحدّد هذا الحقل بيانات الموظفين في جميع التجّار والخدمات وسجلّات مدى التوفّر. يجب أيضًا أن تكون مستقرة بمرور الوقت للسماح بالارتباط مع الحجوزات السابقة. يجب أن يكون هذا الحقل متوفرًا في حال وجود employeeName.

staffName

string

اسم اختياري لموظف يقدّم الخدمة. سيتم عرض هذا الحقل للمستخدمين الذين يجرون حجزًا، ويجب أن يكون سهل القراءة للمستخدم، وليس معرّفًا مبهمًا. يجب أن يكون هذا الحقل متوفّرًا في حال توفّر userId.

roomId

string

معرّف اختياري للغرفة التي تتوفّر فيها الخدمة يحدّد هذا الحقل الغرفة على مستوى جميع التجّار والخدمات وسجلّات مدى التوفّر. يجب أيضًا أن تكون مستقرة بمرور الوقت للسماح بالارتباط مع الحجوزات السابقة. يجب أن يكون هذا الحقل متوفّرًا في حال توفّر اسم الغرفة.

roomName

string

اسم اختياري للغرفة التي تتوفّر فيها الخدمة. سيتم عرض هذا الحقل للمستخدمين الذين يجرون حجزًا، ويجب أن يكون سهل القراءة للمستخدم، وليس معرّفًا مبهمًا. (اختياري ولكن مطلوب في حال توفّر رقم تعريف الغرفة) في غرفة الطعام، يجب عدم استخدام اسم الغرفة إلا لمساحات الجلوس مثل البار أو الفناء، ويجب عدم استخدامه لقوائم الأسعار الثابتة أو الأنشطة الخاصة أو أي قيمة أخرى غير متعلقة بالغرف (مثل الحجز أو العشاء). ننصح بشدّة بعدم وجود غرفة مرتبطة بها في مساحة الجلوس التلقائية.

partySize

integer

مناسب فقط لتناول الطعام: حجم الحفل الذي يمكن استيعابه خلال هذه الفترة الزمنية. يمكن ربط مطعم ما بعدة خانات في الوقت نفسه، بحيث يحدد كل منها قيمة PartySize مختلفة، إذا كان بإمكان 2 أو 3 أو 4 أشخاص الجلوس في حجز.

التكرار

تكون رسائل التكرار اختيارية، ولكنها تتيح تمثيلاً أكثر دقّة لخانات التوفّر المتكرّرة بشكل منتظم. وهي تمثل عادةً جدول عمل ليوم واحد. يتم بعد ذلك استخدام رسائل ScheduleException لتمثيل النطاقات الزمنية المحجوزة/غير المتوفرة خلال يوم العمل.

المتطلبات:

  1. يجب ألا يؤدي توسيع خانات مدى التوفّر أو التكرارات إلى إنشاء خانات متطابقة. إذا تطابقت أرقام التعريف ووقت البدء والمدة والموارد، تُعتبر الخانات متطابقة.
  2. لا تخلط بين تنسيق التوفّر العادي والتكرار ضمن خانات خدمة واحدة. يفيد تكرار المعاملات التجّار/الخدمات التي توفّر مواعيد. التنسيق العادي مخصّص للتجّار/الخدمات الذين لديهم صفوف دراسية مجدولة بانتظام.
  3. يجب ألا تستمر التكرارات لأكثر من 24 ساعة.
تمثيل JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
الحقول
repeatUntil

string (Timestamp format)

الطابع الزمني الأقصى الشامل للتوقيت العالمي المنسَّق (UTC) يتكرر حتى تاريخ التوفّر.

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

تحدِّد هذه السياسة الوقت بين خانات التوفّر المتتالية.

مثال: إذا كانت مدة التوفّر 20 دقيقة، وتكرارًا كل 30 دقيقة ووقت البدء من 9:00 صباحًا، والتكرار حتى الساعة 11:00 صباحًا، سيؤدي ذلك إلى ظهور خانات من 9:9 إلى 9:20 صباحًا ومن 9:30 إلى 9:50 صباحًا ومن 10:20 صباحًا ومن 10:30 إلى 10:50 صباحًا و10:30 و10:51 صباحًا: (معلومات مطلوبة)

مدة بالثواني مكونة من تسعة أرقام كسور كحد أقصى وتنتهي بالأرقام "s" مثال: "3.5s"

ScheduleException

تمثل رسائل ScheduleException نطاقات زمنية محجوزة/غير متاحة خلال يوم العمل، وهي استثناءات للتكرار الموضح أعلاه. نظرًا لحجز الخانات الزمنية، يجب تحديث قائمة الاستثناءات لتعكس النطاقات الزمنية غير المتاحة حديثًا. يجب عدم تعديل التكرار نفسه.

تمثيل JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
الحقول
timeRange

object (TimeRange)

النطاق الزمني للاستثناء وسيتم اعتبار أي خانات موصوفة من خلال التكرار تتداخل مع هذا النطاق الزمني المغلق المفتوح أنّها غير متاحة.

مثال: إذا كان التكرار يحدد مدة 20 دقيقة، وتكرار كل من 30 دقيقة، ووقت البدء من 9:00 صباحًا، وتكرارًا حتى الساعة 11:00 صباحًا، فإن الجدول الزمني للاستثناء ذو النطاق الزمني من 9:45 صباحًا إلى 11:00 صباحًا سيجعل الخانات غير متاحة في الساعة 9:30-9:50 صباحًا و10:00 صباحًا و10:00 صباحًا:

ملاحظة: لن تتأثر الفترة الزمنية التي تبدأ في الساعة 11 صباحًا بما أنّ النطاق الزمني مغلق.

DurationRequirement

يشير هذا التعداد إلى المتطلّبات المتوفّرة للمستخدم لإقرار أو عرض مدة الخانات المطلوبة/وقت الانتهاء المطلوبَين.

عمليات التعداد
DURATION_REQUIREMENT_UNSPECIFIED لم يتم تحديد وقت الانتهاء. هذا هو الخيار التلقائي.
DO_NOT_SHOW_DURATION لا يظهر وقت الانتهاء للمستخدم.
MUST_SHOW_DURATION يجب أن يرى المستخدم وقت الانتهاء قبل أن يتسنّى تحديد موعد.

SchedulingRuleOverrides

قواعد الجدولة على مستوى مدى التوفّر

تمثيل JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
الحقول
lastBookableSec

string (int64 format)

آخر مرة (بالثواني) يمكن فيها حجز هذه الخانة. يجب أن يكون هذا الطابع الزمني قبل startSec من الخانة المطلوب الالتزام بها (إذا كان من المفترض أن يتمكن المستخدمون من الحجز بعد وقت البدء، استخدم SchedulingRules.min_booking_before_end_time على مستوى الخدمة). في حال توفُّرها، سيتم إلغاء أي عنصر محدّد في min_booking_buffers لقواعد scheduleRules للخدمة المقابلة.

firstBookableSec

string (int64 format)

المرة الأولى (بالثواني) التي يمكن فيها حجز هذه الخانة. يجب أن يكون هذا الطابع الزمني قبل startSec في الخانة أو lastBookableSec إذا تم تحديدها.

lastOnlineCancellableSec

string (int64 format)

في حال ضبط هذه السياسة، سيتم إلغاء آخر مرة (بالثواني منذ حقبة Unix) يمكن فيها إلغاء خانة المواعيد المحدّدة هذه من خلال ميزة "الحجز عبر Google". سيُلغي هذا الحقل أي قواعد إلغاء على مستوى الخدمة. (اختياري)

ConfirmationMode

أوضاع التأكيد المستخدَمة عند حجز مستندات مدى التوفّر

عمليات التعداد
CONFIRMATION_MODE_UNSPECIFIED لم يتم تحديد وضع التأكيد. وسيتم افتراض التأكيد المتزامن.
CONFIRMATION_MODE_SYNCHRONOUS وسيتم تأكيد الحجوزات في نطاق توفّره هذا بالتزامن.
CONFIRMATION_MODE_ASYNCHRONOUS سيتم تأكيد الحجوزات لهذا مدى التوفّر بشكل غير متزامن.

الطُرق

replace

تستبدل Availability لسمة Service حالية خاصة بتاجر يديره موقع التجميع المحدّد وتُرجعه.