package com.style24.persistence.domain;

import java.util.Collection;

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

import lombok.Data;

/**
 * 카드프로모션 Domain
 *
 * @author eskim
 * @since 2021. 01. 29
 */
@SuppressWarnings("serial")
@Data
public class CardPromotion extends TscBaseDomain {

	private Integer cardPrmtSq;	// 카드프로모션일련번호
	private String prmtNm;	// 프로모션명
	private String prmtStd;	// 프로모션시작일
	private String prmtEdd;	// 프로모션종료일
	private String prmtGb;	// 프로모션구분(A:할인, B:무이자)
	private String dcGb;	// 행사구분(프로모션구분이 A:할인인 경우 1:즉시할인,2:청구할인,3:제휴카드)
	private String linkUrl;	// 연결URL
	private String note;	// 안내
	private String dispYn;	// 표시여부

	// 검색조건
	private String stDate;
	private String edDate;
	private String search; // 키워드 종류
	private String condition; // 키워드 종류별 값
	private String beforSkipFlag;

	//무이자 저장용
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] arrMinPayAmt;	// 최소결제금액

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] arrMinNoItrt;	// 최소무이자월수(프로모션구분이 B:무이자 인경우)

	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] arrMaxNoItrt;	// 최대무이자월수(프로모션구분이 B:무이자 인경우)

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

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

	// 카드프로모션 목록 조회/저장용
	private int minPayAmt;	// 최소결제금액
	private String dcWay;	// 할인구분할인방식(공통코드G240, 프로모션구분이 A:할인인 경우)
	private int dcVal;	// 할인값(프로모션구분이 A:할인인 경우, 할인방식이 금액이면 할인금액, 율이면 할인율)
	private String dcValNm;
	private int maxDcAmt;	// 최대할인금액(프로모션구분이 A:할인인 경우)
	private String minNoItrt;	// 최소무이자월수(프로모션구분이 B:무이자 인경우)
	private String maxNoItrt;	// 최대무이자월수(프로모션구분이 B:무이자 인경우)


	// 삭제할 프로모션조건
	private String delCardPrmtCdtSq;	// 형식 /8/9

	// 삭제(비노출)할 프로모션
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] arrCardPrmtSq;

	// 화면 조회용
	Collection<CardPromotionCondition> cardPrmtCdtList;


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