package cokr.xit.fims.epst;

import cokr.xit.fims.cmmn.CmmnQuery;

/**발송 대장 정보 조회 요청
 *
 * <p>상세 설명:
 *
 * <pre>
 * ============ 변경 이력 ============
 * 2023-08-24	JoJH 최초 작성
 * ================================
 * </pre>
 */
public class EpostQuery extends CmmnQuery {

	private static final long serialVersionUID = 1L;

	// ID
	private String[] crdnIds;			// 단속 Ids
	private String crdnId;				// 단속 Id
	private String[] sndngIds;			// 발송 Ids
	private String sndngId;				// 발송 Id
	private String[] sndngDtlIds;		// 발송 상세 Ids
	private String sndngDtlId;			// 발송 상세 Id
	private String[] svbtcIds;			// 공시송달 Ids
	private String svbtcId;				// 공시송달 Id
	private String[] gdntcIds;			// 안내문 Ids
	private String gdntcId;				// 안내문 Id
	private String[] rcptRsltIds;		// 접수 결과 Ids
	private String rcptRsltId;			// 접수 결과 Id
	private String conKey;				// 외부연계식별키
	private String regino;				// 등기번호

	// 검색 조건
	private String schLevyExclYmdFrom;	// 부과제외_부과제외 일자 시작
	private String schLevyExclYmdTo;	// 부과제외_부과제외 일자 종료
	private String schLevyExclSeCd;		// 부과제외_부과제외 구분 코드
	private String schVhrno;			// 단속(TB_CRDN)_차량번호
	private String schCrdnYmdFrom;		// 단속(TB_CRDN)_단속 일자 시작
	private String schCrdnYmdTo;		// 단속(TB_CRDN)_단속 일자 종료
	private String schRtpyrNm;			// 납부자(TB_PAYER)_납부자 명
	private String schSndngYmdFrom;		// 발송 대장(TB_SNDNG)_발송 일자 시작
	private String schSndngYmdTo;		// 발송 대장(TB_SNDNG)_발송 일자 종료
	private String schSendDateFrom;		// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_전송 일자 시작
	private String schSendDateTo;		// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_전송 일자 종료
	private String schRceptYmdFrom;		// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_접수 일자 시작
	private String schRceptYmdTo;		// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_접수 일자 종료
	private String schExtriRegymdFrom;	// 전자우편 접수 결과(TB_EPOST_RCPT_RSLT)_기관발송일자 시작
	private String schExtriRegymdTo;	// 전자우편 접수 결과(TB_EPOST_RCPT_RSLT)_기관발송일자 종료
	private String schSndngSeCd;		// 발송 구분 코드
	// 상세 검색 조건

	// 동적 검색 조건
	private String vhrno;				// 단속(TB_CRDN)_차량번호
	private String rtpyrNm;				// 납부자(TB_PAYER)_납부자 명
	private String crdnSttsCd;			// 단속(TB_CRDN)_단속 상태 코드
	private String sndngSeCd;			// 발송 구분 코드
	private String relorsectCd;			// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_연계기관결제부서코드
	private String postPrcsSttsCdFrom;	// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_우편 처리 상태 코드 시작
	private String postPrcsSttsCdTo;	// 전자우편 접수 등록(TB_EPOST_RCPT_REG)_우편 처리 상태 코드 종료
	private String ttlNm;				// 전자우편 안내문(TB_EPOST_GDNTC)_제목 명
	private String conOrg;				// 전자우편 접수 결과(TB_EPOST_RCPT_RSLT)_외부기관구분코드
	private String reletcdata;			// 전자우편 접수 결과(TB_EPOST_RCPT_RSLT)_발송인별추가데이터
	// ETC
	private String callPurpose;			// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
	private String delRsn;				// 삭제 사유
	private String crdnDelYn;			// 단속 삭제 여부

	public String[] getCrdnIds() {
		return ifEmpty(crdnIds, () -> null);
	}

