🔗 git repository
- 판매 여부 - Boolean 으로 구현 🔗
- 판매 오픈 여부
- 체크 박스로 선택할 수 있다.
- 등록 지역 - List 와 Map 으로 구현 🔗
- 서울, 부산, 제주
- 체크 박스로 다중 선택할 수 있다.
- 상품 종류 - enum 으로 구현 🔗
- 도서, 식품, 기타
- 라디오 버튼으로 하나만 선택할 수 있다.
- 배송 방식 - Class 로 구현 🔗
- 빠른 배송
- 일반 배송
- 느린 배송
- 셀렉트 박스로 하나만 선택할 수 있다.
✏️ 상품 종류 구현 준비
- enum 타입으로 도서, 식품 , 기타를 추가해주었다.
- 괄호 안의 값은 discription 이라고 부른다.
- property 접근법으로 사용할 예정이기 때문에 Getter 가 꼭 필요하다.
- getter 가 없으면 thymeleaf 가 enum 을 조회할 때 500 에러를 발생시킨다.
package hello.itemservice.domain.item;
@Getter
public enum ItemType {
BOOK("도서"), FOOD("음식"), ETC("기타");
private final String description;
ItemType(String description) {
this.description = description;
}
}
✏️ 배송 구현 준비
- code 에 따라 어떤 배송방식을 선택했는지 확인
- displayName 은 선택된 코드에 따라서 빠른, 일반, 느린 배송인지 클라이언트에게 보여주는 용도
package hello.itemservice.domain.item;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class DeliveryCode {
private String code;
private String displayName;
}
✏️ Item 객체에 속성을 추가한다.
package hello.itemservice.domain.item;
import lombok.Data;
import java.util.List;
@Data
public class Item {
private Long id;
private String itemName;
private Integer price;
private Integer quantity;
private Boolean open;
private List<String> region;
private ItemType itemType;
private String deliveryCode;
public Item() {
}
public Item(String itemName, Integer price, Integer quantity) {
this.itemName = itemName;
this.price = price;
this.quantity = quantity;
}
}