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)

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

يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "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.
  • يشير 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

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

يتجاهل هذا الحقل أيّ ids لـ payment_option تم تحديدها في رسالة الخدمة. وبالمثل، لا يجب أن تكون معرّفات 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: "Adult weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "Adult weekends"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "Youth weekends"}

لتمثيل المستودع خلال أيام الأسبوع: 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" ...} أو "مدى التوفّر {...}" (لا تضبط ticketTypeId في هذه الفترة).

(اختياري)

durationRequirement

enum (DurationRequirement)

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

schedulingRuleOverrides

object (SchedulingRuleOverrides)

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

confirmationMode

enum (ConfirmationMode)

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

linkoutRequiredReason

enum (LinkoutRequiredReason)

اختيارية: سبب ضرورة توفُّر رابط يؤدي إلى خارج التطبيق لهذه المساحة في حال ضبطه، يجب أن يحتوي مورد التاجر لهذا الموضع على نموذج رابط صالح. (اختياري)

الموارد

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

تمثيل 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

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

roomDescription

object (Text)

اختيارية: وصف الغرفة المترجَم في حال ضبطه، يجب تقديم قيمة تلقائية. ويُفضَّل أيضًا توفير لغات شائعة للغة التاجر. (اختياري)

التكرار

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

المتطلبات:

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

string (Timestamp format)

الحد الأقصى الشامل للطابع الزمني بالتوقيت العالمي المنسق الذي تتكرر فيه معلومات التوفّر.

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

repeatEvery

string (Duration format)

يحدِّد الوقت بين خانات مدى التوفّر المتعاقبة.

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

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

ScheduleException

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

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

object (TimeRange)

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

مثال: إذا حدّدت الإعادة المدة 20 دقيقة، وقيمة repeatEvery‏ 30 دقيقة، وقيمة startTime‏ 9:00 صباحًا، وقيمة repeatUntil‏ 11:00 صباحًا، سيؤدي ScheduleException الذي يتضمن نطاقًا زمنيًا من 9:45 صباحًا إلى 11:00 صباحًا إلى عدم توفّر الفترات من 9:30 صباحًا إلى 9:50 صباحًا، ومن 10 صباحًا إلى 10:20 صباحًا، ومن 10:30 صباحًا إلى 10:50 صباحًا.

يُرجى العلم أنّه بما أنّ النطاق الزمني مغلق-مفتوح، لن تتأثر الفترة التي تبدأ في الساعة 11 صباحًا.

دفع مقدم

دفعة قد يتم تحصيلها من المستخدم كجزء من الحجز

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

object (PriceInfo)

حاوية لتفاصيل السعر

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)

الحدّ الأقصى و/أو الأدنى لخدمة أو رسوم

PriceRange

غلاف لمجموعة من المبالغ النقدية التي يتم التعامل معها على أنّها غير محدودة ما لم يتم ضبط كلتا القيمتَين يجب توفير سمة واحدة على الأقل من minAmount وmaxAmount.

تمثيل JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
الحقول
minPrice

object (Price)

الحد الأدنى للمبلغ

maxPrice

object (Price)

الحد الأقصى للمبلغ يجب أن تكون دائمًا > minPrice.

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_buffer ضمن SchedulingRules للخدمة المعنيّة.

firstBookableSec

string (int64 format)

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

lastOnlineCancellableSec

string (int64 format)

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

ConfirmationMode

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

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

LinkoutRequiredReason

السبب الذي يجعل خانة العرض تتضمّن تجربة ربط

عمليات التعداد
LINKOUT_REQUIRED_REASON_UNSPECIFIED القيمة التلقائية: لا تستخدِمها، فهي تساوي "غير معروف".
PAYMENT_REQUIRED يجب الدفع في منصة الشريك لحجز خانة.

الطُرق

replace

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