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 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

duration

string (Duration format)

약속 시간대의 기간입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

spotsTotal

string (int64 format)

이 이용 가능 시간대의 총 자릿수 및 이용 가능한 자릿수입니다. 예:

  • 10자리 중 3자리가 예약된 요가 수업: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • 예약이 모두 완료된 체어 마사지 세션: availability {spotsTotal: 1, spotsOpen: 0 ...}

참고: 아래에 정의된 이용 가능 여부 압축 형식을 사용하여 요청을 보내면 이 두 필드가 추론됩니다.

  • 반복은 spotsTotal=1spotsOpen=1을 의미합니다.
  • ScheduleException은 spotsTotal=1spotsOpen=0를 의미합니다.
spotsOpen

string (int64 format)

이용 가능한 자릿수입니다.

availabilityTag

string

이 이용 가능 시간대를 나타내는 불투명 문자열입니다(선택사항). 설정된 경우 예약을 예약/업데이트/취소하는 요청에 포함됩니다.

resources

object (Resources)

다른 직원이나 방이 서비스의 일부인 경우 이 이용 가능 시간대를 다른 이용 가능 시간대와 구별하기 위한 리소스입니다(선택사항).

예: 2명의 강사가 진행하는 동일한 요가 수업:

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

string

이 시간대의 비용을 지불하는 데 사용할 수 있는 결제 옵션을 참조하는 ID 목록입니다. 실제 결제 옵션은 판매자 수준에서 정의되며 여러 판매자 간에 공유될 수도 있습니다.

이 필드는 서비스 메시지에 지정된 모든 payment_option_ids를 재정의합니다. 마찬가지로 여기에 지정된 payment_option_ids는 서비스 수준 메시지에는 없어도 되지만 판매자 수준에서는 정의되어야 합니다.

recurrence

object (Recurrence)

두 개 이상의 시작 시간을 나타내는 이용 가능 시간대의 반복 정보입니다. 반복에는 영업일 기준 1일의 약속이 포함되어야 합니다.

scheduleException[]

object (ScheduleException)

이 서비스를 예약할 수 없는 시간입니다. scheduleException 메시지의 수를 제한하려면 인접한 예외를 결합해보세요.

deposit

object (Deposit)

이 이용 가능 시간대의 보증금입니다(선택사항). 지정된 경우 서비스 보증금이 재정의됩니다.

noShowFee

object (NoShowFee)

이 이용 가능 시간대의 예약 불이행 수수료입니다(선택사항). 지정된 경우 서비스 예약 불이행 수수료가 재정의됩니다.

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 상태로 생성해야 합니다.

자료

리소스는 다른 직원이나 방이 서비스의 일부인 경우 이용 가능 시간대를 서로 구별하는 데 사용됩니다. 서로 다른 리소스가 있는 경우 동일한 서비스 및 시간 간격의 여러 시간대가 공존할 수 있습니다.

JSON 표현
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
필드
staffId

string

서비스를 제공하는 직원의 ID입니다(선택사항). 이 필드는 모든 판매자, 서비스, 이용 가능 여부 레코드에서 직원을 식별합니다. 또한 이전 예약과 연계할 수 있으려면 시간이 경과해도 이 필드 값이 안정적이어야 합니다. staffName이 있으면 이 필드가 있어야 합니다.

staffName

string

서비스를 제공하는 직원의 이름입니다(선택사항). 이 필드는 예약하는 사용자에게 표시되며 불투명 식별자와 달리 사람이 읽을 수 있어야 합니다. staffId가 있으면 이 필드가 있어야 합니다.

roomId

string

서비스가 위치한 방의 ID입니다(선택사항). 이 필드는 모든 판매자, 서비스, 이용 가능 여부 레코드에서 방을 식별합니다. 또한 이전 예약과 연계할 수 있으려면 시간이 경과해도 이 필드 값이 안정적이어야 합니다. roomName이 있으면 이 필드가 있어야 합니다.

roomName

string

서비스가 위치한 방의 이름입니다(선택사항). 이 필드는 예약하는 사용자에게 표시되며 불투명 식별자와 달리 사람이 읽을 수 있어야 합니다. (선택사항이지만 roomId가 있는 경우 필수) 식당에서 객실 이름은 바 또는 테라스와 같은 휴식 공간에만 사용해야 하며 고정 가격 메뉴, 특별 활동 또는 기타 객실이 아닌 값 (예: 예약 또는 저녁 식사)에는 사용해서는 안 됩니다. 기본 좌석 공간에는 연결된 방이 없는 것이 좋습니다.

