-
Notifications
You must be signed in to change notification settings - Fork 0
Description
📄 설명
가게의 메뉴를 효율적으로 관리하기 위한 CRUD 기능을 구현합니다. (사장님(Owner) 권한에서 메뉴를 등록하고 상태(품절 등)를 관리)
-
**이미지 선 업로드 방식(Pre-upload)**을 도입하여, 이미지를 먼저 S3에 업로드하고 반환된 Key를 이용해 메뉴를 등록/수정합니다.
-
임시-영구 경로 이동 방식(Temp-to-Perm Move) 도입: 이미지를 temp/ 경로에 선 업로드한 후, 실제 메뉴 등록/수정 시에만 정식 경로(stores/{id}/menus/)로 이동시켜 데이터 무결성을 보장합니다.
-
S3 수명 주기 규칙(Lifecycle Rule) 연동: 등록되지 않은 채 temp/에 남은 '고아 이미지'는 AWS 인프라 단에서 자동 삭제(1일 주기)되도록 하였습니다.
-
Menu를 Soft Delete 처리하여, 추후 메뉴 삭제 시에도 주문 내역 등에서 확인 가능하도록 합니다.
-
메뉴 등록과 삭제는 **일괄 처리(Bulk Operation)**를 지원하여 네트워크 효율성을 높입니다.
-
메뉴 정보(이름, 가격, 설명, 카테고리, 이미지)의 생성/수정/삭제 기능을 구현합니다.
-
메뉴 품절 상태를 실시간으로 변경할 수 있는 별도 로직을 적용합니다.
✅ 작업할 내용
-
메뉴 이미지 선 업로드 API 구현 (POST /api/v1/stores/{storeId}/menus/images)
-
이미지를 S3 **임시 경로(temp/)**에 업로드하고 Key를 반환 (메뉴 등록/수정 전 호출)
-
메뉴 이미지 확정 이동 로직 (등록/수정 시)
-
메뉴 등록/수정 성공 시 S3의 copyObject와 deleteObject를 이용해 임시 파일을 영구 경로로 이동
-
메뉴 이미지 삭제 API 구현 (DELETE /api/v1/stores/{storeId}/menus/images)
-
기등록된 이미지는 DB 및 S3에서 즉시 삭제
-
메뉴 수정 API 구현 (PATCH /api/v1/stores/{storeId}/menus/{menuId})
-
선택적 필드 업데이트 (이미지 교체 포함)
-
메뉴 일괄 삭제 API 구현 (DELETE /api/v1/stores/{storeId}/menus)
◦ Soft Delete 적용 및 삭제되는 모든 메뉴의 S3 이미지 일괄 정리 -
메뉴 품절 상태 변경 API 구현 (PATCH /api/v1/stores/{storeId}/menus/{menuId}/sold-out)