package com.style24.persistence.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.style24.persistence.TscBaseDomain;
import com.style24.persistence.TscPageRequest;
import lombok.Data;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * 품목 Domain
 *
 * @author gagamel
 * @since 2020. 10. 7
 */
@SuppressWarnings("serial")
@Data
public class FreeGoodsPromotion extends TscBaseDomain {
	// 사은품 프로모션
	private int freegiftSq;				// 프로모션ID
	private String freegiftNm;			// 프로모션명
	private String freegiftStat;		// 프로모션 상태
	private String freegiftStdt;		// 프로모션 시작일
	private String freegiftEddt;		// 프로모션 종료일
	private String selfYn;				// 자사몰 적용 여부
	private String allYn;				// 모두 지급 구분 (모두지급 일때는 포인트 금액을 설정 할 수 없음 Y(모두지급), N(선택사은품))
	private String freegiftStatNm;		// 프로모션 상태명

	// 사은품 프로모션 섹션정보
	private int freegiftSectionSq;		// 사은품 지급 조건 section 번호
	private int sectionVal;				// 사은품조건1 구매금액 조건
	private int sectionVal2;			// 사은품조건2 구매금액 조건
	private String sectionGb;			// 사은품 프로모션 구간 설정 구분값 (G810_10|수량, G810_11|금액)

	// 사은품 프로모션 제휴몰
	private int freegiftExtmallSq;		// 프로모션 제휴몰 ID
	private String extmallYn;			// 제휴몰 여부
	private String extmallId;			// 외부몰ID
	private String vendorId;			// 벤더ID
	private String extmallNm;			// 외부몰명

	// 사은품 프로모션 공급업체
	private String supplyCompCd;		// 업체코드
	private String supplyCompNm;		// 업체명

	// 사은품 프로모션 브랜드
	private String brandCd;				// 브랜드코드
	private String brandKnm;			// 브랜드국문명
	private String brandEnm;			// 브랜드국문명

	// 사은품 프로모션 적용 및 제외 상품
	private String goodsGb;				// 상품 구분 (G800_10|기본상품, G800_20|적용상품, G800_30|제외상품, G800_40|ALL)
	private String goodsCd;				// 상품 코드
	private String goodsNm;				// 상품명
	private String goodsStat;			// 상품상태
	private String targetGb;			// 적용 구분 (G260_10|상품, G260_12|브랜드, G260_13|공급처)
	private String targetVal;			// 적용 값 (브랜드코드, 상품코드, 공급처코드)
	private int listPrice;
	private int currPrice;


	// 사은품 프로모션 사은품 조건
	private int productNo;				// 사은품 번호
	private int usePoint;				// 포인트액
	private int limitQty;				// 한정수량
	private int itemQty;				// 지급수량
	private int leftQty;				// 남은 수량

	List<SupplyCompany> supplyCompList;	// 공급업체 리스트
	List<Brand> brandList;				// 브랜드 리스트
	List<Extmall> extmallList;			// 제휴몰 리스트
	List<Goods> applyGoodsList;			// 적용 상품 리스트
	List<Goods> exceptGoodsList;		// 제외 상품 리스트
	List<FreeGoodsSectionVal> freeGoods1;	// 지급 사은품 리스트1
	List<FreeGoodsSectionVal> freeGoods2;	// 지급 사은품 리스트2

	// 기타 조건
	private String promotionGubun;		// 프로모션 조회 검색 구분
	private String searchTxt;			// 프로모션 검색 조건
	private String gbn;					// 팝업 구분 : C=등록, U=수정
	private String stDate;				// 검색 기간 조건 시작일
	private String edDate;				// 검색 기간 조건 종료일

	// Pagination
	private TscPageRequest pageable;
	private int pageNo = 1;
	private int pageSize = 50;
	private int pageUnit = 10;
}