partySize

integer

식당에만 해당함: 이 시간대에 수용할 수 있는 인원수입니다. 예를 들어 2, 3 또는 4인석을 예약할 수 있는 음식점의 경우 각각 다른 partySize를 지정하여 동시에 여러 시간대에 연결할 수 있습니다.

반복

반복 메시지는 선택사항이지만 지속적으로 반복되는 이용 가능 시간대를 더 간단하게 표현할 수 있습니다. 일반적으로 하루의 작업 일정을 나타내며, 영업일 내의 예약된 기간 및 예약이 불가능한 기간은 ScheduleException 메시지를 사용하여 나타냅니다.

요건:

  1. 이용 가능 시간대를 확장하거나 반복하여 동일한 시간대를 생성해서는 안 됩니다. ids, startTime, duration 및 resources가 일치하면 시간대가 동일한 것으로 간주됩니다.
  2. 단일 서비스의 시간대 내에서 표준 이용 가능 시간대 형식과 반복을 혼용하지 마세요. 반복은 약속을 제공하는 판매자/서비스에 도움이 됩니다. 표준 형식은 정기적으로 예약된 수업을 제공하는 판매자/서비스에 적합합니다.
  3. 반복은 24시간 이상 지속되지 않아야 합니다.
JSON 표현
{
  "repeatUntil": string,
  "repeatEvery": string
}
필드
repeatUntil

string (Timestamp format)

이용 가능 시간대가 반복될 때까지의 최대 UTC 타임스탬프입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

repeatEvery

string (Duration format)

연속된 이용 가능 시간대 사이의 시간을 정의합니다.

예: 이용 가능 시간대의 duration이 20분, repeatEvery가 30분, startTime이 오전 9시, repeatUntil이 오전 11시이면 오전 9시~9시 20분, 오전 9시 30분~9시 50분, 오전 10시~10시 20분, 오전 10시 30분~10시 50분, 오전 11시~11시 20분의 시간대가 생성됩니다. (필수)

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

ScheduleException

ScheduleException 메시지는 위에 설명된 반복의 예외로, 영업일 내 예약된 기간 및 예약이 불가능한 기간을 나타냅니다. 시간대가 예약되면 새로 이용할 수 없는 기간을 반영하도록 예외 목록이 업데이트되어야 합니다. 반복 자체는 수정할 수 없습니다.

JSON 표현
{
  "timeRange": {
    object (TimeRange)
  }
}
필드
timeRange

object (TimeRange)

예외의 기간입니다. 반복에서 영업 종료 시간 범위와 겹치는 것으로 나타나는 시간대는 이용이 불가능한 것으로 간주됩니다.

예: 반복의 duration이 20분, repeatEvery가 30분, startTime이 오전 9시, repeatUntil이 오전 11시로 지정되어 있고, ScheduleException의 timeRange가 오전 9시 45분~11시인 경우 오전 9시 30분~9시 50분, 오전 10시~10시 20분, 오전 10시 30분~10시 50분의 시간대는 이용할 수 없게 됩니다.

기간이 종료-시작 기간이므로 오전 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 사용). 있는 경우 해당 서비스 SchedulingRules의 min_booking_buffer에 지정된 모든 항목이 재정의됩니다.

firstBookableSec

string (int64 format)

이 시간대를 예약할 수 있는 최초 시간(초)입니다. 이 타임스탬프는 시간대의 startSec 또는 lastBookableSec(지정된 경우) 이전이어야 합니다.

lastOnlineCancellableSec

string (int64 format)

설정된 경우 Google 예약을 통해 이 특정 약속 시간대를 취소할 수 있는 마지막 시간 (Unix 에포크 이후 초 단위)입니다. 이 필드는 모든 서비스 수준 취소 규칙을 재정의합니다. (선택사항)

ConfirmationMode

이용 가능 시간대를 예약할 때 사용되는 확인 모드입니다.

열거형
CONFIRMATION_MODE_UNSPECIFIED 확인 모드가 지정되지 않았습니다. 동기식 확인이 적용됩니다.
CONFIRMATION_MODE_SYNCHRONOUS 이 이용 가능 시간대의 예약은 동기식으로 확인됩니다.
CONFIRMATION_MODE_ASYNCHRONOUS 이 이용 가능 시간대의 예약은 비동기식으로 확인됩니다.

방법

replace

지정된 애그리게이터에서 관리하는 판매자의 기존 ServiceAvailability를 대체하고 반환합니다.