	public <T extends EpostQuery> T setCrdnIds(String... crdnIds) {
		this.crdnIds = crdnIds;
		return self();
	}

	public String getCrdnId() {
		return ifEmpty(crdnId, () -> null);
	}

	public <T extends EpostQuery> T setCrdnId(String crdnId) {
		this.crdnId = crdnId;
		return self();
	}

	public String[] getSndngIds() {
		return ifEmpty(sndngIds, () -> null);
	}

	public <T extends EpostQuery> T setSndngIds(String... sndngIds) {
		this.sndngIds = sndngIds;
		return self();
	}

	public String getSndngId() {
		return ifEmpty(sndngId, () -> null);
	}

	public <T extends EpostQuery> T setSndngId(String sndngId) {
		this.sndngId = sndngId;
		return self();
	}

	public String[]  getSndngDtlIds() {
		return ifEmpty(sndngDtlIds, () -> null);
	}

	public <T extends EpostQuery> T setSndngDtlIds(String... sndngDtlIds) {
		this.sndngDtlIds = sndngDtlIds;
		return self();
	}

	public String getSndngDtlId() {
		return ifEmpty(sndngDtlId, () -> null);
	}

	public <T extends EpostQuery> T setSndngDtlId(String sndngDtlId) {
		this.sndngDtlId = sndngDtlId;
		return self();
	}

	public String[]  getSvbtcIds() {
		return ifEmpty(svbtcIds, () -> null);
	}

	public <T extends EpostQuery> T setSvbtcIds(String... svbtcIds) {
		this.svbtcIds = svbtcIds;
		return self();
	}

	public String getSvbtcId() {
		return ifEmpty(svbtcId, () -> null);
	}

	public <T extends EpostQuery> T setSvbtcId(String svbtcId) {
		this.svbtcId = svbtcId;
		return self();
	}

	public String[]  getGdntcIds() {
		return ifEmpty(gdntcIds, () -> null);
	}

	public <T extends EpostQuery> T setGdntcIds(String... gdntcIds) {
		this.gdntcIds = gdntcIds;
		return self();
	}

	public String getGdntcId() {
		return ifEmpty(gdntcId, () -> null);
	}

	public <T extends EpostQuery> T setGdntcId(String gdntcId) {
		this.gdntcId = gdntcId;
		return self();
	}

	public String[]  getRcptRsltIds() {
		return ifEmpty(rcptRsltIds, () -> null);
	}

	public <T extends EpostQuery> T setRcptRsltIds(String... rcptRsltIds) {
		this.rcptRsltIds = rcptRsltIds;
		return self();
	}

	public String getRcptRsltId() {
		return ifEmpty(rcptRsltId, () -> null);
	}

	public <T extends EpostQuery> T setRcptRsltId(String rcptRsltId) {
		this.rcptRsltId = rcptRsltId;
		return self();
	}

	public String getConKey() {
		return ifEmpty(conKey, () -> null);
	}

	public <T extends EpostQuery> T setConKey(String conKey) {
		this.conKey = conKey;
		return self();
	}

	public String getRegino() {
		return ifEmpty(regino, () -> null);
	}

	public <T extends EpostQuery> T setRegino(String regino) {
		this.regino = regino;
		return self();
	}

	// 검색 조건 //////////////////////////////////////////////////////////////////
	public String getSchLevyExclYmdFrom() {
		return ifEmpty(schLevyExclYmdFrom, () -> null);
	}

	public <T extends EpostQuery> T setSchLevyExclYmdFrom(String schLevyExclYmdFrom) {
		this.schLevyExclYmdFrom = schLevyExclYmdFrom;
		return self();
	}

	public String getSchLevyExclYmdTo() {
		return ifEmpty(schLevyExclYmdTo, () -> null);
	}

	public <T extends EpostQuery> T setSchLevyExclYmdTo(String schLevyExclYmdTo) {
		this.schLevyExclYmdTo = schLevyExclYmdTo;
		return self();
	}

