package com.style24.persistence.domain;

import java.util.Collection;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.style24.persistence.TscBaseDomain;

import lombok.Data;

/**
 * 장바구니
 *
 * @author xodud1202
 * @since 2021.01.22
 */
@SuppressWarnings("serial")
@Data
public class Cart extends TscBaseDomain {
	// 장바구니 정보
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private int[] cartSqArr;		// 장바구니 일련번호 배열 (일시품절제외 조회)
	private int cartSq;				// 장바구니 번호
	private int notCartSq;			// 제외 장바구니 번호
	private int cartDtlSq;			// 장바구니 상세 번호
	private int custNo;				// 고객번호
	private int planDtlSq;			// 기획전상세번호
	private int goodsQty;			// 장바구니 등록 수량
	private int ordNo;				// 주문번호
	private int ordDtlNo;			// 주문상세번호
	private int ordQty;				// 주문수량
	private String cartGb;			// 장바구니 구분 (공통코드G026)
	private String goodsCd;			// 상품번호
	private String productNo;		// ProductNo(WMS)
	private String productCode;		// ProductCode(WMS)
	private String jsessionId;		// JSESSIONID
	private String afLinkCd;		// 제휴링크코드
	private String ithrCd;			// 유입경로(공통코드 G027)
	private String contentsLoc;		// 컨텐츠위치(공통코드G028)
	private String dealGoodsCd;		// 딜상품코드
	private String cartOptCd2;		// 장바구니 사이즈 옵션
	private String cartOptCd1;		// 장바구니 컬러 옵션
	private String cartOptCd;		// 장바구니 옵션
	private String cartColorNm;		// 장바구니 컬러명

	// 장바구니 상세 정보
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private int[] cartDtlSqArr;		// 장바구니 일련번호 배열 (일시품절제외 조회)
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] optCds;		// 옵션코드
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] itemCds;		// 장바구니 단품코드
	private String itemCd;			// 단품코드(상품). 일반상품과 딜상품은 상품코드와 동일
	private String optCd;			// 옵션코드
	private String optCd1;			// 옵션코드1
	private String optCd2;			// 옵션코드2
	private String skuModelNo;		// SKUModelNo(WMS)
	private int itemQty;			// 장바구니 등록된 상품의 기준재고

	// 상품 정보
	private int currStockQty;		// 기준 재고
	private int qty;				// 구성 상품 기준 재고 수량
	private int currPrice;			// 상품판매가
	private int minOrdQty;			// 최소주문가능수량
	private int maxOrdQty;			// 최대주문가능수량
	private int addPrice;			// 상품 옵션가
	private String goodsType;		// 상품 타입
	private String compsGoodsCd;	// 세트 구성상품 코드
	private String itemCdSql;		// 상품 조회 쿼리문
	private String selfGoodsYn;		// 자사상품여부
	private String mainColorCd;		// 상품 메인 컬러
	private String brandEnm;		// 브랜드 영문명
	private String brandKnm;		// 브랜드 국문명
	private String goodsNm;			// 상품명
	private String sysImgNm;		// 이미지명
	private String colorNm;			// 컬러명
	private String imgPath;			// 상품 이미지 경로
	private String soldoutYn;		// 옵션
	private String frontGb;			// 접속 디바이스 정보
	private String goodsStat;		// 상품상태

	// 장바구니 상품 정보 리스트
	Collection<Cart> cartCompsList;		// 장바구니 상품 구성 상품리스트
	Collection<Cart> cartColorList;		// 장바구니 상품 컬러리스트
	Collection<Cart> cartSizeList;		// 장바구니 상품 사이즈리스트
	Collection<GoodsImg> cartImgList;	// 장바구니 상품 이미지 리스트

	// 시리얼쿠폰 정보
	private String cpnNm;
	private String rdCpnNm;
	private String usedDt;

	private String itemOpts;	// 단품옵션
	private Integer updCartSq;	// 업데이트할 장바구니번호
	private Integer delCartSq;	// 삭제할 장바구니번호(0이면 삭제할 장바구니번호 없음)
	private int colorNo;		// 컬러 번호

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private Cart[] cartGoodsList;		// 장바구니 단품코드
	
	private String checkGb; 		// 2021.04.13 jsh77b 추가 장바구니화면 체크 C, 주문서화면 체크 O
}
