양식

<aside>

10/27 @담당자

요청자 : 
담당 도메인: 
조회 조건: 
반환값: 
예외: 

</aside>




<aside>

10/27 @담당자

요청자 : 채팅 ( 김영서 )
담당 도메인: 프로필 ( 이현정 )
조회 조건: 채팅방 내의 프로필 클릭시
반환값: 탈퇴·정지 사용자의 프로필 응답 형태
예외: 

</aside>


<aside>

10/27 @담당자

요청자 : 채팅 ( 김영서 )
담당 도메인: 서비스 요청·견적 ( 김태민 )
조회 조건: 요청서, 견적서에 대한 상세 조회 버튼을 클릭 시 
반환값: 요청서, 견적서 데이터가 담긴 이미지, 혹은 context String 반환
예외: 요청서, 견적서의 유효 기간이 지난 경우 열리지 않고 경고문만 띄워지도록 함

</aside>


<aside>

10/27

요청자 : 
담당 도메인: 
조회 조건: 
반환값: 
예외: 

</aside>


<aside>

10/27

요청자 : 
담당 도메인: 
조회 조건: 
반환값: 
예외: 

</aside>


<aside>

10/27

요청자 : 
담당 도메인: 
조회 조건: 
반환값: 
예외: 

</aside>


<aside>

10/27

요청자 : 
담당 도메인: 
조회 조건: 
반환값: 
예외: 

</aside>


<aside>

2026년 10월 28일 · 이슈 #3 구조 변경 공유

요청자 : 이현정
담당 도메인: 카테고리·지역
조회 조건: 분리된 단계별 엔티티 및 공개 목록 조회
반환값: FirstCategory / SecondCategory / FirstRegion / SecondRegion 또는 각 Response 목록
예외: 대상·상위 항목이 없으면 해당 도메인의 404 예외

기존 CategoryService.getCategoryEntity와 RegionService.getRegionEntity는 제거합니다. 각 단계의 Service가 제공하는 getFirstCategoryEntity·getSecondCategoryEntity·getFirstRegionEntity·getSecondRegionEntity를 사용합니다. 다른 도메인은 Repository를 직접 호출하지 않습니다.

공개 목록은 GET /api/public/first-categories, GET /api/public/first-categories/{firstCategoryId}/second-categories, GET /api/public/first-regions, GET /api/public/first-regions/{firstRegionId}/second-regions로 나눕니다. 기존 /api/public/categories·regions와 parentId 계약은 대체됩니다. 응답의 상위 ID 필드는 firstCategoryId·firstRegionId로 구분합니다.

시드의 기존 ID·이름·지역 코드는 보존합니다. ID는 단계별 테이블의 값이므로 다른 단계에서 같은 ID를 사용할 수 있습니다. 내부 ID와 code를 구분해서 전달해 주세요.

고수 프로필은 user.expertprofile로 정리하고 Member와 별도 엔티티로 유지합니다. 회원당 최대 하나의 프로필만 저장할 수 있으며 신규 등록·수정과 서비스·지역 연결은 후속 이슈입니다.

이슈 #3 · API 명세서

</aside>