
✔️ [변경 사항]
- 주문 하기 API 부분에 주문 기능 로직에 따른 설명 추가
- 주문 하기 API에서 BODY에 받아올 firstBookTitle 데이터 추가
{
email : "사용자가 입력한 이메일",
password : "사용자가 입력한 비밀번호"
}{
email : "사용자가 입력한 이메일",
password : "사용자가 입력한 비밀번호"
}{
email : "사용자가 입력한 이메일"
}{
email : "이메일"
}{
email : "이전 페이지에서 입력했던 이메일",
password : "사용자가 입력한 새로운 비밀번호"
}// 전체 도서 목록에는 도서의 상세 정보를 모두 포함합니다.
// 필요한 데이터만 선별하여 구현 부탁드립니다.
[
{
id : 도서 id,
title : "도서 제목",
img : 이미지 id (picsum image #num),
summary : "요약 설명",
author : "도서 작가",
price : 가격,
likes : 좋아요 수,
pubDate : 출간일
},
{
id : 도서 id,
title : "도서 제목",
summary : "요약 설명",
author : "도서 작가",
price : 가격,
likes : 좋아요 수,
pubDate : 출간일
},
...
]{
id : 도서 id,
title : "도서 제목",
img : 이미지 id (picsum image #num),
category : "카테고리",
format : "포맷",
isbn : "isbn",
summary : "요약 설명",
description : "상세 설명",
author : "도서 작가",
pages : 쪽 수,
index : "목차",
price : 가격,
**likes : 좋아요 수,**
~~~~ **liked : boolean,**
pubDate : 출간일
}SELECT EXISTS 쿼리를 통해 likes 테이블에 특정 유저가 특정 책을 좋아요 추가했는지에 대한 데이터가 존재하는지 확인하여 응답할 수 있게 되었다.[
{
id : 도서 id,
title : "도서 제목",
img : 이미지 id (picsum image #num),
summary : "요약 설명",
author : "도서 작가",
price : 가격,
**likes : 좋아요 수,**
pubDate : 출간일
},
{
id : 도서 id,
title : "도서 제목",
img : 이미지 id (picsum image #num),
summary : "요약 설명",
author : "도서 작가",
price : 가격,
**likes : 좋아요 수,**
pubDate : 출간일
},
...
][
{
id = 카테고리 id,
name = 카테고리 이름
},{
id = 카테고리 id,
name = 카테고리 이름
},
...
]로그인할 때 받은 JWT (header “Authorization”)
JWT의 PAYLOAD 값을 읽는다 = 사용자의 id값을 읽을 수 있다.
// 일단은 토큰을 받아서 유저의 id값을 확인했다고 치고 기능구현을 진행한다.
로그인할 때 받은 JWT (header “Authorization”)
JWT의 PAYLOAD 값을 읽는다 = 사용자의 id값을 읽을 수 있다.
// 일단은 BODY로 토큰을 받아서 유저의 id값을 확인했다고 치고 기능구현을 진행한다.
{
book_id : 도서 id,
quantity : 구매 수량,
user_id : 유저 id
}로그인할 때 받은 JWT (header “Authorization”)
JWT의 PAYLOAD 값을 읽는다 = 사용자의 id값을 읽을 수 있다.
// 일단은 BODY로 토큰을 받아서 유저의 id값을 확인했다고 치고 기능구현을 진행한다.
{
user_id : 유저 id,
selected : [ cartItem_id, cartItem_id, ... ]
}[
{
cartItem_id : 장바구니에 담긴 도서 id,
book_id : 도서 id,
title : "도서 제목",
summary : "도서 요약",
quantity : 구매 수량,
price : 가격
},
{
cartItem_id : 장바구니에 담긴 도서 id,
book_id : 도서 id,
title : "도서 제목",
summary : "도서 요약",
quantity : 구매 수량,
price : 가격
},
...
][ cartItem_id, cartItem_id, ... ][
{
cartItem_id : 장바구니에 담긴 도서 id,
book_id : 도서 id,
title : "도서 제목",
summary : "도서 요약",
quantity : 구매 수량,
price : 가격
},
{
cartItem_id : 장바구니에 담긴 도서 id,
book_id : 도서 id,
title : "도서 제목",
summary : "도서 요약",
quantity : 구매 수량,
price : 가격
},
...
]로그인할 때 받은 JWT (header “Authorization”)
JWT의 PAYLOAD 값을 읽는다 = 사용자의 id값을 읽을 수 있다.
// 일단은 BODY로 토큰을 받아서 유저의 id값을 확인했다고 치고 기능구현을 진행한다.
{
items : [{
cartItem_id : 장바구니 도서 id,
book_id : 도서 id,
quantity : 수량
},{
cartItem_id : 장바구니 도서 id,
book_id : 도서 id,
quantity : 수량
}, ...],
delivery : {
address : "주소",
receiver : "이름",
contact : "010-0000-0000"
},
totalQuantity : 총 수량,
totalPrice : 총 금액,
firstBookTitle : 대표 도서 제목
// 결제방법은 보류(new)BODY로 들어오는 값들을 살펴보자
(new)이때 orderedBook 테이블은 orders 테이블의 id를 참조하고 있다.
그리고 orders 테이블은 delivery 테이블의 id를 참조하고 있다.
👍 (new) 1️⃣ delivery → 2️⃣ orders → 3️⃣ orderedBook 순서로 테이블에 INSERT 해야 한다.
(new)firstBookTitle : 장바구니 API의 주문 예상 목록 조회 시, 도서의 제목도 같이 보내주고 있는것을 이용하여 주문 결제 시, 맨 첫번째 도서의 제목도 같이 받아오기로 설계 변경
[
{
order_id : 주문 id,
create_at : "주문 일자",
delivery : {
address : "주소",
receiver : "이름",
contact : "전화번호"
},
bookTitle : "대표 책 제목",
totalPrice : 총 결제 금액,
totalQuantity : 총 수량
},{
order_id : 주문 id,
create_at : "주문 일자",
delivery : {
address : "주소",
receiver : "이름",
contact : "전화번호"
},
bookTitle : "대표 책 제목",
totalPrice : 총 결제 금액,
totalQuantity : 총 수량
},
...
][
{
book_id : 도서 id,
bookTitle : "도서 제목",
author : "작가명",
price : 가격,
quanity : 수량
},{
book_id : 도서 id,
bookTitle : "도서 제목",
author : "작가명",
price : 가격,
quantity : 수량
},
...
]