package com.style24.persistence.domain;

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 Goods extends TscBaseDomain {
	// 상품 정보
	private String goodsCd;		//상품코드
	private String brandCd;		//브랜드코드
	private String itemkindCd;		//품목코드
	private String goodsNm;		//상품명
	private String goodsFullNm;		// 상품FULL명
	private String goodsTnm;		//상품타이틀명
	private String goodsSnm;		//상품검색명
	private String goodsSnm1;		//상품검색명1(사용자등록용)
	private String mainColorCd;		//대표색상코드
	private String styleYear;		//스타일연도
	private String seasonCd;		//시즌코드(공통코드G006)
	private String sexGb;		//성별구분(공통코드G007)
	private String goodsNum;		//품번(자사상품만 사용)
	private String goodsType;		//상품타입(공통코드G056)
	private int listPrice;		//정상가(최초판매가)
	private int currPrice;		//현재판매가
	private int price;			// 금액
	private String priceUpdDt;		//가격변경일시
	private float dcRate;		//할인율
	private int pntAmt;				// 적립금
	private int benefitCurrPrice;		//즉시할인판매가
	private String goodsStat;		//상품상태(공통코드G008)
	private String selfMallYn;		//자사몰노출여부
	private String goodsGb;		//해외구매대행/병행수입 상품일 경우 주문 시 통관부호 입력 란이 추가되어야 한다
	private String distributionGb;		//유통구분(공콩코드 G065)
	private String selfGoodsYn;		//자사상품여부
	private String supplyCompCd;		//공급업체코드
	private String supplyGoodsCd;		//공급업체상품코드(원코드)
	private String ageGrpCd;		//상품연령대(공통코드 G023)
	private String delvFeeCd;	//배송비정책코드
	private int delvFee;		//배송비
	private int rtnDelvFee;		//반품배송비
	private int minOrdAmt;		//무료배송비최소구매금액
	private float pntPrate;		//포인트적립율(PC)
	private float pntMrate;		//포인트적립율(모바일)
	private float sellFeeRate;		//판매수수료율
	private String formalGb;		//정상이월구분(공통코드G009)
	private String changeableYn;		//교환가능여부
	private String returnableYn;		//반품가능여부
	private String changeFeeFreeYn;		//교환배송비무료여부
	private String returnFeeFreeYn;		//반품배송비무료여부
	private String prePpntUsableYn;		//선포인트사용가능여부(PC)
	private String preMpntUsableYn;		//선포인트사용가능여부(모바일)
	private int minOrdQty;		//최소주문수량
	private int maxOrdQty;		//최대주문수량
	private int dayMaxOrdQty;		//ID당1일최대구매수량
	private String giftPackYn;		//선물포장여부
	private String frstCfrmDt;		//최초승인일시
	private String originCd;		//제조국(원산지)
	private String makeYmd;		//제조연월일
	private String taxGb;		//과세구분(10:과세, 20:비과세)
	private String erpPriceLinkYn;		//ERP가격연계여부(자사상품만 사용. Y:연계)
	private String erpStockLinkYn;		//ERP재고연계여부(자사상품만 사용. Y:연계)
	private String newCustOrdYn;		//신규고객 구매가능여부(Y:신규고객만 구매가능)
	private String newCustCanYn;		//신규고객 구매가능여부
	private int costPrice;		//원가
	private String adultYn;		//성인용품여부
	private String tobeFormYn;	//상품상세신규폼사용여부
	private String sellStdt;		//판매시작일
	private String sellEddt;		//판매종료일
	private String colorCd;		//색상코드
	private String colorNm;		//색상코드명
	private String brandNm;		//브랜드명
	private Integer brandGroupNo;	//브랜드그룹번호
	private String brandGroupNm;	//브랜드그룹명
	private String goodsGbNm;		//상품구분명
	private String originNm;		//제조국 명
	private String frontGb;		//프론트구분
	private String isApp;		//앱구분
	private String siteCd;		//사이트코드
	private String cateGb;		//카테구분
	private String afLinkCd;	//제휴링크코드
	private String ithrCd;		//위치코드
	private String contentsLoc;	//컨텐츠위치
	private float pntRate;		//적립율
	private String prePntUsableYn;	//적립율즉시사용여부
	private String niClsfCd;	//고시분류코드
	private String brandTcateNo;	//브랜드카테1번호
	private String adminYn;		//어드민조회여부
	private String preview;		//미리보기여부
	private String viewDt;		//미리보기일시
	private String custGb;		//고객구분
	private String custGrade;	//고객등급
	private Integer custNo;		//고객번호
	private String soldoutGoodsDisplayYn = "N";	//품절노추여부
	private int pointUnit = 1;	//포인트단위
	private String goodsNmFull;	//상품타이틀+ 상품명
	private String sysImgNm;	//상품대표이미지
	private String sysImgNm2;	//상품마우스오버이미지
	private String logoFileNm;	//브랜드로고이미지
	private int stockQty;		//재고
	private int stockQtySum;		//재고
	private int goodsStockQty;		//상품전시재고
	private String soldoutYn;	//품절여부
	private String wishYn;		//위시리스트여부
	private String goodsComposeSearchYn;	//구성상품 조회여부
	private String goodsCdIncludeYn;	//상품코드포함 여부
	private Integer socialSq;	//소셜번호
//	private String socialTypeNm;	//소셜타입명
	private String socialType;	//소셜타입
	private String socialTnm;	//소셜명
	private String socialStdt;	//소셜시작일
	private String socialEddt;	//소셜종료일
	private String planDtlSq;	//기획전상세번호
	private String quikDelvYn;	//총알배송여부
	private String delvFeeCrite;	//배송비부과기준(공통코드G078)
	private int reviewRegCnt;	//상품평등록건수
	private float score;		//상품 구매평점
	private int scoreSize1;
	private int scoreSize2;
	private int scoreSize3;
	private String scoreSize;
	private int scoreColor1;
	private int scoreColor2;
	private int scoreColor3;
	private String scoreColor;
	private int scoreFit1;
	private int scoreFit2;
	private int scoreFit3;
	private String scoreFit;
	private int scoreThick1;
	private int scoreThick2;
	private int scoreThick3;
	private String scoreThick;
	private int scoreWeight1;
	private int scoreWeight2;
	private int scoreWeight3;
	private String scoreWeight;
	private int scoreBall1;
	private int scoreBall2;
	private int scoreBall3;
	private String scoreBall;
	private String reviewContent;
	private String admRplDt;
	private String admRpl;
	private int height;				// 키
	private int weight;				// 몸무게
	private Integer reviewSq;
	private String goodsStatNm;
	private String regDtMonth;

	private int goodsQnaCnt;	// 상품문의건수

	private String sizeGb;		// 사이즈구분(T:상의, B:하의, S:신발)
	private String optionSoldoutSkip; 	//품절제외 Y, N
	private int floorUnit; // 절사단위(1:일원단위절사, 10:십원단위절사, 100:백원단위절사)
	private Integer cpnId;			// 쿠폰ID
	private String cpnAllDownYn;		// 쿠폰모두받기

	private String skuModelNo;		// SKUModelNo(WMS)
	private String compsGoodsCd;	// 세트 구성품 상품번호
	private String mastrGoodsCd;
	private String optCd;			// 옵션코드
	private String optCd1;			// 옵션코드1
	private String optCd2;			// 옵션코드2
	private String optCd1Nm;
	private int qty;				// 세트 상품 구성 수량
	private String itemCd;			// 단품코드
	private String itemNm;			// 단품명
	private String itemStockQty;	// 단품 재고 수량(1,2,1,0)

	private String mobileYn;
	private String delvResDt;		// 예약판매 출고예정일
	private int maxRownum;			// 조회건수

	private String payDt;			// 구매일	
	private String remainDt;		// 리뷰 남아있는시간
	private String brandEnm;
	private String brandKnm;
	private String itemPrices;		// 구성상품 금액 모음
	private Integer ordNo;			// 주문번호
	private Integer ordDtlNo;		// 주문상세번호
	private Integer rnum;

	//상품상세 구분(10:상품타이틀,20:상품타이틀내용,30:상품특징,40:상위컨텐츠,50:하위컨텐츠,60:상위컨텐츠-모바일,70:하위컨텐츠-모바일,80:상품상세(as-is,입점))
	private String goodsTitle; 			// 10:상품타이틀
	private String goodsTitleDesc;		// 20:상품타이틀내용
	private String goodsSpecialDesc;	// 30:상품특징
	private String goodsTopDesc;		// 40:상위컨텐츠, 60:상위컨텐츠-모바일
	private String goodsDownDesc;		// 50:하위컨텐츠, 70:하위컨텐츠-모바일
	private String goodsDesc;			// 80:상품상세(as-is,입점)

	private String goodsOtherGb;		// tmtb:다다익선상품, together:함께본상품  recommmend:추천상품  like: 비슷한상품

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private int[] arrCpnId;				// 쿠폰

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] arrGoodsCd;		// 상품코드

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private Integer[] arrTmtbSq;		// 다다익선 번호

	private String goodsSql;		// 오늘본상품SQL

	private String likeIt;			// 위시리스트에담긴상품
	private String videoVal;
	private String colorChips;
	private String sizes;
	private String icon;
	private String benefits;
	private String videos;			// 동영상들(,로 연결된 문자열. 동영상구분:미디어컨텐츠 또는 유튜브동영상ID, ...)
	private int tmtbSq;

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] sizeArr;		// 상품사이즈
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] colorArr;		// 상품컬러
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] benefitArr;		// 상품혜택

	private String sql;

	private String keyword;		// 검색엔진 로그.
	private String searchId;	// 검색엔진 로그.
	private String itemUrl;	// 추천솔루션 상품URL

}
