Repository navigation
feat: 상점주 예약 관리 및 메뉴 드래그 정렬 개선 - #322
Merged
Merged
Conversation
This was referenced Oct 20, 2026
JJH090501
approved these changes
Oct 20, 2026
21 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
변경 요약
feat/merchant-reservation-query→develop기존 상점주 예약 조회·승인·반려와 메뉴 드래그 정렬 작업에 관리자 예약 조회 전용 전환, 다중 브랜드 선택 UX, release 배포 설정 동기화 및 최신 API 계약 검증을 통합합니다. 사용자 요청에 따라 별도 PR을 만들지 않고 #322에 추가합니다. 기존 커밋은 보존하며 강제 푸시하지 않습니다.
상점주 예약 조회·승인·반려 (#315, #316)
메뉴 드래그 정렬 (#319)
관리자 예약을 기록 조회 전용으로 전환 (#317)
/reservations/review딥링크·예약 ID·필터·페이지·인증 복귀를 유지합니다.상점주 다중 브랜드 선택 UX (#320)
release 배포 설정 동기화 (#321)
HOST,USERNAME,KEY,DOCKER_USERNAME,DOCKER_TOKEN을 사용하며 비밀값은 읽거나 출력하지 않았습니다.16022ff의 배포 실행은 성공으로 확인했습니다. 이번 새 커밋의 배포 성공과는 별개입니다. 최초 인증 실패는 토큰 만료가 원인이었고 담당자가 해결했다고 2026-10-21 사용자가 확인했습니다. #321은 완료 처리하고 미병합 develop 동기화·신규 코드 배포 확인은 #318에서 이어서 추적합니다.API 계약·통합 회귀 (#318)
fada91615237a7d6093afd30b68c5cbe643b6bac입니다.docs/reservation-role-transfer-318.md에 기록합니다.함께 유지되는 공통 UX
404 PLACE_INFORMATION_NOT_FOUND만 정상 미등록으로 처리합니다. 다른 오류·인증 갱신 실패는 숨기지 않습니다.앞서 반영한 추가 커밋 (4개)
52fc79erefactor: 관리자 예약을 기록 조회 전용으로 전환b1c2bddfeat: 상점주 다중 브랜드 선택 UX 개선0dd342fchore: 릴리스 자동 배포 설정 동기화fbc79c2test: 예약 역할 이관 계약과 통합 회귀 검증이번 추가 UI·문구 개선 (8개 커밋)
1144b54장소 상태 모달의 필드 여백 및 상점주 신청 첨부 파일의 수직 정렬·좁은 화면 배치 개선.3142ffe장소 검증 선택 영역을 가로로 확장하고 직접 입력의 라벨 간격·조회 버튼 위치 고정. 미선택·미조회·성공한 빈 결과·조회 실패 및 재시도를 구분.98c285a밴 필터·날짜 컨트롤 호버 표시, 목록 연한 핑크 호버, 제목과 밴 해제 버튼을 같은 줄·동일 안쪽 여백으로 정렬.dd41493관리자 계정명 검색을 역할 조회 옆으로 이동하고 관리자 예약 필터·검색/초기화/조회 버튼을 데스크톱 한 줄로 배치. 좁은 화면은 줄바꿈 유지.a82107a운영 이력의 필터 카드만 overflow를 허용해 개인정보 처리 유형 드롭다운 잘림 수정. 옵션 클릭·키보드 회귀 추가.aa54fda일반 오류에서 CORS 설정 지시를 제거하고 재시도·문의 중심으로 변경. 화면의 업주 표현은 상점주로 통일하고 감사 로그의 원본 코드·사유는 보존.b9d0ab8추천 버전별 적용 비율·대체 버전·다시 계산 및 신뢰 점수 운영 문구 정리. enum·API 키·내부 진단 로그는 변경하지 않음.5c55bb2알림 처리 작업과 실패 상태를 구분하고 원본 코드·상세 오류를 접힌 기술 정보에 보존. 데이터 품질 대상·규칙 코드와 미연결 파일 삭제 경고를 사용자 중심으로 정리.상세 테스트는 각 변경 커밋에 함께 분리했습니다. 서버 endpoint·schema를 추가하거나 변경하지 않았고, 이번 추가 검증에서 운영 데이터를 수정하지 않았습니다.
최종 배포 후속 확인 (2026-10-21)
93a40f65268c9a19822407c0a0e4701d13f38154(PR #323, 2026-10-21 03:00 KST 병합).verify·ec2-image모두 성공.Container pingdom-admin-web-1 Healthy,Deployment and HTTP checks passed를 확인했습니다./console/loginHTML 200, 새/console/assets/index-BYgR28Ml.jsJavaScript 200,/consulting/HTML 200, 비로그인/api/users/meJSON 401. 이전 자산index-qeZI8awm.js와 구분합니다.fada91615237a7d6093afd30b68c5cbe643b6bac및 해당 SHA의 서버 배포 workflow 성공 확인. 서버 workflow는 해당 SHA 이미지 태그로 교체하고 상태 검사·이미지 일치를 확인합니다. 직접 SSH/JVM 런타임 조회는 수행하지 않았습니다.최종 develop
66e6921의 PR·push CI도 모두 성공했습니다. #321의 develop 동기화와 #318의 새 배포본 인증된 읽기 확인까지 완료했습니다. 아래 구현 당시의 미배포·병합 전 기록은 당시 검증 범위를 보존한 기록입니다./console/merchant/reservations에서 예약 목록 5건과 선택한 예약의 상세·상태 변경 이력을 정상 조회했습니다. 페이지의 실제 script가/console/assets/index-BYgR28Ml.js임을 DOM에서 확인해 웹 release93a40f65268c9a19822407c0a0e4701d13f38154의 배포 결과와 연결했습니다. 에이전트는 로그인 자격증명을 읽거나 CAPTCHA를 풀지 않았고 승인·반려·취소·결제·환불·메뉴 변경도 실행하지 않았습니다. 개인정보 값은 이슈에 기록하지 않습니다. 관리자 계정의 새 배포본 재조회까지 수행했다는 의미는 아닙니다.검증
실행 결과:
node --test --test-reporter=dot tests/*.test.mjs재실행 통과. 예약 역할·대시보드·배포 mock 회귀를 포함합니다.npm run lint, TypeScript 포함npm run build,git diff --check통과.npm run check:api-matrix재생성 일치 및npm run check:api-contracts네 그룹 compatible 확인. 기존 타 API 누락·대체 경로 경고는 남아 있습니다.미수행 및 제한:
/console/login·JS 자산·/consulting/200,/api/users/meJSON 401을 확인했습니다. 새 코드의 배포 완료나 인증된 화면 정상 동작을 뜻하지 않습니다.2026-10-21 추가 검증 및 사용자 QA
5c55bb2: 전체 단위·컴포넌트 검사, lint, TypeScript 포함 build, diff 공백 검사 재실행 통과.Web API 계약
METHOD /path형식으로 모두 기록했습니다.docs/web-api-contract-matrix.csv의 schema, status, issue, canonical 상태,last_verified를 갱신했습니다.영향 operation (웹
/api접두사 제외):GET /admin/reservations— 관리자 조회 전용, 대기 업무 집계에서 제외.GET /admin/reservations/{reservationId}— 현재 상점주와 당시 처리자·이력 구분.POST /admin/reservations/{reservationId}/confirm— 폐기, 호출 제거.POST /admin/reservations/{reservationId}/reject— 폐기, 호출 제거.GET /merchant-owner/reservations— 상태·매장·시작 기간·페이지 필터.GET /merchant-owner/reservations/{reservationId}— 상세·이력 및 응답 검증.POST /merchant-owner/reservations/{reservationId}/confirm— 선택 사유, 공백 사유는 본문 생략.POST /merchant-owner/reservations/{reservationId}/reject— 필수 사유·500자 검증.POST /merchant-owner/reservations/{reservationId}/cancel— 기존 취소·환불 선행 보호 유지.GET /merchant-owner/me— 소유 매장 참조 및 실패 구분.GET /merchant-owner/availabilities— 예약 시간 참조 및 실패 구분.GET /merchant-owner/places/{placeId}— 매장 이름·주소 표시.GET /merchant-owner/places/{placeId}/menus— 정렬 후 전체 목록 재확인.PATCH /merchant-owner/places/{placeId}/menus/{menuId}/order— 목표 인덱스 한 번 전송.GET /merchant-owner/places/{placeId}/information— 명시적 미등록만 빈 상태로 처리.PUT /merchant-owner/places/{placeId}/information— 기존 명시적 저장 유지, 자동 쓰기 없음.GET /merchant-owner/campaigns/brands— 브랜드 0/1/복수 및 실패 구분.POST /merchant-owner/campaigns/brands— 생성 후 명시 선택·초안 보존.PATCH /merchant-owner/campaigns/brands/{brandId}— 기존 편집 시 선택 브랜드 검증·미리보기.GET /merchant-owner/campaigns— 저장된 브랜드 연결 보존.POST /merchant-owner/campaigns— 소유 브랜드 명시 선택 검증.PATCH /merchant-owner/campaigns/{campaignId}— 기존 이벤트 브랜드 보존 및 제출 검증.GET /merchant-owner/offers— 병렬 조회 실패를 미등록 정보와 혼동해 숨기지 않도록 유지.GET /merchant-owner/places/{placeId}/operating-notices— 병렬 조회 실패 구분 유지.위 기존 브랜드·이벤트 API의 서버 계약 자체를 변경하지 않습니다. 스냅샷에 수집된 App/Common의 웹 비관련 추가 operation까지 구현했다고 표시하지 않습니다.
관련 이슈