-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi-docs.json
More file actions
1 lines (1 loc) · 46.3 KB
/
Copy pathapi-docs.json
File metadata and controls
1 lines (1 loc) · 46.3 KB
1
{"openapi":"3.1.0","info":{"title":"PickitPickit API","description":"인형뽑기 & 가챠샵 정보 서비스 백엔드 API 명세서","version":"v1.0.0"},"servers":[{"url":"https://pickit-pickit.site","description":"Generated server url"}],"tags":[{"name":"Admin - Store Manager","description":"매장주/매장 직원 지정 API"},{"name":"Search Log","description":"검색 로그 API"},{"name":"Admin - Store Product","description":"관리자용 매장별 상품/재고 관리 API"},{"name":"Favorite Store","description":"관심매장 API"},{"name":"Store","description":"매장 조회 및 검색 API"},{"name":"Owner - Store Tag","description":"매장주용 대표 태그 관리 API"},{"name":"Review & Brag","description":"리뷰 및 자랑하기 API"},{"name":"Owner - Store Product","description":"매장주용 상품/재고 관리 API"},{"name":"Auth","description":"인증 API"},{"name":"Admin - Store Data","description":"매장 데이터 관리 API"},{"name":"Admin - Store Tag","description":"관리자용 매장 대표 태그 관리 API"},{"name":"Onboarding","description":"초기 프로필 설정 API"},{"name":"MyPage","description":"마이페이지 API"},{"name":"Admin - Item","description":"상품 마스터 관리 API"}],"paths":{"/api/owner/stores/{storeId}/tags":{"get":{"tags":["Owner - Store Tag"],"summary":"내 매장 대표 태그 조회","operationId":"getStoreTags","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListTagResponse"}}}}},"security":[{"bearerAuth":[]}]},"put":{"tags":["Owner - Store Tag"],"summary":"내 매장 대표 태그 교체","operationId":"replaceStoreTags","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreTagReplaceRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListTagResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/stores/{storeId}/tags":{"get":{"tags":["Admin - Store Tag"],"summary":"매장 대표 태그 조회","operationId":"getStoreTags_1","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListTagResponse"}}}}},"security":[{"bearerAuth":[]}]},"put":{"tags":["Admin - Store Tag"],"summary":"매장 대표 태그 교체","description":"수동 태그만 교체합니다. 상품 태그에서 자동 반영된 태그는 상품이 남아 있으면 유지됩니다.","operationId":"replaceStoreTags_1","parameters":[{"name":"storeId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreTagReplaceRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListTagResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/users/me/favorite-stores/{storeId}":{"post":{"tags":["Favorite Store"],"summary":"관심매장 추가","description":"로그인한 사용자가 특정 매장을 관심매장으로 등록합니다.\n\n- 이미 등록된 매장이면 실패합니다.\n- 로그인이 필요합니다.\n","operationId":"addFavoriteStore","parameters":[{"name":"storeId","in":"path","description":"매장 ID","required":true,"schema":{"type":"integer","format":"int64"},"example":1}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseFavoriteStoreResponse"}}}}},"security":[{"bearerAuth":[]}]},"delete":{"tags":["Favorite Store"],"summary":"관심매장 삭제","description":"로그인한 사용자가 특정 매장을 관심매장에서 삭제합니다.\n\n- 로그인이 필요합니다.\n","operationId":"removeFavoriteStore","parameters":[{"name":"storeId","in":"path","description":"매장 ID","required":true,"schema":{"type":"integer","format":"int64"},"example":1}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]}},"/api/search-logs":{"post":{"tags":["Search Log"],"summary":"검색 로그 저장","description":"검색 실행 시 검색어 로그를 저장합니다.","operationId":"saveSearchLog","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchLogCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]}},"/api/reviews":{"post":{"tags":["Review & Brag"],"summary":"리뷰 작성","description":"특정 매장에 대한 리뷰를 작성합니다.","operationId":"createReview","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseReviewResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/reviews/brags":{"get":{"tags":["Review & Brag"],"summary":"자랑하기 게시글 목록 조회","description":"전체 자랑하기 게시글 목록을 조회합니다.","operationId":"getBrags","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListBragResponse"}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["Review & Brag"],"summary":"자랑하기 게시글 작성","description":"인형뽑기 결과물 자랑 게시글을 작성합니다.","operationId":"createBrag","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BragCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseBragResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/owner/store-products":{"post":{"tags":["Owner - Store Product"],"summary":"내 매장 상품 등록","description":"매장주는 본인이 연결된 매장에만 상품을 등록할 수 있습니다.","operationId":"create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreProductCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreProductResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/onboarding/complete":{"post":{"tags":["Onboarding"],"summary":"온보딩 완료","description":"필수 온보딩 정보가 모두 설정되었는지 검증하고 완료 처리합니다.","operationId":"complete","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseOnboardingCompleteResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/auth/token/reissue":{"post":{"tags":["Auth"],"summary":"토큰 재발급","description":"서비스 refresh token을 검증하고 새 access token과 refresh token을 발급합니다.","operationId":"reissue","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseTokenResponse"}}}}}}},"/api/auth/logout":{"post":{"tags":["Auth"],"summary":"로그아웃","description":"서비스 refresh token을 폐기합니다. Android에서는 이 API 성공 후 Kakao SDK logout도 함께 호출하세요.","operationId":"logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/auth/kakao/login":{"post":{"tags":["Auth"],"summary":"카카오 로그인","description":"Android Kakao SDK에서 발급받은 OAuthToken.accessToken을 전달하면 서비스 JWT를 발급합니다.","operationId":"loginWithKakao","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KakaoLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseLoginResponse"}}}}}}},"/api/admin/stores/load-public-data":{"post":{"tags":["Admin - Store Data"],"summary":"공공데이터 매장 일괄 적재","operationId":"loadPublicData","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/store-products":{"post":{"tags":["Admin - Store Product"],"summary":"매장 상품 등록","description":"관리자는 모든 매장에 상품, 가격, 재고, 난이도, 상품 태그를 등록할 수 있습니다.","operationId":"create_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreProductCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreProductResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/store-managers":{"post":{"tags":["Admin - Store Manager"],"summary":"매장주/직원 지정","description":"카카오 로그인으로 가입한 사용자를 특정 매장의 관리자로 연결합니다.","operationId":"createStoreManager","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreManagerCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreManagerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/items":{"get":{"tags":["Admin - Item"],"summary":"상품 마스터 목록 조회","operationId":"getItems","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListItemResponse"}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["Admin - Item"],"summary":"상품 마스터 등록","operationId":"create_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseItemResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/users/me/profile":{"get":{"tags":["MyPage"],"summary":"마이페이지 프로필 조회","description":"현재 로그인 사용자의 프로필 정보, 관심 태그, 기본 이미지 후보, 활동 개수를 조회합니다.","operationId":"getProfile","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMyPageProfileResponse"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"tags":["MyPage"],"summary":"마이페이지 프로필 수정","description":"닉네임, 프로필 이미지, 관심 태그를 수정합니다. 앨범 업로드는 지원하지 않습니다.","operationId":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageProfileUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMyPageProfileResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/reviews/{reviewId}":{"delete":{"tags":["Review & Brag"],"summary":"리뷰 삭제","description":"작성한 리뷰를 삭제합니다.","operationId":"deleteReview","parameters":[{"name":"reviewId","in":"path","description":"리뷰 ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"userId","in":"query","description":"사용자 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"tags":["Review & Brag"],"summary":"리뷰 수정","description":"작성한 리뷰를 수정합니다.","operationId":"updateReview","parameters":[{"name":"reviewId","in":"path","description":"리뷰 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseReviewResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/reviews/brags/{bragId}":{"delete":{"tags":["Review & Brag"],"summary":"자랑하기 게시글 삭제","description":"자랑하기 게시글을 삭제합니다.","operationId":"deleteBrag","parameters":[{"name":"bragId","in":"path","description":"자랑하기 게시글 ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"userId","in":"query","description":"사용자 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"tags":["Review & Brag"],"summary":"자랑하기 게시글 수정","description":"자랑하기 게시글을 수정합니다.","operationId":"updateBrag","parameters":[{"name":"bragId","in":"path","description":"자랑하기 게시글 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BragUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseBragResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/owner/store-products/{storeProductId}":{"delete":{"tags":["Owner - Store Product"],"summary":"내 매장 상품 삭제","operationId":"delete","parameters":[{"name":"storeProductId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"tags":["Owner - Store Product"],"summary":"내 매장 상품 수정","operationId":"update","parameters":[{"name":"storeProductId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreProductUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreProductResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/onboarding/profile-image":{"patch":{"tags":["Onboarding"],"summary":"프로필 이미지 저장","description":"카카오 또는 기본 프로필 이미지 URL을 저장합니다.","operationId":"updateProfileImage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileImageUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseOnboardingStatusResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/onboarding/nickname":{"patch":{"tags":["Onboarding"],"summary":"닉네임 저장","description":"프론트에서 입력 또는 랜덤 생성한 닉네임을 저장합니다.","operationId":"updateNickname","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NicknameUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseOnboardingStatusResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/onboarding/interest-tags":{"get":{"tags":["Onboarding"],"summary":"관심 태그 목록 조회","description":"선택 가능한 관심 태그 목록을 조회합니다.","operationId":"getInterestTags","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListInterestTagResponse"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"tags":["Onboarding"],"summary":"관심 태그 저장","description":"사용자가 선택한 관심 태그를 저장합니다.","operationId":"updateInterestTags","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterestTagUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseOnboardingStatusResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/store-products/{storeProductId}":{"delete":{"tags":["Admin - Store Product"],"summary":"매장 상품 삭제","operationId":"delete_1","parameters":[{"name":"storeProductId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"tags":["Admin - Store Product"],"summary":"매장 상품 수정","description":"tags=null이면 기존 태그 유지, []이면 전체 삭제입니다.","operationId":"update_1","parameters":[{"name":"storeProductId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreProductUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreProductResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/items/{itemId}":{"patch":{"tags":["Admin - Item"],"summary":"상품 마스터 수정","operationId":"update_2","parameters":[{"name":"itemId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseItemResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/users/me/reviews":{"get":{"tags":["MyPage"],"summary":"내가 작성한 리뷰 목록 조회","description":"현재 로그인 사용자가 작성한 리뷰 목록을 최신순으로 조회합니다.","operationId":"getMyReviews","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListReviewResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/users/me/favorite-stores":{"get":{"tags":["Favorite Store"],"summary":"내 관심매장 목록 조회","description":"로그인한 사용자의 관심매장 목록을 조회합니다.\n\n- lat, lng를 함께 전달하면 현재 위치 기준 거리를 계산합니다.\n- lat, lng를 생략하면 distance는 0으로 반환됩니다.\n- 로그인이 필요합니다.\n","operationId":"getMyFavoriteStores","parameters":[{"name":"lat","in":"query","description":"사용자 위도","required":false,"schema":{"type":"number","format":"double"},"example":37.5665},{"name":"lng","in":"query","description":"사용자 경도","required":false,"schema":{"type":"number","format":"double"},"example":126.978}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListFavoriteStoreResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/users/me/brags":{"get":{"tags":["MyPage"],"summary":"내가 작성한 자랑하기 목록 조회","description":"현재 로그인 사용자가 작성한 자랑하기 게시글 목록을 최신순으로 조회합니다.","operationId":"getMyBrags","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListBragResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/stores/{storeId}":{"get":{"tags":["Store"],"summary":"매장 상세 조회","description":"매장 상세 정보와 등록된 상품/재고/태그 목록을 조회합니다.\n\n- lat, lng를 함께 전달하면 현재 위치 기준 거리를 계산합니다.\n- lat, lng를 생략하면 distance는 0으로 반환됩니다.\n\n","operationId":"getStoreDetail","parameters":[{"name":"storeId","in":"path","description":"매장 ID","required":true,"schema":{"type":"integer","format":"int64"},"example":1},{"name":"lat","in":"query","description":"사용자 위도","required":false,"schema":{"type":"number","format":"double"},"example":37.5665},{"name":"lng","in":"query","description":"사용자 경도","required":false,"schema":{"type":"number","format":"double"},"example":126.978}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreDetailResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/stores/search":{"get":{"tags":["Store"],"summary":"매장 검색","description":"매장명 또는 주소 기준으로 매장을 검색합니다.\n\n- keyword: 매장명 또는 주소 검색어\n- type 허용값: CLAW / GACHA / ALL\n- lat, lng를 함께 전달하면 가까운 순으로 정렬합니다.\n- lat, lng를 생략하면 매장명 기준으로 정렬합니다.\n- limit 허용값: 1~50\n\n","operationId":"searchStores","parameters":[{"name":"keyword","in":"query","description":"검색어","required":true,"schema":{"type":"string"},"example":"홍대"},{"name":"type","in":"query","description":"매장 유형","required":false,"schema":{"type":"string","default":"ALL","enum":["CLAW","GACHA","ALL"]},"example":"ALL"},{"name":"lat","in":"query","description":"사용자 위도","required":false,"schema":{"type":"number","format":"double"},"example":37.5665},{"name":"lng","in":"query","description":"사용자 경도","required":false,"schema":{"type":"number","format":"double"},"example":126.978},{"name":"limit","in":"query","description":"조회 개수","required":false,"schema":{"type":"integer","format":"int32","default":20},"example":20}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/stores/nearby":{"get":{"tags":["Store"],"summary":"현재 위치 기반 주변 매장 조회","description":"사용자의 현재 위도/경도를 기준으로 반경 내 인형뽑기 & 가챠샵을 거리순으로 반환합니다.\n\n- radius 허용값: 500 / 1000 / 3000 / 5000\n- type 허용값: CLAW / GACHA / ALL\n- 로그인 없이 조회 가능합니다.\n","operationId":"getNearbyStores","parameters":[{"name":"lat","in":"query","description":"사용자 위도","required":true,"schema":{"type":"number","format":"double"},"example":37.5665},{"name":"lng","in":"query","description":"사용자 경도","required":true,"schema":{"type":"number","format":"double"},"example":126.978},{"name":"radius","in":"query","description":"검색 반경(m)","required":false,"schema":{"type":"integer","format":"int32","default":1000},"example":1000},{"name":"type","in":"query","description":"매장 유형","required":false,"schema":{"type":"string","default":"ALL","enum":["CLAW","GACHA","ALL"]},"example":"ALL"}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListStoreResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/search-logs/recent":{"get":{"tags":["Search Log"],"summary":"최근 검색 조회","description":"검색창 진입 시 사용자의 최근 검색어를 최신순으로 조회합니다. 같은 검색어+대상 조합은 가장 최근 1건만 노출됩니다.","operationId":"getRecentSearches","parameters":[{"name":"userId","in":"query","description":"사용자 ID","required":true,"schema":{"type":"integer","format":"int64"},"example":1},{"name":"limit","in":"query","description":"조회 개수 (1~20), 기본값 10","required":false,"schema":{"type":"integer","format":"int32","default":10},"example":10}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListRecentSearchResponse"}}}}},"security":[{"bearerAuth":[]}]},"delete":{"tags":["Search Log"],"summary":"최근 검색 개별 삭제","description":"검색창의 x 버튼 클릭 시 해당 검색어를 삭제합니다. 동일 keyword+targetType 이력은 함께 제거됩니다.","operationId":"deleteRecentSearch","parameters":[{"name":"userId","in":"query","description":"사용자 ID","required":true,"schema":{"type":"integer","format":"int64"},"example":1},{"name":"keyword","in":"query","description":"삭제할 검색어","required":true,"schema":{"type":"string"},"example":"산리오"},{"name":"targetType","in":"query","description":"검색 대상 유형(STORE/ITEM/ALL)","required":true,"schema":{"type":"string","enum":["STORE","ITEM","ALL"]},"example":"ALL"}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]}},"/api/reviews/write-guide":{"get":{"tags":["Review & Brag"],"summary":"리뷰 작성 가이드 조회","description":"리뷰 작성 시 안내 문구를 반환합니다.","operationId":"getWriteGuide","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseReviewWriteGuideResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/reviews/stores/{storeId}":{"get":{"tags":["Review & Brag"],"summary":"매장 리뷰 목록 조회","description":"특정 매장의 리뷰 목록 및 요약 정보를 조회합니다.","operationId":"getStoreReviews","parameters":[{"name":"storeId","in":"path","description":"매장 ID (DB PK)","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseStoreReviewSummaryResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/onboarding/profile-images":{"get":{"tags":["Onboarding"],"summary":"프로필 이미지 후보 조회","description":"카카오 프로필 이미지 URL과 허용된 기본 이미지 URL을 조회합니다.","operationId":"getProfileImages","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseProfileImageOptionsResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/onboarding/me":{"get":{"tags":["Onboarding"],"summary":"온보딩 상태 조회","description":"현재 로그인 사용자의 온보딩 상태를 조회합니다.","operationId":"getStatus","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseOnboardingStatusResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/auth/me":{"get":{"tags":["Auth"],"summary":"내 정보 조회","description":"서비스 access token으로 현재 로그인한 사용자의 정보를 조회합니다.","operationId":"getMe","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseAuthUserResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/users/me":{"delete":{"tags":["MyPage"],"summary":"회원 탈퇴","description":"현재 로그인 사용자를 탈퇴 처리합니다.\n\n- refresh token을 삭제합니다.\n- 닉네임, 프로필 이미지, 카카오 프로필 URL을 익명화합니다.\n- 관심 태그, 관심 매장, 검색 기록을 삭제합니다.\n- 리뷰와 자랑하기는 유지하되 작성자 표시는 탈퇴한 사용자로 처리됩니다.\n","operationId":"withdraw","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]}},"/api/search-logs/recent/all":{"delete":{"tags":["Search Log"],"summary":"최근 검색 전체 삭제","description":"검색창의 모두 지우기 클릭 시 해당 사용자의 최근 검색어를 전체 삭제합니다.","operationId":"clearRecentSearches","parameters":[{"name":"userId","in":"query","description":"사용자 ID","required":true,"schema":{"type":"integer","format":"int64"},"example":1}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}},"security":[{"bearerAuth":[]}]}}},"components":{"schemas":{"StoreTagReplaceRequest":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string","maxLength":50,"minLength":0}}},"required":["tags"]},"ApiResponseListTagResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TagResponse"}}}},"TagResponse":{"type":"object","properties":{"tagId":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"ApiResponseFavoriteStoreResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/FavoriteStoreResponse"}}},"FavoriteStoreResponse":{"type":"object","properties":{"favoriteStoreId":{"type":"integer","format":"int64"},"store":{"$ref":"#/components/schemas/StoreResponse"}}},"StoreResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"sourcePlaceId":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["CLAW","GACHA","ALL"]},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"distance":{"type":"integer","format":"int32"},"address":{"type":"string"},"contact":{"type":"string"},"businessHours":{"type":"string"},"mainImageUrl":{"type":"string"},"kakaoDetailUrl":{"type":"string"}}},"SearchLogCreateRequest":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"keyword":{"type":"string","maxLength":255,"minLength":0},"targetType":{"type":"string","enum":["STORE","ITEM","ALL"]}},"required":["keyword","targetType"]},"ApiResponseVoid":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{}}},"ReviewCreateRequest":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"storeId":{"type":"integer","format":"int64"},"rating":{"type":"number","format":"double"},"difficulty":{"type":"integer","format":"int32","maximum":5,"minimum":1},"content":{"type":"string","maxLength":1000,"minLength":0},"imageUrl":{"type":"string"}},"required":["rating","storeId","userId"]},"ApiResponseReviewResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ReviewResponse"}}},"ReviewResponse":{"type":"object","properties":{"reviewId":{"type":"integer","format":"int64"},"userId":{"type":"integer","format":"int64"},"authorNickname":{"type":"string"},"authorProfileImageUrl":{"type":"string"},"storeId":{"type":"integer","format":"int64"},"rating":{"type":"number","format":"double"},"difficulty":{"type":"integer","format":"int32"},"difficultyLabel":{"type":"string"},"content":{"type":"string"},"imageUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"modifiedAt":{"type":"string","format":"date-time"}}},"BragCreateRequest":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"storeId":{"type":"integer","format":"int64"},"spentCost":{"type":"integer","format":"int32"},"imageUrl":{"type":"string","minLength":1},"content":{"type":"string","maxLength":1000,"minLength":0}},"required":["imageUrl","spentCost","userId"]},"ApiResponseBragResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/BragResponse"}}},"BragResponse":{"type":"object","properties":{"bragId":{"type":"integer","format":"int64"},"userId":{"type":"integer","format":"int64"},"authorNickname":{"type":"string"},"authorProfileImageUrl":{"type":"string"},"storeId":{"type":"integer","format":"int64"},"spentCost":{"type":"integer","format":"int32"},"imageUrl":{"type":"string"},"content":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"modifiedAt":{"type":"string","format":"date-time"}}},"StoreProductCreateRequest":{"type":"object","properties":{"storeId":{"type":"integer","format":"int64"},"itemId":{"type":"integer","format":"int64"},"price":{"type":"integer","format":"int32"},"inventoryMode":{"type":"string","enum":["QUANTITY","STATUS"]},"stockQuantity":{"type":"integer","format":"int32"},"stockStatus":{"type":"string","enum":["IN_STOCK","LOW_STOCK","OUT_OF_STOCK","UNKNOWN"]},"difficulty":{"type":"integer","format":"int32","maximum":5,"minimum":1},"imageUrl":{"type":"string","maxLength":500,"minLength":0},"tags":{"type":"array","items":{"type":"string","maxLength":50,"minLength":0}}},"required":["inventoryMode","itemId","storeId"]},"ApiResponseStoreProductResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreProductResponse"}}},"StoreProductResponse":{"type":"object","properties":{"productId":{"type":"integer","format":"int64"},"storeId":{"type":"integer","format":"int64"},"itemId":{"type":"integer","format":"int64"},"itemName":{"type":"string"},"category":{"type":"string"},"price":{"type":"integer","format":"int32"},"inventoryMode":{"type":"string"},"stockQuantity":{"type":"integer","format":"int32"},"stockStatus":{"type":"string"},"difficulty":{"type":"integer","format":"int32"},"difficultyLabel":{"type":"string"},"imageUrl":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagResponse"}}}},"ApiResponseOnboardingCompleteResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OnboardingCompleteResponse"}}},"OnboardingCompleteResponse":{"type":"object","properties":{"onboardingCompleted":{"type":"boolean"},"next":{"type":"string"}}},"RefreshTokenRequest":{"type":"object","properties":{"refreshToken":{"type":"string","description":"서비스 refresh token","example":"service-refresh-token","minLength":1}},"required":["refreshToken"]},"ApiResponseTokenResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/TokenResponse"}}},"TokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"}}},"LogoutRequest":{"type":"object","properties":{"refreshToken":{"type":"string","description":"로그아웃할 서비스 refresh token","example":"service-refresh-token","minLength":1}},"required":["refreshToken"]},"KakaoLoginRequest":{"type":"object","properties":{"kakaoAccessToken":{"type":"string","description":"Android Kakao SDK OAuthToken.accessToken","example":"kakao-access-token","minLength":1}},"required":["kakaoAccessToken"]},"ApiResponseLoginResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/LoginResponse"}}},"AuthUserResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nickname":{"type":"string"},"profileImageUrl":{"type":"string"},"onboardingCompleted":{"type":"boolean"},"role":{"type":"string","enum":["USER","STORE_OWNER","ADMIN"]}}},"LoginResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"user":{"$ref":"#/components/schemas/AuthUserResponse"}}},"ApiResponseMapStringObject":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{}}}},"StoreManagerCreateRequest":{"type":"object","properties":{"storeId":{"type":"integer","format":"int64"},"userId":{"type":"integer","format":"int64"},"role":{"type":"string","enum":["OWNER","STAFF"]}},"required":["storeId","userId"]},"ApiResponseStoreManagerResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreManagerResponse"}}},"StoreManagerResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"storeId":{"type":"integer","format":"int64"},"userId":{"type":"integer","format":"int64"},"role":{"type":"string","enum":["OWNER","STAFF"]}}},"ItemCreateRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100,"minLength":0},"category":{"type":"string","enum":["PLUSH","FIGURE","KEYRING","GACHA","SNACK","ETC"]},"defaultImageUrl":{"type":"string","maxLength":500,"minLength":0},"tags":{"type":"array","items":{"type":"string","maxLength":50,"minLength":0}}},"required":["category","name"]},"ApiResponseItemResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ItemResponse"}}},"ItemResponse":{"type":"object","properties":{"itemId":{"type":"integer","format":"int64"},"name":{"type":"string"},"category":{"type":"string"},"defaultImageUrl":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagResponse"}}}},"MyPageProfileUpdateRequest":{"type":"object","properties":{"nickname":{"type":"string"},"profileImageType":{"type":"string"},"profileImageUrl":{"type":"string"},"interestTagIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"ApiResponseMyPageProfileResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/MyPageProfileResponse"}}},"MyPageDefaultProfileImageResponse":{"type":"object","properties":{"id":{"type":"string"},"imageUrl":{"type":"string"},"selected":{"type":"boolean"}}},"MyPageInterestTagResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"selected":{"type":"boolean"}}},"MyPageProfileResponse":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"nickname":{"type":"string"},"profileImageUrl":{"type":"string"},"kakaoProfileImageUrl":{"type":"string"},"profileImageType":{"type":"string","enum":["KAKAO","DEFAULT"]},"interestTags":{"type":"array","items":{"$ref":"#/components/schemas/MyPageInterestTagResponse"}},"defaultProfileImages":{"type":"array","items":{"$ref":"#/components/schemas/MyPageDefaultProfileImageResponse"}},"reviewCount":{"type":"integer","format":"int64"},"bragCount":{"type":"integer","format":"int64"},"favoriteStoreCount":{"type":"integer","format":"int64"}}},"ReviewUpdateRequest":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"rating":{"type":"number","format":"double"},"difficulty":{"type":"integer","format":"int32","maximum":5,"minimum":1},"content":{"type":"string","maxLength":1000,"minLength":0},"imageUrl":{"type":"string"}},"required":["rating","userId"]},"BragUpdateRequest":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"storeId":{"type":"integer","format":"int64"},"spentCost":{"type":"integer","format":"int32"},"imageUrl":{"type":"string","minLength":1},"content":{"type":"string","maxLength":1000,"minLength":0}},"required":["imageUrl","spentCost","userId"]},"StoreProductUpdateRequest":{"type":"object","properties":{"price":{"type":"integer","format":"int32"},"inventoryMode":{"type":"string","enum":["QUANTITY","STATUS"]},"stockQuantity":{"type":"integer","format":"int32"},"stockStatus":{"type":"string","enum":["IN_STOCK","LOW_STOCK","OUT_OF_STOCK","UNKNOWN"]},"difficulty":{"type":"integer","format":"int32","maximum":5,"minimum":1},"imageUrl":{"type":"string","maxLength":500,"minLength":0},"tags":{"type":"array","items":{"type":"string","maxLength":50,"minLength":0}}},"required":["inventoryMode"]},"ProfileImageUpdateRequest":{"type":"object","properties":{"type":{"type":"string"},"profileImageUrl":{"type":"string"}}},"ApiResponseOnboardingStatusResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OnboardingStatusResponse"}}},"InterestTagResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"OnboardingStatusResponse":{"type":"object","properties":{"userId":{"type":"integer","format":"int64"},"nickname":{"type":"string"},"profileImageUrl":{"type":"string"},"kakaoProfileImageUrl":{"type":"string"},"profileImageType":{"type":"string","enum":["KAKAO","DEFAULT"]},"selectedTags":{"type":"array","items":{"$ref":"#/components/schemas/InterestTagResponse"}},"onboardingCompleted":{"type":"boolean"}}},"NicknameUpdateRequest":{"type":"object","properties":{"nickname":{"type":"string"}}},"InterestTagUpdateRequest":{"type":"object","properties":{"tagIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"ItemUpdateRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100,"minLength":0},"category":{"type":"string","enum":["PLUSH","FIGURE","KEYRING","GACHA","SNACK","ETC"]},"defaultImageUrl":{"type":"string","maxLength":500,"minLength":0},"tags":{"type":"array","items":{"type":"string","maxLength":50,"minLength":0}}},"required":["category","name"]},"ApiResponseListReviewResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewResponse"}}}},"ApiResponseListFavoriteStoreResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteStoreResponse"}}}},"ApiResponseListBragResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BragResponse"}}}},"ApiResponseStoreDetailResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreDetailResponse"}}},"ProductInfo":{"type":"object","properties":{"productId":{"type":"integer","format":"int64"},"itemId":{"type":"integer","format":"int64"},"itemName":{"type":"string"},"category":{"type":"string"},"price":{"type":"integer","format":"int32"},"inventoryMode":{"type":"string"},"stockQuantity":{"type":"integer","format":"int32"},"stockStatus":{"type":"string"},"difficulty":{"type":"integer","format":"int32"},"difficultyLabel":{"type":"string"},"imageUrl":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagResponse"}}}},"StoreDetailResponse":{"type":"object","properties":{"store":{"$ref":"#/components/schemas/StoreResponse"},"productCount":{"type":"integer","format":"int32"},"totalStockQuantity":{"type":"integer","format":"int32"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagResponse"}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductInfo"}}}},"ApiResponseListStoreResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/StoreResponse"}}}},"ApiResponseListRecentSearchResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/RecentSearchResponse"}}}},"RecentSearchResponse":{"type":"object","properties":{"keyword":{"type":"string"},"targetType":{"type":"string","enum":["STORE","ITEM","ALL"]},"searchedAt":{"type":"string","format":"date-time"}}},"ApiResponseReviewWriteGuideResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ReviewWriteGuideResponse"}}},"Guide":{"type":"object","properties":{"title":{"type":"string"},"messages":{"type":"array","items":{"type":"string"}}}},"ReviewWriteGuideResponse":{"type":"object","properties":{"reviewGuide":{"$ref":"#/components/schemas/Guide"},"bragGuide":{"$ref":"#/components/schemas/Guide"}}},"ApiResponseStoreReviewSummaryResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/StoreReviewSummaryResponse"}}},"StoreReviewSummaryResponse":{"type":"object","properties":{"storeId":{"type":"integer","format":"int64"},"reviewCount":{"type":"integer","format":"int64"},"averageRating":{"type":"number","format":"double"},"showRating":{"type":"boolean"},"averageDifficulty":{"type":"number","format":"double"},"showDifficulty":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ReviewResponse"}}}},"ApiResponseProfileImageOptionsResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ProfileImageOptionsResponse"}}},"DefaultProfileImageResponse":{"type":"object","properties":{"id":{"type":"string"},"imageUrl":{"type":"string"}}},"ProfileImageOptionsResponse":{"type":"object","properties":{"kakaoProfileImageUrl":{"type":"string"},"defaultImages":{"type":"array","items":{"$ref":"#/components/schemas/DefaultProfileImageResponse"}}}},"ApiResponseListInterestTagResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/InterestTagResponse"}}}},"ApiResponseAuthUserResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/AuthUserResponse"}}},"ApiResponseListItemResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ItemResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}