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.Collection;
import java.util.List;

/**
 * 품목 Domain
 *
 * @author bin2107
 * @since 2020. 12. 28
 */
@SuppressWarnings("serial")
@Data
public class MoreBetter extends TscBaseDomain {
	// 다다익선 마스터
	private Integer tmtbSq;				// 프로모션ID
	private String tmtbNm;			// 프로모션명
	private String tmtbStat;		// 프로모션 상태
	private String tmtbStdt;		// 프로모션 시작일
	private String tmtbEddt;		// 프로모션 종료일
	private String applyGb;			// 적용구분값 (G810_10|수량, G810_11|금액)
	private String multiYn;			// 복수,단수설정
	private String delYn;			// 삭제여부
	private String searchGubun;		// 프로모션 조회 검색 구분
	private String searchTxt;		// 프로모션 검색 조건
	private String gbn;				// 팝업 구분 : C=등록, U=수정

	// 공급업체
	private String supplyCompCd;
	private String supplyCompNm;
	private String targetGb;

	// 브랜드
	private String brandCd;
	private String brandEnm;

	// 상품

	// 다다익선 할인구간설정 2차조건(TB_TMTB_SECTION)
	private int tmtbSectionSq;		// 다다익선 할인구간 시퀀스
	private String sectionGb;		// 구간설정 구분값(G810_10:수량,G810_11:금액)
	private int sectionVal;		// 구간설정값, 구간할인시작(수량이상, 금액이상)

	// 다다익선 조건에 따른 할인혜택(금액할인)(TB_TMTB_VAL)
	private int tmtbValSq;			// 다다익선 할인값 시퀀스
	private String dcWay;			// 할인방식(G240_10:할인금액,G240_11:할인율)
	private int dcVal;				// 할인값

	// 다다익선 업체분담율(TB_TMTB_BURDEN)
	private int tmtbBurdenSq;		// 업체분담율Sq
	private String tmtbSupplyCd;	// 업체코드
	private String tmtbBurdenRate;	// 업체분담율
	//private String burdenRate;	// 업체분담율
	private String useYn;			// 사용여부

	List<MoreBetterGoods> supplyCompList;
	List<MoreBetterGoods> brandList;
	List<MoreBetterGoods> applyGoodsList;
	List<MoreBetterGoods> gridApplyGoodsList;
	List<MoreBetterGoods> exceptGoodsList;
	List<MoreBetterBurden> burdenList;
	List<MoreBetterSection> sectionGbList;

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] multiSupplyCompCd;

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] multiBrand;

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] multiApplyGoods;

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] multiExceptGoods;

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] multiDuplicateGoods;

	// 날짜+시간
	private String eventStdt;				// 다다익선시작일시
	private String eventStHH;				// 다다익선시작일시
	private String eventStMM;				// 다다익선시작일시
	private String eventEddt;				// 다다익선종료일시
	private String eventEdHH;				// 다다익선종료일시
	private String eventEdMM;				// 다다익선종료일시

	private String multiGb;
	private String compSql;		// 공급업체, 브랜드 쿼리문
	private String applySql;	// 적용 상품 쿼리문
	private String exceptSql;	// 적용 상품 쿼리문

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