-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstore-service.json
More file actions
1 lines (1 loc) · 30.5 KB
/
Copy pathstore-service.json
File metadata and controls
1 lines (1 loc) · 30.5 KB
1
{"openapi":"3.1.0","info":{"title":"KOK Store Service API","description":"매장 등록, 조회, 수정, 삭제, 카테고리, 메뉴, 편의시설, 이미지, 랭킹 API","version":"v1"},"servers":[{"url":"http://localhost:8000","description":"Gateway"}],"tags":[{"name":"Internal","description":"내부 서비스 통신 API"},{"name":"Admin-Store","description":"매장 관리자 API"},{"name":"StoreAmenity","description":"매장 편의시설 API"},{"name":"StoreCategory","description":"매장 카테고리 API"},{"name":"Store","description":"매장 API"},{"name":"StoreHours","description":"매장 영업시간 API"},{"name":"Menu","description":"메뉴 API"},{"name":"Admin-StoreCategory","description":"매장 카테고리 관리자 API"},{"name":"StoreImage","description":"매장 이미지 API"}],"paths":{"/api/v1/stores/{storeId}/amenities":{"get":{"tags":["StoreAmenity"],"summary":"매장 편의시설 목록 조회","operationId":"getAmenities","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreAmenityResponse"}}}}}},"put":{"tags":["StoreAmenity"],"summary":"편의시설 동기화","operationId":"syncAmenities","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddStoreAmenityRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseBulk"}}}}}}},"/api/v1/stores":{"get":{"tags":["Store"],"summary":"매장 목록 검색","operationId":"searchStores","parameters":[{"name":"X-User-Id","in":"header","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":false,"schema":{"type":"string"}},{"name":"request","in":"query","required":true,"schema":{"$ref":"#/components/schemas/StoreSearchRequest"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseStoreResponse"}}}}}},"post":{"tags":["Store"],"summary":"매장 등록","operationId":"createStore","parameters":[{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStoreRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreResponse"}}}}}}},"/api/v1/stores/{storeId}/menus":{"get":{"tags":["Menu"],"summary":"메뉴 목록 조회","operationId":"getMenus","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListMenuDetailResponse"}}}}}},"post":{"tags":["Menu"],"summary":"메뉴 등록","operationId":"createMenu","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMenuRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMenuCreateResponse"}}}}}}},"/api/v1/stores/{storeId}/images":{"get":{"tags":["StoreImage"],"summary":"매장 이미지 목록 조회","operationId":"getImages","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreImageResponse"}}}}}},"post":{"tags":["StoreImage"],"summary":"이미지 등록","operationId":"addImages","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddStoreImageRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreImageResponse"}}}}}}},"/api/v1/stores/{storeId}/hours":{"get":{"tags":["StoreHours"],"summary":"매장 영업시간 목록 조회","operationId":"getStoreHours","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreHoursResponse"}}}}}},"post":{"tags":["StoreHours"],"summary":"영업시간 일괄 등록","operationId":"createBulkHours","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStoreHoursBulkRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreHoursResponse"}}}}}}},"/api/v1/admin/categories":{"post":{"tags":["Admin-StoreCategory"],"summary":"카테고리 등록","operationId":"createCategory","parameters":[{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStoreCategoryRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseSingle"}}}}}}},"/api/v1/stores/{storeId}":{"get":{"tags":["Store"],"summary":"매장 상세 조회","operationId":"getStore","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreResponse"}}}}}},"patch":{"tags":["Store"],"summary":"매장 기본정보 수정","operationId":"updateStore","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStoreRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreResponse"}}}}}}},"/api/v1/stores/{storeId}/status":{"patch":{"tags":["Store"],"summary":"매장 상태 변경","operationId":"changeStatus","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeStoreStatusRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreResponse"}}}}}}},"/api/v1/stores/{storeId}/menus/{menuId}":{"delete":{"tags":["Menu"],"summary":"메뉴 삭제","operationId":"deleteMenu","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"menuId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMenuDeleteResponse"}}}}}},"patch":{"tags":["Menu"],"summary":"메뉴 수정","operationId":"updateMenu","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"menuId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMenuRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMenuUpdateResponse"}}}}}}},"/api/v1/stores/{storeId}/menus/{menuId}/sold-out":{"patch":{"tags":["Menu"],"summary":"메뉴 품절 토글","operationId":"toggleSoldOut","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"menuId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMenuSoldOutResponse"}}}}}}},"/api/v1/stores/{storeId}/images/{imageId}":{"delete":{"tags":["StoreImage"],"summary":"이미지 삭제","operationId":"deleteImage","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"imageId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["StoreImage"],"summary":"이미지 수정","operationId":"updateImage","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"imageId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStoreImageRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreImageResponse"}}}}}}},"/api/v1/stores/{storeId}/hours/{hoursId}":{"delete":{"tags":["StoreHours"],"summary":"영업시간 삭제","operationId":"deleteHours","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"hoursId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["StoreHours"],"summary":"영업시간 수정","operationId":"updateHours","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"hoursId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStoreHoursRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreHoursResponse"}}}}}}},"/api/v1/admin/categories/{categoryId}":{"delete":{"tags":["Admin-StoreCategory"],"summary":"카테고리 삭제","operationId":"deleteCategory","parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["Admin-StoreCategory"],"summary":"카테고리 수정","operationId":"updateCategory","parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStoreCategoryRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseSingle"}}}}}}},"/api/v1/stores/ranking":{"get":{"tags":["Store"],"summary":"인기 매장 랭킹 조회","operationId":"getRanking","parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreRankingResponse"}}}}}}},"/api/v1/internal/stores/{storeId}":{"get":{"tags":["Internal"],"summary":"매장 요약 정보 조회 (내부용)","operationId":"getStoreSummary","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreSummaryResponse"}}}}}}},"/api/v1/internal/stores/{storeId}/hours/validate":{"get":{"tags":["Internal"],"summary":"영업시간 검증 (내부용)","operationId":"validateBusinessHours","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"time","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseBusinessHoursValidationResponse"}}}}}}},"/api/v1/categories":{"get":{"tags":["StoreCategory"],"summary":"카테고리 목록 조회","operationId":"getAllCategories","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreCategoryResponse"}}}}}}},"/api/v1/stores/{storeId}/amenities/{amenityId}":{"delete":{"tags":["StoreAmenity"],"summary":"편의시설 삭제","operationId":"deleteAmenity","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"amenityId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/admin/stores/{storeId}":{"delete":{"tags":["Admin-Store"],"summary":"매장 삭제","operationId":"deleteStore","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-User-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Role","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}}},"components":{"schemas":{"AddStoreAmenityRequest":{"type":"object","properties":{"amenityTypes":{"type":"array","items":{"type":"string","enum":["PARKING","WIFI","PET","GROUP_SEAT","TAKEOUT","DELIVERY","KIDS_CHAIR","VALET_PARKING","NO_KIDS","CORKAGE_FREE"]}}},"required":["amenityTypes"]},"ApiResponseBulk":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Bulk"}}},"Bulk":{"type":"object","properties":{"storeId":{"type":"string","format":"uuid"},"amenities":{"type":"array","items":{"$ref":"#/components/schemas/StoreAmenityResponse"}}}},"StoreAmenityResponse":{"type":"object","properties":{"amenityId":{"type":"string","format":"uuid"},"amenityType":{"type":"string"}}},"CreateStoreRequest":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1},"phone":{"type":"string","minLength":1},"addressSido":{"type":"string","minLength":1},"addressSigungu":{"type":"string","minLength":1},"addressDong":{"type":"string"},"addressDetail":{"type":"string"},"latitude":{"type":"number","maximum":90.0,"minimum":-90.0},"longitude":{"type":"number","maximum":180.0,"minimum":-180.0},"description":{"type":"string"},"maxCapacity":{"type":"integer","format":"int32"}},"required":["addressSido","addressSigungu","categoryId","latitude","longitude","maxCapacity","name","phone"]},"ApiResponseStoreResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreResponse"}}},"CategoryInfo":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"categoryName":{"type":"string"},"parentCategoryName":{"type":"string"}}},"MenuPreviewResult":{"type":"object","properties":{"menuId":{"type":"string","format":"uuid"},"name":{"type":"string"},"price":{"type":"integer","format":"int32"},"thumbnailUrl":{"type":"string"}}},"StoreAmenityResult":{"type":"object","properties":{"amenityId":{"type":"string","format":"uuid"},"amenityType":{"type":"string"}}},"StoreHoursResult":{"type":"object","properties":{"hoursId":{"type":"string","format":"uuid"},"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"openTime":{"type":"string"},"closeTime":{"type":"string"},"breakStartTime":{"type":"string"},"breakEndTime":{"type":"string"},"dayOff":{"type":"boolean"}}},"StoreImageResult":{"type":"object","properties":{"imageId":{"type":"string","format":"uuid"},"imageUrl":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"}}},"StoreResponse":{"type":"object","properties":{"storeId":{"type":"string","format":"uuid"},"ownerId":{"type":"string","format":"uuid"},"category":{"$ref":"#/components/schemas/CategoryInfo"},"name":{"type":"string"},"phone":{"type":"string"},"addressSido":{"type":"string"},"addressSigungu":{"type":"string"},"addressDong":{"type":"string"},"addressDetail":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"description":{"type":"string"},"status":{"type":"string"},"maxCapacity":{"type":"integer","format":"int32"},"averageRating":{"type":"number"},"reviewCount":{"type":"integer","format":"int32"},"thumbnailUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"todayHours":{"$ref":"#/components/schemas/StoreHoursResult"},"amenities":{"type":"array","items":{"$ref":"#/components/schemas/StoreAmenityResult"}},"imagePreview":{"type":"array","items":{"$ref":"#/components/schemas/StoreImageResult"}},"menuPreview":{"type":"array","items":{"$ref":"#/components/schemas/MenuPreviewResult"}}}},"CreateMenuRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100,"minLength":0},"price":{"type":"integer","format":"int32","minimum":0},"description":{"type":"string"},"thumbnailUrl":{"type":"string","maxLength":500,"minLength":0},"displayOrder":{"type":"integer","format":"int32","minimum":0}},"required":["displayOrder","name","price"]},"ApiResponseMenuCreateResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/MenuCreateResponse"}}},"MenuCreateResponse":{"type":"object","properties":{"menuId":{"type":"string","format":"uuid"},"name":{"type":"string"},"price":{"type":"integer","format":"int32"},"soldOut":{"type":"boolean"}}},"AddStoreImageRequest":{"type":"object","properties":{"images":{"type":"array","items":{"$ref":"#/components/schemas/ImageEntry"},"minItems":1}},"required":["images"]},"ImageEntry":{"type":"object","properties":{"imageUrl":{"type":"string","minLength":1},"displayOrder":{"type":"integer","format":"int32"}},"required":["displayOrder","imageUrl"]},"ApiResponseListStoreImageResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/StoreImageResponse"}}}},"StoreImageResponse":{"type":"object","properties":{"imageId":{"type":"string","format":"uuid"},"imageUrl":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"}}},"CreateStoreHoursBulkRequest":{"type":"object","properties":{"hours":{"type":"array","items":{"$ref":"#/components/schemas/CreateStoreHoursRequest"},"maxItems":7,"minItems":7}},"required":["hours"]},"CreateStoreHoursRequest":{"type":"object","properties":{"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"openTime":{"type":"string"},"closeTime":{"type":"string"},"breakStartTime":{"type":"string"},"breakEndTime":{"type":"string"},"isDayOff":{"type":"boolean"}},"required":["dayOfWeek","isDayOff"]},"ApiResponseListStoreHoursResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/StoreHoursResponse"}}}},"StoreHoursResponse":{"type":"object","properties":{"hoursId":{"type":"string","format":"uuid"},"dayOfWeek":{"type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"openTime":{"type":"string"},"closeTime":{"type":"string"},"breakStartTime":{"type":"string"},"breakEndTime":{"type":"string"},"dayOff":{"type":"boolean"}}},"CreateStoreCategoryRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"sortOrder":{"type":"integer","format":"int32"},"parentId":{"type":"string","format":"uuid"}},"required":["name","sortOrder"]},"ApiResponseSingle":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Single"}}},"Single":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"name":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"},"parentId":{"type":"string","format":"uuid"},"updatedAt":{"type":"string","format":"date-time"}}},"UpdateStoreRequest":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"name":{"type":"string"},"phone":{"type":"string"},"addressSido":{"type":"string"},"addressSigungu":{"type":"string"},"addressDong":{"type":"string"},"addressDetail":{"type":"string"},"latitude":{"type":"number","maximum":90.0,"minimum":-90.0},"longitude":{"type":"number","maximum":180.0,"minimum":-180.0},"description":{"type":"string"},"maxCapacity":{"type":"integer","format":"int32"}}},"ChangeStoreStatusRequest":{"type":"object","properties":{"status":{"type":"string","enum":["PREPARING","OPEN","CLOSED","PERMANENTLY_CLOSED"]}},"required":["status"]},"UpdateMenuRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100,"minLength":0},"price":{"type":"integer","format":"int32","minimum":0},"description":{"type":"string"},"thumbnailUrl":{"type":"string","maxLength":500,"minLength":0},"displayOrder":{"type":"integer","format":"int32","minimum":0}}},"ApiResponseMenuUpdateResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/MenuUpdateResponse"}}},"MenuUpdateResponse":{"type":"object","properties":{"menuId":{"type":"string","format":"uuid"},"name":{"type":"string"},"price":{"type":"integer","format":"int32"},"description":{"type":"string"},"thumbnailUrl":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"},"updatedAt":{"type":"string","format":"date-time"}}},"ApiResponseMenuSoldOutResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/MenuSoldOutResponse"}}},"MenuSoldOutResponse":{"type":"object","properties":{"menuId":{"type":"string","format":"uuid"},"updatedAt":{"type":"string","format":"date-time"},"soldOut":{"type":"boolean"}}},"UpdateStoreImageRequest":{"type":"object","properties":{"imageUrl":{"type":"string","minLength":1},"displayOrder":{"type":"integer","format":"int32"}},"required":["displayOrder","imageUrl"]},"ApiResponseStoreImageResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreImageResponse"}}},"UpdateStoreHoursRequest":{"type":"object","properties":{"openTime":{"type":"string"},"closeTime":{"type":"string"},"breakStartTime":{"type":"string"},"breakEndTime":{"type":"string"},"isDayOff":{"type":"boolean"}},"required":["isDayOff"]},"ApiResponseStoreHoursResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreHoursResponse"}}},"UpdateStoreCategoryRequest":{"type":"object","properties":{"name":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"}}},"StoreSearchRequest":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"sido":{"type":"string"},"sigungu":{"type":"string"},"keyword":{"type":"string"},"amenities":{"type":"array","items":{"type":"string","enum":["PARKING","WIFI","PET","GROUP_SEAT","TAKEOUT","DELIVERY","KIDS_CHAIR","VALET_PARKING","NO_KIDS","CORKAGE_FREE"]}},"status":{"type":"string","enum":["PREPARING","OPEN","CLOSED","PERMANENTLY_CLOSED"]},"sort":{"type":"string","enum":["CREATED_AT","RATING","REVIEW_COUNT","DISTANCE"]},"latitude":{"type":"number","maximum":90.0,"minimum":-90.0},"longitude":{"type":"number","maximum":180.0,"minimum":-180.0},"radiusKm":{"type":"number","format":"double"}}},"Pageable":{"type":"object","properties":{"page":{"type":"integer","format":"int32","minimum":0},"size":{"type":"integer","format":"int32","minimum":1},"sort":{"type":"array","items":{"type":"string"}}}},"ApiResponsePageResponseStoreResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResponseStoreResponse"}}},"PageResponseStoreResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/StoreResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"}}},"ApiResponseListMenuDetailResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/MenuDetailResponse"}}}},"MenuDetailResponse":{"type":"object","properties":{"menuId":{"type":"string","format":"uuid"},"name":{"type":"string"},"price":{"type":"integer","format":"int32"},"description":{"type":"string"},"thumbnailUrl":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"},"soldOut":{"type":"boolean"}}},"ApiResponseListStoreAmenityResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/StoreAmenityResponse"}}}},"ApiResponseStoreRankingResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreRankingResponse"}}},"RankingItem":{"type":"object","properties":{"rank":{"type":"integer","format":"int32"},"storeId":{"type":"string","format":"uuid"},"name":{"type":"string"},"categoryName":{"type":"string"},"status":{"type":"string"},"averageRating":{"type":"number"},"reviewCount":{"type":"integer","format":"int32"},"thumbnailUrl":{"type":"string"}}},"StoreRankingResponse":{"type":"object","properties":{"rankings":{"type":"array","items":{"$ref":"#/components/schemas/RankingItem"}}}},"ApiResponseStoreSummaryResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreSummaryResponse"}}},"StoreSummaryResponse":{"type":"object","properties":{"storeId":{"type":"string","format":"uuid"},"storeName":{"type":"string"},"ownerId":{"type":"string","format":"uuid"}}},"ApiResponseBusinessHoursValidationResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/BusinessHoursValidationResponse"}}},"BusinessHoursValidationResponse":{"type":"object","properties":{"available":{"type":"boolean"},"reason":{"type":"string"}}},"ApiResponseListStoreCategoryResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/StoreCategoryResponse"}}}},"StoreCategoryResponse":{"type":"object","properties":{"categoryId":{"type":"string","format":"uuid"},"name":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"},"parentId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ApiResponseMenuDeleteResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/MenuDeleteResponse"}}},"MenuDeleteResponse":{"type":"object","properties":{"menuId":{"type":"string","format":"uuid"},"deletedAt":{"type":"string","format":"date-time"}}},"ApiResponseVoid":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{}}}},"securitySchemes":{"X-User-Id":{"type":"apiKey","name":"X-User-Id","in":"header"},"X-Role":{"type":"apiKey","name":"X-Role","in":"header"}}}}