	public String getSchLevyExclSeCd() {
		return ifEmpty(schLevyExclSeCd, () -> null);
	}

	public <T extends EpostQuery> T setSchLevyExclSeCd(String schLevyExclSeCd) {
		this.schLevyExclSeCd = schLevyExclSeCd;
		return self();
	}

	public String getSchVhrno() {
		return ifEmpty(schVhrno, () -> null);
	}

	public <T extends EpostQuery> T setSchVhrno(String schVhrno) {
		this.schVhrno = schVhrno;

		return self();
	}

	public String getSchCrdnYmdFrom() {
		return ifEmpty(schCrdnYmdFrom, () -> null);
	}

	public <T extends EpostQuery> T setSchCrdnYmdFrom(String schCrdnYmdFrom) {
		this.schCrdnYmdFrom = schCrdnYmdFrom;
		return self();
	}

	public String getSchCrdnYmdTo() {
		return ifEmpty(schCrdnYmdTo, () -> null);
	}

	public <T extends EpostQuery> T setSchCrdnYmdTo(String schCrdnYmdTo) {
		this.schCrdnYmdTo = schCrdnYmdTo;

		return self();
	}

	public String getSchRtpyrNm() {
		return ifEmpty(schRtpyrNm, () -> null);
	}

	public <T extends EpostQuery> T setSchRtpyrNm(String schRtpyrNm) {
		this.schRtpyrNm = schRtpyrNm;
		return self();
	}

	public String getSchSndngYmdFrom() {
		return ifEmpty(schSndngYmdFrom, () -> null);
	}

	public <T extends EpostQuery> T setSchSndngYmdFrom(String schSndngYmdFrom) {
		this.schSndngYmdFrom = schSndngYmdFrom;
		return self();
	}

	public String getSchSndngYmdTo() {
		return ifEmpty(schSndngYmdTo, () -> null);
	}

	public <T extends EpostQuery> T setSchSndngYmdTo(String schSndngYmdTo) {
		this.schSndngYmdTo = schSndngYmdTo;
		return self();
	}

	public String getSchSendDateFrom() {
		return ifEmpty(schSendDateFrom, () -> null);
	}

	public <T extends EpostQuery> T setSchSendDateFrom(String schSendDateFrom) {
		this.schSendDateFrom = schSendDateFrom;
		return self();
	}

	public String getSchSendDateTo() {
		return ifEmpty(schSendDateTo, () -> null);
	}

	public <T extends EpostQuery> T setSchSendDateTo(String schSendDateTo) {
		this.schSendDateTo = schSendDateTo;
		return self();
	}

	public String getSchRceptYmdFrom() {
		return ifEmpty(schRceptYmdFrom, () -> null);
	}

	public <T extends EpostQuery> T setSchRceptYmdFrom(String schRceptYmdFrom) {
		this.schRceptYmdFrom = schRceptYmdFrom;
		return self();
	}

	public String getSchRceptYmdTo() {
		return ifEmpty(schRceptYmdTo, () -> null);
	}

	public <T extends EpostQuery> T setSchRceptYmdTo(String schRceptYmdTo) {
		this.schRceptYmdTo = schRceptYmdTo;
		return self();
	}

	public String getSchExtriRegymdFrom() {
		return ifEmpty(schExtriRegymdFrom, () -> null);
	}

	public <T extends EpostQuery> T setSchExtriRegymdFrom(String schExtriRegymdFrom) {
		this.schExtriRegymdFrom = schExtriRegymdFrom;
		return self();
	}

	public String getSchExtriRegymdTo() {
		return ifEmpty(schExtriRegymdTo, () -> null);
	}

	public <T extends EpostQuery> T setSchExtriRegymdTo(String schExtriRegymdTo) {
		this.schExtriRegymdTo = schExtriRegymdTo;
		return self();
	}

	public String getSchSndngSeCd() {
		return ifEmpty(schSndngSeCd, () -> null);
	}

