Skip to content

[BE] Curation v2 시음회·프로그램 장소검색 requestSpec 계약 정렬 #344

Description

@bottlenote-app

배경

현재 Admin 시음회 form은 requestSpec에 없는 placeName을 FE에서 하드코딩으로 주입하고, 장소검색 UI를 연결한 뒤 submit payload에도 포함하고 있다.

  • PROGRAMplaceName, address는 현재 x-field-style: plain-text이다.
  • x-tag 기반 매칭은 없다.
  • Admin 주소검색 renderer 계약은 x-field-style: address-search이다.

추가 필드나 임의 payload 허용에 의존하지 않고, requestSpec을 SSoT로 정렬한다.

요구사항

1. WHISKY_TASTING_EVENT requestSpec

placeName을 정식 property 및 required 필드로 추가한다.

  • 타입: string
  • maxLength: 100
  • x-display-name: 장소명
  • x-field-style: address-search

2. PROGRAM 주소검색 계약

PROGRAM.addressx-field-styleplain-text에서 address-search로 변경한다.

아래 저장 의미를 requestSpec 또는 계약 문서에서 명확히 정의한다.

저장 의미
placeName 장소검색 선택 결과의 장소명
선택 주소 장소검색 선택 결과의 실제 주소
상세 위치 건물명·층·호수 등 사용자가 추가 입력하는 세부 위치

3. curation-spec 상세 API 반영 확인

Admin curation-spec 상세 API가 반환하는 실제 requestSpec에도 위 변경이 반영되는지 확인하고, 스키마 정의와 응답 간 불일치가 없게 한다.

4. 호환성·회귀 확인

  • 기존 시음회·프로그램 생성/수정 payload의 호환성을 확인한다.
  • Product detail/feed에 대한 회귀 여부를 확인한다.

FE 연계 및 후속 작업 범위

현재 Admin renderer는 장소 선택 시 장소명을 자동 동기화하는 로직이 barAddress에만 하드코딩되어 있다. 따라서 PROGRAM.address 또는 시음회 placeNameaddress-search만 적용하면 선택 결과가 어느 필드에 저장되는지 불완전할 수 있다.

백엔드 계약에서 선택 결과를 placeName, 실제 주소, 상세 위치에 각각 어떻게 매핑하는지 확정하고, 다음 FE 후속 작업 범위를 명시한다.

  • barAddress 전용 자동 동기화 의존을 제거하거나 공통 매핑으로 일반화한다.
  • WHISKY_TASTING_EVENTPROGRAM의 주소검색 필드별 선택 결과 저장 대상을 계약에 맞게 연결한다.
  • 기존 form 초기값·수정 화면·submit payload가 정식 requestSpec만을 따르도록 정리한다.

완료 기준

  • WHISKY_TASTING_EVENT.placeName이 요구한 정식 requestSpec 필드로 제공된다.
  • PROGRAM.addressaddress-search 계약으로 제공되고 저장 의미가 문서화된다.
  • Admin curation-spec 상세 API 응답에서 변경된 requestSpec을 확인한다.
  • 기존 생성·수정 payload 호환성 및 Product detail/feed 회귀 확인 결과를 기록한다.
  • FE가 적용할 필드 매핑 및 후속 작업 범위가 합의 가능한 형태로 명시된다.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions