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;              // 각 옵션별 선택 가능 값 목록
}

설명