Skip to content

[Feat] 관리자 관광 지역 설정과 식당 지역 지정 API 추가 (#251) - #256

Open
hwistlezz wants to merge 30 commits into
feat/#231/map-integration-verificationfrom
feat/#251/admin-map-regions
Open

hwistlezz wants to merge 30 commits into
feat/#231/map-integration-verificationfrom
feat/#251/admin-map-regions

Conversation

@hwistlezz

@hwistlezz hwistlezz commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

🔥 작업 내용 (What)

관리자가 관광 지역을 등록하고 식당의 소속 지역을 지정하는 API를 추가했습니다. 예를 들어 긴자 선택 시 보여 줄 지도 중심·범위와 긴자에 포함할 식당을 관리합니다.

🧩 변경 사항 (Details)

항목 이 PR에서 추가하는 동작
지역 목록 활성·비활성 관광 지역을 조회합니다.
지역 저장 코드·이름·대표 좌표·화면 범위·표시 순서·활성 여부를 저장합니다. 같은 코드는 기존 ID를 유지하며 수정합니다.
식당 배정 식당의 관광 지역을 지정하거나 해제합니다. 삭제된 식당은 변경하지 않습니다.
동시 처리 같은 코드의 중복 지역 생성을 막고, 식당 삭제와 소속 변경은 같은 잠금 순서로 처리합니다.
API 안내 Swagger에 지역 중심과 경계의 차이, 전체 교체 방식, 등록·수정·소속 해제 예시를 추가했습니다.
입력 조건 저장 좌표의 소수 6자리 정밀도와 활성 지역의 지원 범위·최대 폭을 안내합니다. 목록의 page × size가 JPA offset 범위를 넘으면 500 대신 400으로 응답합니다.

기존 ADMIN 권한과 admin → RestaurantPort → restaurant 구조를 사용합니다. 새로운 테이블이나 라이브러리 없이 선행 지도 모델에 관리 기능을 연결합니다.

요청 예시와 입력 순서는 docs/map/admin-regions.md에도 정리했습니다. 통합 테스트는 선행 PR의 지도 전용 Redis 연결 설정을 사용하도록 맞췄습니다.

📸 스크린샷

없음

⚠️ 주의 사항 (Caution)

🔗 관련 이슈

Closes #251

✅ 체크리스트

  • 관련 테스트와 문서 확인
  • 현재 변경의 CI 확인

@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (2)
  • develop
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: TEAM-HASHI/HASHI-SERVER/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 58e21328-b7a9-4fdf-baff-ff823cde6e26

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hwistlezz
hwistlezz marked this pull request as ready for review October 7, 2026 18:08
@hwistlezz hwistlezz self-assigned this Oct 7, 2026
# Conflicts:
#	build.gradle
#	docs/map/location-jobs.md
#	docs/map/map-contract-v1.md
#	src/main/java/org/sopt/hashi/admin/dto/CreateRestaurantRequest.java
#	src/main/java/org/sopt/hashi/admin/dto/UpdateRestaurantRequest.java
#	src/main/java/org/sopt/hashi/restaurant/domain/Restaurant.java
#	src/main/java/org/sopt/hashi/restaurant/service/RestaurantService.java
#	src/test/java/org/sopt/hashi/admin/service/AdminRestaurantServiceTest.java
#	src/test/java/org/sopt/hashi/admin/web/AdminRestaurantControllerTest.java
#	src/test/java/org/sopt/hashi/restaurant/domain/RestaurantLocationTest.java
#	src/test/java/org/sopt/hashi/restaurant/internal/map/google/MapGoogleLiveFlowTest.java
#	src/test/java/org/sopt/hashi/restaurant/service/LocationJobMySqlTest.java
#	src/test/java/org/sopt/hashi/restaurant/service/MapQueryLoadTest.java
# Conflicts:
#	src/main/java/org/sopt/hashi/restaurant/RestaurantPort.java
#	src/main/java/org/sopt/hashi/restaurant/code/RestaurantErrorCode.java
#	src/main/java/org/sopt/hashi/restaurant/service/RestaurantPortImpl.java
#	src/test/java/org/sopt/hashi/restaurant/service/CollectionMapPortMySqlIntegrationTest.java
#	src/test/java/org/sopt/hashi/restaurant/service/RestaurantServiceIntegrationTest.java
…admin-map-regions

# Conflicts:
#	src/main/java/org/sopt/hashi/restaurant/RestaurantPort.java
#	src/main/java/org/sopt/hashi/restaurant/service/RestaurantPortImpl.java
@hwistlezz
hwistlezz requested a review from gichanGim October 9, 2026 06:48
@Schema(description = "현재 페이지의 지역 설정. 비활성 초안도 포함") List<AdminMapRegionResponse> content,
@Schema(description = "0부터 시작하는 현재 페이지", example = "0") int page,
@Schema(description = "요청한 페이지 크기", example = "20") int size,
@Schema(description = "활성·비활성 지역 전체 개수", example = "3") long totalElements,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다른 response에서 전체 개수에 대한 필드 명을 totalCount로 통일하고 있어서, 여기도 마찬가지로 동일하게 맞춰주시면 좋을 것 같습니다!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants