영업시간
GET /hours — 워크스페이스에 설정된 영업시간(business hours)을 조회합니다.
- Scope:
hours:read - 쿼리·바디 없음
curl https://api.talk.zeroworks.ai/api/public/v1/hours \
-H "Authorization: Bearer ztpat_..."
응답
business_hours는 대시보드가 저장한 설정 JSON을 그대로 전달합니다. 영업시간을 설정한 적이 없으면 business_hours는 null입니다.
{
"success": true,
"data": {
"business_hours": {
"timezone": "Asia/Seoul",
"schedule": [
{ "day": 0, "is_open": false, "ranges": [] },
{ "day": 1, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 2, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 3, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 4, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 5, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 6, "is_open": false, "ranges": [] }
],
"holidays": [],
"custom_holidays": []
}
}
}
영업시간을 설정하지 않은 워크스페이스의 응답입니다 (business_hours는 json.RawMessage라 미설정 시 키 생략이 아니라 null로 반환됩니다).
{
"success": true,
"data": {
"business_hours": null
}
}
business_hours 구조 — 대시보드가 저장한 설정 JSON을 그대로 전달합니다.
| 키 | 설명 |
|---|---|
timezone | IANA 타임존 (예: Asia/Seoul) |
schedule | 요일별 배열. day는 정수 0~6 (0=일요일), is_open은 영업 여부, ranges는 영업 시간대 배열 |
ranges[] | open_time·close_time ("HH:MM" KST, close_time은 자정 종료를 뜻하는 "24:00" 가능) |
holidays | 한국 공휴일 프리셋 날짜 배열. "YYYY-MM-DD" 문자열 배열입니다. 워크스페이스에서 '한국 공휴일 자동 적용'을 끄면 빈 배열입니다 |
custom_holidays | 워크스페이스가 직접 정의한 휴일 객체 배열 (아래 필드 참조) |
이 구조는 현재 대시보드가 저장하는 형식입니다. 이 엔드포인트는 저장된 JSON을 그대로 전달하므로, 새 대시보드에서 한 번도 다시 저장하지 않은 레거시 워크스페이스는 최상위 enabled 키를 포함하고 schedule/holidays/custom_holidays 키가 없을 수 있습니다. 모든 키의 존재를 가정하지 마세요.
custom_holidays[] 객체 구조
| 키 | 설명 |
|---|---|
id | UUID v4 |
name | 휴일 이름 (≤40자, 빈 문자열 가능) |
start_date | 시작일 "YYYY-MM-DD" (KST) |
end_date | 종료일 "YYYY-MM-DD" (KST, 범위 포함) |
closed | true면 해당 기간 상담 불가 |
open_time·close_time | "HH:MM". closed=false일 때만 존재하는 키입니다 |