본문으로 건너뛰기

스케줄 기반 예약 슬롯 조회 (V2)

POST 

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

특정 스케줄 ID를 기반으로 각 예약 일정별 가능한 슬롯들을 조회합니다.

Request

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

{
"application/json": {
"schema": {
"required": [
"scheduleId",
"startDateTimeUtc",
"endDateTimeUtc"
],
"type": "object",
"properties": {
"scheduleId": {
"type": "string",
"description": "스케줄 ID",
"format": "object-id"
},
"startDateTimeUtc": {
"type": "string",
"description": "조회 범위 시작 시각",
"format": "date-time"
},
"endDateTimeUtc": {
"type": "string",
"description": "조회 범위 끝 시각",
"format": "date-time"
}
},
"description": "V2 스케줄 기반 슬롯 조회 요청",
"title": "protos.open.GetReservationSlotsByScheduleIdQueryV2"
}
}
}

Responses

OK

### Status Code별 응답의 JSON Schema

{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"occupiedResourceId": {
"type": "string",
"description": "점유 리소스 ID (스케줄 내 고유 ID)"
},
"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.ReservationGroupOccupiedResourceSlot"
}
}
},
"description": "V2 스케줄 기반 슬롯 조회 응답 - 리소스별로 슬롯을 묶어서 반환 (업데이트 시 매칭용)",
"title": "protos.open.GetReservationSlotsByScheduleIdQueryV2Response"
}
}
}
}
}