	public <T extends EpostQuery> T setSchSndngSeCd(String schSndngSeCd) {
		this.schSndngSeCd = schSndngSeCd;
		return self();
	}
	// 검색 조건 //////////////////////////////////////////////////////////////////

	// 상세 검색 조건 ///////////////////////////////////////////////////////////////

	// 상세 검색 조건 ///////////////////////////////////////////////////////////////

	// 동적 검색 조건 ///////////////////////////////////////////////////////////////
	public String getVhrno() {
		return ifEmpty(vhrno, () -> null);
	}

	public <T extends EpostQuery> T setVhrno(String vhrno) {
		this.vhrno = vhrno;
		return self();
	}

	public String getRtpyrNm() {
		return ifEmpty(rtpyrNm, () -> null);
	}

	public <T extends EpostQuery> T setRtpyrNm(String rtpyrNm) {
		this.rtpyrNm = rtpyrNm;
		return self();
	}

	public String getCrdnSttsCd() {
		return ifEmpty(crdnSttsCd, () -> null);
	}

	public <T extends EpostQuery> T setCrdnSttsCd(String crdnSttsCd) {
		this.crdnSttsCd = crdnSttsCd;
		return self();
	}

	public String getSndngSeCd() {
		return ifEmpty(sndngSeCd, () -> null);
	}

	public <T extends EpostQuery> T setSndngSeCd(String sndngSeCd) {
		this.sndngSeCd = sndngSeCd;
		return self();
	}

	public String getRelorsectCd() {
		return ifEmpty(relorsectCd, () -> null);
	}

	public <T extends EpostQuery> T setRelorsectCd(String relorsectCd) {
		this.relorsectCd = relorsectCd;
		return self();
	}

	public String getPostPrcsSttsCdFrom() {
		return ifEmpty(postPrcsSttsCdFrom, () -> null);
	}

	public <T extends EpostQuery> T setPostPrcsSttsCdFrom(String postPrcsSttsCdFrom) {
		this.postPrcsSttsCdFrom = postPrcsSttsCdFrom;
		return self();
	}

	public String getPostPrcsSttsCdTo() {
		return ifEmpty(postPrcsSttsCdTo, () -> null);
	}

	public <T extends EpostQuery> T setPostPrcsSttsCdTo(String postPrcsSttsCdTo) {
		this.postPrcsSttsCdTo = postPrcsSttsCdTo;
		return self();
	}

	public String getTtlNm() {
		return ifEmpty(ttlNm, () -> null);
	}

	public <T extends EpostQuery> T setTtlNm(String ttlNm) {
		this.ttlNm = ttlNm;
		return self();
	}

	public String getConOrg() {
		return ifEmpty(conOrg, () -> null);
	}

	public <T extends EpostQuery> T setConOrg(String conOrg) {
		this.conOrg = conOrg;
		return self();
	}

	public String getReletcdata() {
		return ifEmpty(reletcdata, () -> null);
	}

	public <T extends EpostQuery> T setReletcdata(String reletcdata) {
		this.reletcdata = reletcdata;
		return self();
	}

	// 동적 검색 조건 ///////////////////////////////////////////////////////////////

	// ETC /////////////////////////////////////////////////////////////////////
	public String getCallPurpose() {
		return ifEmpty(callPurpose, () -> null);
	}

	public <T extends EpostQuery> T setCallPurpose(String callPurpose) {
		this.callPurpose = callPurpose;
		return self();
	}

	public String getDelRsn() {
		return ifEmpty(delRsn, () -> null);
	}

	public <T extends EpostQuery> T setDelRsn(String delRsn) {
		this.delRsn = delRsn;
		return self();
	}

	public String getCrdnDelYn() {
		return ifEmpty(crdnDelYn, () -> null);
	}

	public <T extends EpostQuery> T setCrdnDelYn(String crdnDelYn) {
		this.crdnDelYn = crdnDelYn;
		return self();
	}
	// ETC /////////////////////////////////////////////////////////////////////

}
