package com.style24.persistence.domain;

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

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


/**
 * 품목 Domain
 *
 * @author bin2107
 * @since 2021. 1.
 */
@SuppressWarnings("serial")
@Data
public class MoreBetterGoods extends TscBaseDomain {
	// 다다익선 적용대상
	private Integer tmtbGoodsSq;		// 다다익선 적용대상 시퀀스
	private Integer tmtbApplyGoodsSq;		// 다다익선 실제적용대상 시퀀스
	private Integer tmtbSq;				// 프로모션Sq
	private String goodsGb;			// 공통코드 (G800_10|기본상품, G800_20|적용상품, G800_30|제외상품, G800_40|ALL)
	private String targetGb;		// 적용대상 (G260_10|상품, G260_12|브랜드, G260_13|공급처)
	private String targetVal;		// 브랜드코드, 상품코드, 공급처코드
	private String delYn;			// 삭제여부
	private String supplyCompCd;
	private String supplyCompNm;
	private String brandCd;
	private String brandEnm;
	private String goodsCd;
	private String goodsNm;

	private String sectionGb;		// 구간설정 구분값(G810_10:수량,G810_11:금액)
	private String applySql;	// 적용 상품 쿼리문
	private String exceptSql;	// 적용 상품 쿼리문
	private String applyGbSql;	// 적용 상품&구분 쿼리문

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

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

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

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

	// 다다 중복 상품 조회시 사용
	@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;

	List<MoreBetterGoods> applyGoodsList;
	List<MoreBetterGoods> gridApplyGoodsList;

}
