본문으로 건너뛰기

예약 정보 수정

POST 

/schedule/open/v1/commands/update-reservation

@deprecated 신규 개발 시 V2 API를 사용하세요.

기존 스케줄의 예약 정보를 수정합니다.

  • 예약 정보 수정 시, 기존의 예약 정보가 덮어씌워집니다.
  • 변경되지 않은 필드더라도, 전체 필드를 다시 보내야 합니다.

에러 응답

필수 항목이 누락된 경우
{
status: 400,
message: "InvalidCommandException",
className: "InvalidCommandException",
errorProperties: [
{
key: "{{ 누락된 키 }}",
reason: "Required"
}
]
}
reservationGroupId, zoneId로 조회한 스케줄이 없을 경우
{
status: 400,
message: "InvalidCommandException",
className: "InvalidCommandException",
errorProperties: [
{
key: "{{ reservationGroupId 혹은 zoneId }}",
reason: "NotFound"
}
]
}
해당 스케줄에 여러 예약 일정이 존재하여 V1에서 수정할 수 없는 경우
{
"status": 400,
"message": "InvalidRequestException",
"className": "InvalidRequestException",
"errorProperties": [
{
"key": "occupiedResources",
"reason": "NotAvailable"
}
]
}

Request

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

{
"application/json": {
"schema": {
"required": [
"scheduleId",
"reservationGroupId",
"startDateTime",
"endDateTime",
"consultationRequired",
"sedationRequired",
"zoneId"
],
"type": "object",
"properties": {
"scheduleId": {
"type": "string",
"description": "스케쥴 (예약 및 내원 정보) ID",
"format": "object-id"
},
"reservationGroupId": {
"type": "string",
"description": "예약 그룹 ID",
"format": "object-id"
},
"startDateTime": {
"type": "string",
"description": "예약 시작 시간",
"format": "date-time"
},
"endDateTime": {
"type": "string",
"description": "예약 종료 시간",
"format": "date-time"
},
"consultationRequired": {
"type": "boolean",
"description": "상담 필요 여부"
},
"sedationRequired": {
"type": "boolean",
"description": "마취 필요 여부"
},
"counselor": {
"allOf": [
{
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "계정 ID",
"format": "object-id"
},
"name": {
"type": "string",
"description": "계정 이름"
}
},
"title": "protos.schedule.Counselor"
}
],
"description": "희망 상담사"
},
"doctor": {
"allOf": [
{
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "계정 ID",
"format": "object-id"
},
"name": {
"type": "string",
"description": "계정 이름"
}
},
"title": "protos.schedule.Doctor"
}
],
"description": "희망 의사"
},
"funnel": {
"allOf": [
{
"type": "object",
"properties": {
"funnel": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"category": {
"enum": [
"CODE_CATEGORY_UNSPECIFIED",
"FUNNEL",
"EXPOSURE_CHANNEL",
"ETCETRA_PRODUCT_CATEGORY",
"IMAGE_EQUIPMENT",
"CALL_CONSULTATION_RESULT",
"IMAGE_CATEGORY",
"FUNNEL_CATEGORY",
"VISITOR_CATEGORY",
"ACCOUNT_STATUS"
],
"type": "string",
"format": "enum"
},
"name": {
"type": "string"
},
"order": {
"type": "integer",
"format": "int32"
},
"closed": {
"type": "boolean"
},
"color": {
"enum": [
"CodeColor_UNSPECIFIED",
"RED",
"LAVA",
"ORANGE",
"GREEN",
"CYAN",
"BLUE",
"PURPLE",
"MAGENTA",
"GRAY"
],
"type": "string",
"format": "enum"
},
"default": {
"type": "boolean"
}
},
"title": "protos.tenant.Code"
},
"funnelDetail": {
"type": "string"
},
"funnelCategory": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"category": {
"enum": [
"CODE_CATEGORY_UNSPECIFIED",
"FUNNEL",
"EXPOSURE_CHANNEL",
"ETCETRA_PRODUCT_CATEGORY",
"IMAGE_EQUIPMENT",
"CALL_CONSULTATION_RESULT",
"IMAGE_CATEGORY",
"FUNNEL_CATEGORY",
"VISITOR_CATEGORY",
"ACCOUNT_STATUS"
],
"type": "string",
"format": "enum"
},
"name": {
"type": "string"
},
"order": {
"type": "integer",
"format": "int32"
},
"closed": {
"type": "boolean"
},
"color": {
"enum": [
"CodeColor_UNSPECIFIED",
"RED",
"LAVA",
"ORANGE",
"GREEN",
"CYAN",
"BLUE",
"PURPLE",
"MAGENTA",
"GRAY"
],
"type": "string",
"format": "enum"
},
"default": {
"type": "boolean"
}
},
"title": "protos.tenant.Code"
}
},
"title": "protos.schedule.ReservationFunnel"
}
],
"description": "예약 경로"
},
"reservationMemo": {
"type": "string",
"description": "예약 메모"
},
"zoneId": {
"type": "string",
"description": "구역 ID",
"format": "object-id"
},
"reservationAssignee": {
"allOf": [
{
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "담당자 ID"
},
"name": {
"type": "string",
"description": "담당자 이름"
}
},
"title": "protos.schedule.ReservationAssignee"
}
],
"description": "예약 담당자"
}
},
"title": "protos.schedule.UpdateReservationCommand"
}
}
}

Responses

OK

### Status Code별 응답의 JSON Schema

{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {},
"title": "protos.Empty"
}
}
}
}
}