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' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 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)

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

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

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

staffName

string

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

roomId

string

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

roomName

string

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

partySize

integer

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

roomDescription

object (Text)

선택사항입니다. 현지화된 채팅방 설명입니다. 설정된 경우 기본값을 제공해야 합니다. 판매자의 언어로 된 공용 언어도 제공하는 것이 좋습니다. (선택사항)

반복

반복 메시지는 선택사항이지만 지속적으로 반복되는 이용 가능 시간대를 더 간단하게 표현할 수 있습니다. 일반적으로 하루의 작업 일정을 나타내며, 영업일 내의 예약된 기간 및 예약이 불가능한 기간은 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시에 시작하는 시간대는 영향을 받지 않습니다.

선불

예약의 일부로 사용자에게 청구될 수 있는 결제입니다.

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)

가격 또는 가격대가 적용되는 방식 (1인당 또는 고정)을 정의합니다.

통합 필드 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

이 enum은 사용자가 요청된 시간대 기간/종료 시간을 확인하거나 보려면 어떤 요구사항이 있는지 나타냅니다.

열거형
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 이 이용 가능 시간대의 예약은 비동기식으로 확인됩니다.

LinkoutRequiredReason

슬롯에 연결 링크 환경이 있는 이유입니다.

열거형
LINKOUT_REQUIRED_REASON_UNSPECIFIED (기본값) 사용하지 마세요. 알 수 없는 값과 같습니다.
PAYMENT_REQUIRED 슬롯을 예약하려면 파트너 플랫폼에서 결제해야 합니다.

메서드

replace

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