본문으로 건너뛰기

여러 예약 그룹으로 예약 슬롯 조회 (V2)

POST 

/schedule/open/v2/queries/get-reservation-slots-by-groups

여러 예약 그룹의 예약 슬롯을 한 번에 조회합니다.

  • 장바구니에 여러 상품이 담긴 경우, 모든 예약 그룹의 슬롯을 조회하여 교집합을 계산할 수 있습니다.

에러 응답

reservationGroupIds가 비어있을 경우
{
"status": 400,
"message": "InvalidRequestException",
"className": "InvalidRequestException",
"errorProperties": [{"key": "reservationGroupIds", "reason": "Required"}]
}
시간 형식이 잘못된 경우
{
"status": 400,
"message": "InvalidRequestException",
"className": "InvalidRequestException",
"errorProperties": [{"key": "startDateTimeUtc", "reason": "NotAvailable"}]
}

또는

{
"status": 400,
"message": "InvalidRequestException",
"className": "InvalidRequestException",
"errorProperties": [{"key": "endDateTimeUtc", "reason": "NotAvailable"}]
}
종료 시간이 시작 시간보다 이전인 경우
{
"status": 400,
"message": "InvalidCommandException",
"className": "InvalidCommandException",
"errorProperties": [{"key": "endDateTimeUtc", "reason": "InvalidTimeRange"}]
}

Request

### Content-Type별 요청의 JSON Schema

{
"application/json": {
"schema": {
"required": [
"reservationGroupIds",
"startDateTimeUtc",
"endDateTimeUtc"
],
"type": "object",
"properties": {
"reservationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "조회할 예약 그룹 ID 목록"
},
"startDateTimeUtc": {
"type": "string",
"description": "조회 범위 시작 시각 (UTC ISO 8601)",
"format": "date-time"
},
"endDateTimeUtc": {
"type": "string",
"description": "조회 범위 종료 시각 (UTC ISO 8601)",
"format": "date-time"
}
},
"description": "V2 슬롯 조회 요청 - 여러 예약 그룹의 슬롯을 한 번에 조회",
"title": "protos.open.GetReservationSlotsByGroupsQuery"
}
}
}

Responses

OK

### Status Code별 응답의 JSON Schema

{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reservationGroupId": {
"type": "string",
"description": "예약 그룹 ID"
},
"zoneId": {
"type": "string",
"description": "구역 ID"
},
"slots": {
"type": "array",
"items": {
"required": [
"reservationGroupId",
"zone",
"startDateTimeUtc",
"endDateTimeUtc",
"capacity",
"reservationCount"
],
"type": "object",
"properties": {
"reservationGroupId": {
"type": "string",
"description": "예약 그룹 ID"
},
"zone": {
"allOf": [
{
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "구역 ID",
"format": "object-id"
},
"name": {
"type": "string",
"description": "구역 이름"
}
},
"title": "protos.open.ReservationSlotZoneConfiguration"
}
],
"description": "구역 정보"
},
"startDateTimeUtc": {
"type": "string",
"description": "예약 시작 시각 (ISO 8601)",
"format": "date-time"
},
"endDateTimeUtc": {
"type": "string",
"description": "예약 종료 시각 (ISO 8601)",
"format": "date-time"
},
"capacity": {
"type": "integer",
"description": "해당 슬롯의 최대 예약 가능 인원",
"format": "int32"
},
"reservationCount": {
"type": "integer",
"description": "현재 예약된 인원 수",
"format": "int32"
}
},
"title": "protos.open.ReservationSlot"
},
"description": "해당 그룹의 슬롯 목록"
}
},
"description": "예약 그룹별 슬롯 목록",
"title": "protos.open.ReservationGroupSlots"
}
}
},
"description": "V2 슬롯 조회 응답 - 그룹별로 슬롯을 묶어서 반환",
"title": "protos.open.GetReservationSlotsByGroupsQueryResponse"
}
}
}
}
}