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 في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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)

تمثّل هذه السمة عدد الأماكن الإجمالي والأماكن المتوفّرة في فترة التوفّر هذه. أمثلة:

  • صف يوغا يتضمّن 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

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

يتجاهل هذا الحقل أي 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: "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" ...} أو `availability {...}' (لا تضبط ticketTypeId في هذا الوقت).

(اختياري)

durationRequirement

enum (DurationRequirement)

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

schedulingRuleOverrides

object (SchedulingRuleOverrides)

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

confirmationMode

enum (ConfirmationMode)

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

linkoutRequiredReason

enum (LinkoutRequiredReason)

اختياريّ. سبب ضرورة توفير رابط خارجي لهذه الخانة في حال ضبط هذه السمة، يجب أن يحتوي مورد التاجر الخاص بهذه الخانة على 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

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

roomDescription

object (Text)

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

التكرار

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

المتطلبات:

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

string (Timestamp format)

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

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

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 مع timeRange من 9:45 صباحًا إلى 11:00 صباحًا إلى عدم توفّر الفترات الزمنية من 9:30 صباحًا إلى 9:50 صباحًا، ومن 10:00 صباحًا إلى 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 حالي لتاجر يديره مجمّع سلع محدّد، وتعرضه.