Skip to content

[BE] 빵집 제보 및 상태 관리 기능 추가 #244

@duku0751

Description

@duku0751

목적

사용자가 새 빵집 등록 또는 기존 빵집 정보 수정을 제보할 수 있는 기능이 필요합니다. 또한 제보를 통해 생성된 빵집이 관리자 승인 전까지 일반 사용자에게 노출되지 않도록 빵집 상태(PENDING/APPROVED/REJECTED) 관리 체계를 도입합니다.


작업 내용

  • BakeryReport 엔티티 추가 (NEW_BAKERY / UPDATE_BAKERY 타입 분리)
  • POST /bakeries/reports/new, /bakeries/reports/update 제보 등록 API 추가
  • NEW_BAKERY 제보 승인 시 PENDING 상태 빵집 자동 생성
  • UPDATE_BAKERY 승인 시 ADDRESS/DISTRICT 자동 반영, 나머지 필드는 수동 처리
  • AdminBakeryController: PENDING→APPROVED/REJECTED 처리 및 승인 전 필수 필드 검증 (name, address, lat/lng, region, dong, bakeryType)
  • 전 도메인(리뷰, 코스, 혼잡도, AI 코스) 사용자 노출 쿼리에 APPROVED 필터 적용
  • createBakery 권한 검사 누락 수정 (ADMIN/BUSINESS만 허용)
  • Bakery.update() lat/lng 중 하나만 변경돼도 location geometry 갱신되도록 수정
  • BakeryAdminResponse DTO 추가 (위경도 0.0 시 null 반환)
  • Flyway V18: bakery_report 테이블 추가

영향 범위

  • 엔티티: Bakery, BakeryReport (신규)
  • 엔드포인트: POST /bakeries/reports/new, /bakeries/reports/update, GET /admin/bakery-reports, POST /admin/bakery-reports/{id}/approve|reject, GET /admin/bakeries, POST /admin/bakeries/{id}/approve|reject
  • 모듈: bakery, course, congestion (BakeryRepository 조회 메서드 시그니처 변경)

완료 조건

  • 기능 정상 동작
  • Lint / 타입 체크 통과
  • API 명세 업데이트

관련 이슈 / 참고

  • BUSINESS_HOURS, REPRESENTATIVE_MENU 등 복잡한 필드 수정 제보는 현재 로그만 남기며 수동 반영 필요 (추후 개선 예정)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions