도메인
- store
가게 생성
- 계정당 가게 하나만 생성 validation 로직 추가
- 한 사람이 짧은 시간 동안 여러번 요청 보내어도 한번만 생성된다.
가게 조회 (단건)
가게 조회 (커서)
가게 정보 수정
가게 삭제
presigned url 조회
가게 상세 이미지 생성
상세 이미지 삭제
나의 가게 조회
- table → 테이블 id uuid
- 테이블 생성
- 테이블 같은 번호로 여러번의 동시 요청에 대해 한번만 생성된다
- 테이블 수정
- 테이블 같은 번호로 여러번의 동시 요청에 대해 한개만 수정된다
- 같은 번호로 수정 과 생성 동시 요청에 대해 한개만 수정 혹은 생성된다.
테이블 삭제
테이블 목록 조회
- sale
- 오픈 → store 에 락 추가
- 하나의 가게에 동시 오픈 요청에 대해 하나의 sale 만 만들어져야 한다
마감
- sale 리스트 조회(총 매출?) → 이건 보류겐 만들긴 해야해
- call
호출 생성
호출 완료
완료되지 않은 호출들 조회
- cart
- 장바구니에 메뉴 추가
- 장바구니에 같은 메뉴를 동시에 담을 때 (ex A 1 , A 2개 ) = > A 3개가 되어야 한다.
장바구니의 메뉴 삭제
장바구니 조회
review
- menu
가게 메뉴 추가
가게 메뉴 상세조회
가게 메뉴 무한스크롤 조회
카테고리 별 메뉴 리스트 조회
가게 메뉴 정보 수정
- 가게 메뉴 순서 수정
- 1,2,3,4,5번 메뉴가 존재할 때, 2→5번 순서 이동과 1→3번 순서 이동 요청이 동시에 왔을 때, 이동 범위에 겹치는 2, 3번이 잘 처리 되도록 처리
가게 메뉴 품절 수정
- 가게 메뉴 삭제
- 순서 수정 + 메뉴 삭제 요청이 동시에 왔을 때, 잘 처리 되도록
- menuCategory
- 가게 메뉴 카테고리 순서 수정
- 1,2,3,4,5번 메뉴가 존재할 때, 2→5번 순서 이동과 1→3번 순서 이동 요청이 동시에 왔을 때, 이동 범위에 겹치는 2, 3번이 잘 처리 되도록 처리
- 가게 메뉴 카테고리 삭제
- 순서 수정 + 메뉴 삭제 요청이 동시에 왔을 때, 잘 처리 되도록
- receipt
- 영수증 생성
- 영수증 생성 요청이 동시에 들어와도 1개의 영수증만 한 테이블을 점유한다.
- order
- 주문 생성(장바구니 기반)
- 영수증이 정산요청과, 주문 생성 요청이 동시에 들어왔을 때 정산된 이후에 주문이 생성되지 않도록 보장한다.
- 주문 생성(메뉴 기반)
- 영수증이 정산요청과, 주문 생성 요청이 동시에 들어왔을 때 정산된 이후에 주문이 생성되지 않도록 보장한다.
- 주문 상태 수정
- 주문 상태를 취소로 변경 요청과, 주문 메뉴 추가 요청이 동시에 왔을 때 취소된 주문에 주문 메뉴가 추가되지 않도록 보장하고, 주문에 해당하는 모든 주문메뉴가 취소처리되도록 보장한다.
- orderMenu
- 주문 메뉴 상태 수정
- 주문 메뉴 상태를 수정하기 전 주문의 상태가 received 상태인지 확인한 후 수정을 하는데, 주문 상태 변경 요청과 주문 메뉴 상태 수정 요청이 동시에 왔을 때, 주문 메뉴 상태가 수정되면서 주문 상태가 변경되지 않도록 락을 걸어 처리한다.
- 주문 메뉴 추가
- 주문 메뉴를 여러번 추가했을 때 횟수만큼 추가 및 삭제가 되는지 보장
- 주문 메뉴 삭제
- 주문 메뉴를 여러번 삭제했을 때 횟수만큼 추가 및 삭제가 되는지 보장
services:
controller:
build:
context: ./ngrinder-controller
dockerfile: Dockerfile
ports:
- "8080:8080"
- "16001:16001"
- "12000-12009:12000-12009"
container_name: ngrinder-controller
networks:
- ngrinder-net
agent:
image: ngrinder/agent:3.5.9-p1
platform: linux/amd64
restart: always
links:
- controller:controller