개요
엔티티는 다음과 같이 구성된다.
Spring Security로 인증된 객체를 가져 올 수 있다 (User의 정보들)
User는 Role이 바뀔 수 있다. 이 Role이 바뀌는 신청을 하면, Promote 라는 테이블에 대기하게 되고 Admin이 승인하면 Seller로 승급한다.
- 현재 Promote 는 유저의 정보가 필요가 없다.
- 왜냐하면 Promote는 자기 자신만이, 요청하는 인증된 객체 자기 자신만이 요청할 수 있기 때문이다. @PreAuthorize로 Buyer만 신청할 수 있게 해놨으므로 인증된 유저이자 Buyer만 신청할 수 있다.
Product는 Order로 주문 될 수 있다.
- Product 테이블에 이미 올려져 있는 상품들은 List로 조회 할 수 있으며, 이 중 Buyer 가 원하는 것을 골라서 주문을 보낼 수 있어야 한다.
- 요청을 보내는 사람은 Buyer이며, Product의 리스트를 보고, 그 중 원하는 Product를 "특정" 해야 한다.
- 특정하는 방법은 ? productName으로 매칭 할 수 없다. 왜냐면 같은 이름이 다른 상품으로 존재 할 수 있기 때문이다.