- 상품 엔티티
- 기능 구현 사항
- 상품 전체 조회
- 상품 단일 조회
- 상품 등록
- 상품 수정
- 상품 삭제
- price가 마이너스면 IllegealException을 반환한다
회원 엔티티
기능 구현 사항
- 토큰 인증, 인가
- 비밀번호가 일치하지 않으면 false를 반환한다.
- 로그인이 정상적으로 성공한다
- 로그인 유저 정보가 존재하지 않은 경우 예외를 던진다.
- 로그인 비밀번호가 틀린 경우 예외를 던진다.
- 토큰 생성, parsing한다
- 토큰 유효기간이 지나면 false를 반환한다
- 토큰 secret key가 다르면 false를 반환한다
장바구니 상품 엔티티
기능 구현 사항
- 장바구니 전체 목록 조회
- 장바구니의 상품 정보가 변경되었을 경우 변경된 상품 정보와 변경 여부를 반환한다.
- 상품의 변경이 확인되면 true를 반환한다.
- 본인의 장바구니가 아니면 예외를 던진다.
- 장바구니의 상품 정보가 변경되었을 경우 변경된 상품 정보와 변경 여부를 반환한다.
- 장바구니에 상품을 추가한다
- 수량이 0 미만이면 예외를 던진다.
- 이미 장바구니에 해당 상품이 있을경우 수량이 증가한다
- 장바구니 상품의 수량을 수정한다
- 장바구니 물품 수량 업데이트 시 수량이 0이면 장바구니에서 삭제시킨다
- 장바구니에 특정 상품을 제거한다
Order 엔티티, OrderItem 엔티티 OrderItems 일급 컬렉션
기능 구현 사항
- 장바구니 상품을 바탕으로 주문을 요청한다.
- 장바구니에 상품이 없는 경우 예외를 발생시킨다.
- 주문 상세 정보를 조회한다.
- 존재하지 않는 주문 정보인 경우 예외를 발생시킨다.
- 본인의 주문 정보가 아닌 경우 예외를 발생시킨다.
- 주문 목록을 조회한다.
Order 엔티티에 주문 시 환율 정보 필드 추가
기능 구현 사항
- 주문을 요청할 때 실시간 환율을 받아와서 저장한다.
- 주문 상세 정보를 조회할 때 환율을 바탕으로 총 금액을 전달한다.