package cokr.xit.fims.sndb;

import cokr.xit.fims.cmmn.CmmnQuery;

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

	private static final long serialVersionUID = 1L;

	// ID
	private String[] crdnIds;													// 단속 Ids
	private String crdnId;														// 단속 ID
	private String[] levyIds;													// 부과 Ids
	private String levyId;														// 부과 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 schLevyExclYmdFrom;											// 부과제외 일자 시작
	private String schLevyExclYmdTo;											// 부과제외 일자 종료
	private String schLevyExclSeCd;												// 부과제외 구분 코드
	private String schLevyExclRsnCd;											// 부과제외 사유 코드
	private String schVltnCd;													// 위반 코드
	private String schCrdnYmdFrom;												// 단속 일자 시작
	private String schCrdnYmdTo;												// 단속 일자 종료
	private String schVhrno;													// 차량번호
	private String schRtpyrNo;													// 납부자 번호
	private String schRtpyrNm;													// 납부자 명
	private String schSndngRegSeCd;												// 발송 등록 구분 코드
	private String schSndngSeCd;												// 발송 구분 코드
	private String schSndngYmd;													// 발송 일자
	private String schSndngYmdFrom;												// 발송 일자 시작
	private String schSndngYmdTo;												// 발송 일자 종료
	private String schRcpnNm;													// 수령인 명
	private String schDlvrYmdFrom;												// 배달 일자 시작
	private String schDlvrYmdTo;												// 배달 일자 종료
	private String schRgNo;														// 등기번호
	private String schSvbtcYmdFrom;												// 공시송달 일자 시작
	private String schSvbtcYmdTo;												// 공시송달 일자 종료
	private String schUndlvrRsnCd;												// 미배달 사유 코드
	private String schChcRgIndct;												// 선택 등기 표시
	private String schLevyYmd;													// 부과일자
	private String schFrstDudtYmd;												// 최초납기일자
	private String schFyr;														// 회계연도
	private String schLevyNoFrom;												// 부과번호 시작
	private String schLevyNoTo;													// 부과번호 종료

	// 상세 검색 조건

	// 동적 검색 조건
	private String levyExclSeCd;												// 부과 제외 구분 코드
	private String levyExclSeNm;												// 부과 제외 구분 명
	private String vltnCd;														// 위반 코드
	private String vhrno;														// 차량번호
	private String rtpyrNm;														// 납부자 명
	private String crdnSttsCd;													// 단속 상태 코드
	private String crdnSttsCdFrom;												// 단속 상태 코드 시작
	private String crdnSttsCdTo;												// 단속 상태 코드 종료
	private String sndngSeCd;													// 발송 구분 코드
	private String sndngSeCdFrom;												// 발송 구분 코드 시작
	private String sndngSeCdTo;													// 발송 구분 코드 종료
	private String sndngDtlSttsCd;												// 발송 상세 상태 코드
	private String rcpnRelNm1;
	private String rcpnRelNm2;
	private String rcpnRelNm3;
	private String rcpnRelNm4;
	private String tnocs;														// 총건수
	private String printDocNo;													// 출력 문서 번호
	private String printTtlNm;													// 출력 제목 명
	private String printSvbtcDate;												// 출력 공고 기한
	// 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 SndbQuery> T setCrdnIds(String... crdnIds) {
		this.crdnIds = crdnIds;
		return self();
	}

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

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


	public String[] getLevyIds() {
		return ifEmpty(levyIds, () -> null);
	}

	public <T extends SndbQuery> T setLevyIds(String... levyIds) {
		this.levyIds = levyIds;
		return self();
	}

	public String getLevyId() {
		return ifEmpty(levyId, () -> null);
	}

	public <T extends SndbQuery> T setLevyId(String levyId) {
		this.levyId = levyId;
		return self();
	}

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

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

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

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

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

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

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

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

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

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

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

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

	public String getSchLevyExclYmdFrom() {
		return ifEmpty(schLevyExclYmdFrom, () -> null);
	}

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

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

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

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

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

	public String getSchLevyExclRsnCd() {
		return ifEmpty(schLevyExclRsnCd, () -> null);
	}

	public <T extends SndbQuery> T setSchLevyExclRsnCd(String schLevyExclRsnCd) {
		this.schLevyExclRsnCd = schLevyExclRsnCd;
		return self();
	}

	public String getSchVltnCd() {
		return ifEmpty(schVltnCd, () -> null);
	}

	public <T extends SndbQuery> T setSchVltnCd(String schVltnCd) {
		this.schVltnCd = schVltnCd;
		return self();
	}

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

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

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

	public <T extends SndbQuery> T setSchCrdnYmdTo(String schCrdnYmdTo) {
		this.schCrdnYmdTo = schCrdnYmdTo;
		return self();
	}

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

	public <T extends SndbQuery> T setSchVhrno(String schVhrno) {
		this.schVhrno = schVhrno;
		return self();
	}

	public String getSchRtpyrNo() {
		return ifEmpty(schRtpyrNo, () -> null);
	}

	public <T extends SndbQuery> T setSchRtpyrNo(String schRtpyrNo) {
		this.schRtpyrNo = schRtpyrNo;
		return self();
	}

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

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

	public String getSchSndngRegSeCd() {
		return ifEmpty(schSndngRegSeCd, () -> null);
	}

	public <T extends SndbQuery> T setSchSndngRegSeCd(String schSndngRegSeCd) {
		this.schSndngRegSeCd = schSndngRegSeCd;
		return self();
	}

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

	public <T extends SndbQuery> T setSchSndngSeCd(String schSndngSeCd) {
		this.schSndngSeCd = schSndngSeCd;
		return self();
	}

	public String getSchSndngYmd() {
		return ifEmpty(schSndngYmd, () -> null);
	}

	public <T extends SndbQuery> T setSchSndngYmd(String schSndngYmd) {
		this.schSndngYmd = schSndngYmd;
		return self();
	}

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

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

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

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

	public String getSchRcpnNm() {
		return ifEmpty(schRcpnNm, () -> null);
	}

	public <T extends SndbQuery> T setSchRcpnNm(String schRcpnNm) {
		this.schRcpnNm = schRcpnNm;
		return self();
	}

	public String getSchDlvrYmdFrom() {
		return ifEmpty(schDlvrYmdFrom, () -> null);
	}

	public <T extends SndbQuery> T setSchDlvrYmdFrom(String schDlvrYmdFrom) {
		this.schDlvrYmdFrom = schDlvrYmdFrom;
		return self();
	}

	public String getSchDlvrYmdTo() {
		return ifEmpty(schDlvrYmdTo, () -> null);
	}

	public <T extends SndbQuery> T setSchDlvrYmdTo(String schDlvrYmdTo) {
		this.schDlvrYmdTo = schDlvrYmdTo;
		return self();
	}

	public String getSchRgNo() {
		return ifEmpty(schRgNo, () -> null);
	}

	public <T extends SndbQuery> T setSchRgNo(String schRgNo) {
		this.schRgNo = schRgNo;
		return self();
	}

	public String getSchSvbtcYmdFrom() {
		return ifEmpty(schSvbtcYmdFrom, () -> null);
	}

	public <T extends SndbQuery> T setSchSvbtcYmdFrom(String schSvbtcYmdFrom) {
		this.schSvbtcYmdFrom = schSvbtcYmdFrom;

		return self();
	}

	public String getSchSvbtcYmdTo() {
		return ifEmpty(schSvbtcYmdTo, () -> null);
	}

	public <T extends SndbQuery> T setSchSvbtcYmdTo(String schSvbtcYmdTo) {
		this.schSvbtcYmdTo = schSvbtcYmdTo;

		return self();
	}

	public String getSchUndlvrRsnCd() {
		return ifEmpty(schUndlvrRsnCd, () -> null);
	}

	public <T extends SndbQuery> T setSchUndlvrRsnCd(String schUndlvrRsnCd) {
		this.schUndlvrRsnCd = schUndlvrRsnCd;
		return self();
	}

	public String getSchChcRgIndct() {
		return ifEmpty(schChcRgIndct, () -> null);
	}

	public <T extends SndbQuery> T setSchChcRgIndct(String schChcRgIndct) {
		this.schChcRgIndct = schChcRgIndct;
		return self();
	}

	public String getSchLevyYmd() {
		return ifEmpty(schLevyYmd, () -> null);
	}

	public <T extends SndbQuery> T setSchLevyYmd(String schLevyYmd) {
		this.schLevyYmd = schLevyYmd;
		return self();
	}

	public String getSchFrstDudtYmd() {
		return ifEmpty(schFrstDudtYmd, () -> null);
	}

	public <T extends SndbQuery> T setSchFrstDudtYmd(String schFrstDudtYmd) {
		this.schFrstDudtYmd = schFrstDudtYmd;
		return self();
	}

	public String getSchFyr() {
		return ifEmpty(schFyr, () -> null);
	}

	public <T extends SndbQuery> T setSchFyr(String schFyr) {
		this.schFyr = schFyr;
		return self();
	}

	public String getSchLevyNoFrom() {
		return ifEmpty(schLevyNoFrom, () -> null);
	}

	public <T extends SndbQuery> T setSchLevyNoFrom(String schLevyNoFrom) {
		this.schLevyNoFrom = schLevyNoFrom;
		return self();
	}

	public String getSchLevyNoTo() {
		return ifEmpty(schLevyNoTo, () -> null);
	}

	public <T extends SndbQuery> T setSchLevyNoTo(String schLevyNoTo) {
		this.schLevyNoTo = schLevyNoTo;
		return self();
	}

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

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

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

	public <T extends SndbQuery> T setLevyExclSeNm(String levyExclSeNm) {
		this.levyExclSeNm = levyExclSeNm;
		return self();
	}

	public String getVltnCd() {
		return ifEmpty(vltnCd, () -> null);
	}

	public <T extends SndbQuery> T setVltnCd(String vltnCd) {
		this.vltnCd = vltnCd;
		return self();
	}

	public String getVhrno() {
		return ifEmpty(vhrno, () -> null);
	}

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

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

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

	public String getLevyExclSeCd() {
		return ifEmpty(levyExclSeCd, () -> null);
	}

	public <T extends SndbQuery> T setLevyExclSeCd(String levyExclSeCd) {
		this.levyExclSeCd = levyExclSeCd;
		return self();
	}

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

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

	public String getCrdnSttsCdFrom() {
		return ifEmpty(crdnSttsCdFrom, () -> null);
	}

	public <T extends SndbQuery> T setCrdnSttsCdFrom(String crdnSttsCdFrom) {
		this.crdnSttsCdFrom = crdnSttsCdFrom;
		return self();
	}

	public String getCrdnSttsCdTo() {
		return ifEmpty(crdnSttsCdTo, () -> null);
	}

	public <T extends SndbQuery> T setCrdnSttsCdTo(String crdnSttsCdTo) {
		this.crdnSttsCdTo = crdnSttsCdTo;
		return self();
	}

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

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

	public String getSndngSeCdFrom() {
		return ifEmpty(sndngSeCdFrom, () -> null);
	}

	public <T extends SndbQuery> T setSndngSeCdFrom(String sndngSeCdFrom) {
		this.sndngSeCdFrom = sndngSeCdFrom;
		return self();
	}

	public String getSndngSeCdTo() {
		return ifEmpty(sndngSeCdTo, () -> null);
	}

	public <T extends SndbQuery> T setSndngSeCdTo(String sndngSeCdTo) {
		this.sndngSeCdTo = sndngSeCdTo;
		return self();
	}

	public String getSndngDtlSttsCd() {
		return ifEmpty(sndngDtlSttsCd, () -> null);
	}

	public <T extends SndbQuery> T setSndngDtlSttsCd(String sndngDtlSttsCd) {
		this.sndngDtlSttsCd = sndngDtlSttsCd;
		return self();
	}

	public String getRcpnRelNm1() {
		return ifEmpty(rcpnRelNm1, () -> null);
	}

	public <T extends SndbQuery> T setRcpnRelNm1(String rcpnRelNm1) {
		this.rcpnRelNm1 = rcpnRelNm1;
		return self();
	}

	public String getRcpnRelNm2() {
		return ifEmpty(rcpnRelNm2, () -> null);
	}

	public <T extends SndbQuery> T setRcpnRelNm2(String rcpnRelNm2) {
		this.rcpnRelNm2 = rcpnRelNm2;
		return self();
	}

	public String getRcpnRelNm3() {
		return ifEmpty(rcpnRelNm3, () -> null);
	}

	public <T extends SndbQuery> T setRcpnRelNm3(String rcpnRelNm3) {
		this.rcpnRelNm3 = rcpnRelNm3;
		return self();
	}

	public String getRcpnRelNm4() {
		return ifEmpty(rcpnRelNm4, () -> null);
	}

	public <T extends SndbQuery> T setRcpnRelNm4(String rcpnRelNm4) {
		this.rcpnRelNm4 = rcpnRelNm4;
		return self();
	}

	public String getTnocs() {
		return ifEmpty(tnocs, () -> null);
	}

	public <T extends SndbQuery> T setTnocs(String tnocs) {
		this.tnocs = tnocs;
		return self();
	}

	public String getPrintDocNo() {
		return ifEmpty(printDocNo, () -> null);
	}

	public <T extends SndbQuery> T setPrintDocNo(String printDocNo) {
		this.printDocNo = printDocNo;
		return self();
	}

	public String getPrintTtlNm() {
		return ifEmpty(printTtlNm, () -> null);
	}

	public <T extends SndbQuery> T setPrintTtlNm(String printTtlNm) {
		this.printTtlNm = printTtlNm;
		return self();
	}

	public String getPrintSvbtcDate() {
		return ifEmpty(printSvbtcDate, () -> null);
	}

	public <T extends SndbQuery> T setPrintSvbtcDate(String printSvbtcDate) {
		this.printSvbtcDate = printSvbtcDate;
		return self();
	}
	// 동적 검색 조건 ///////////////////////////////////////////////////////////////

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

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

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

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

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

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

}
