ProductDTO (상품 데이터 전송 객체)
package kr.co.lotteon.dto.product;
import kr.co.lotteon.dto.category.SubCategoryDTO;
import kr.co.lotteon.dto.seller.SellerDTO;
import lombok.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@Getter
@Setter
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class ProductDTO implements Serializable {
private String prodNo; // 상품 고유 번호
// 카테고리·판매자 정보
private String mainCategoryName; // 1차 카테고리명
private int subCateNo; // 2차 카테고리 번호
private String company; // 판매자 회사명
private String rank; // 판매자 등급
// 썸네일 (리스트) 용 이미지 파일명
private String sNameList;
private String sNameThumb3;
// 기본 상품 정보
private String prodName; // 상품명
private String prodBrand; // 브랜드
private int prodPrice; // 원가
private int prodPoint; // 기본 적립 포인트
private int prodStock; // 재고 수량
private int prodSold; // 판매량
private int prodDiscount; // 할인율(%)
private int prodDeliveryFee; // 배송비
private String prodContent; // 상품 설명
private String state; // 상품 상태 (판매/중단)
private LocalDateTime regDate; // 등록일
private int hit; // 조회수
// 리뷰 관련
private double ratingTotal; // 리뷰 총합 점수
private int reviewCount; // 리뷰 개수
private double ratingAvg; // 평균 평점
// 연관 DTO
private SellerDTO seller; // 판매자 정보 DTO
private SubCategoryDTO subCategory; // 서브 카테고리 DTO
private ProductImageDTO productImage; // 이미지 DTO
private ProductDetailDTO productDetail; // 상세 정보 DTO
// 옵션 (최대 6개) 관련
private String[] option; // 옵션명 배열 (opt1 ~ opt6)
private String[][] options; // 각 옵션별 선택 가능 값 목록
}
설명
- 식별 정보
- 카테고리·판매자
mainCategoryName, subCateNo: 상위/하위 카테고리
company, rank: 판매자 회사명·등급
- 이미지 (썸네일)
sNameList, sNameThumb3: 목록 및 작은 썸네일 파일명
- 상품 속성
prodName, prodBrand, prodPrice, prodDiscount, prodDeliveryFee, prodStock, prodSold, prodContent, state
- 리뷰 정보
ratingTotal, reviewCount, ratingAvg
- 등록/조회
- 연관 DTO
SellerDTO seller, SubCategoryDTO subCategory, ProductImageDTO productImage, ProductDetailDTO productDetail
- 옵션
option: 옵션명(최대 6개)
options: 각 옵션별 선택 가능 값 배열