package cokr.xit.fims.sprt;

import java.util.List;

import cokr.xit.fims.cmmn.CmmnQuery;

public class SprtQuery extends CmmnQuery {

	private static final long serialVersionUID = 1L;

	// 필수
	private String callPageName;												// 호출한 페이지 이름
	// IDs
	private String[] cvlcptDscsnIds;											// 민원 상담 Ids
	private String[] crdnIds;													// 단속 Ids
	// ID
	private String crdnId;														// 단속 ID
	private String rtpyrId;														// 납부자 ID
	private String levyExclId;													// 부과 제외 ID
	private String opnnId;														// 의견 ID
	private String levyId;														// 부과 ID
	private String cvlcptDscsnId;												// 민원 상담 ID

	private List<Keyword> ischKeywordSet;										// 통합조회 키워드
	private List<String> ischOnlyDataSet; 										// 특정자료만 조회
	private List<String> ischExclDataSet; 										// 특정자료 제외
	private String gridType;

	private String vhrno;														// 차량번호
	private String rtpyrNo;														// 납부자 번호
	private String rtpyrBrdt;													// 납부자 생일
	private String rtpyrNm;														// 납부자 명
	private String fyr;															// 회계연도
	private String levyNo;														// 부과 번호
    private String unusedInq;                                                   // 미사용 조회 여부
	// ETC
	private String callPurpose;													// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
	private String delRsn;														// 삭제 사유
	private String inquiryCondition;											// 조회 조건

	public String getCallPageName() {
		return ifEmpty(callPageName, () -> null);
	}

	public <T extends SprtQuery> T setCallPageName(String callPageName) {
		this.callPageName = callPageName;
		return self();
	}

	public String[] getCvlcptDscsnIds() {
		return ifEmpty(cvlcptDscsnIds, () -> null);
	}

	public <T extends SprtQuery> T setCvlcptDscsnIds(String... cvlcptDscsnIds) {
		this.cvlcptDscsnIds = cvlcptDscsnIds;
		return self();
	}

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

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

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

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

	public String getRtpyrId() {
		return ifEmpty(rtpyrId, () -> null);
	}

	public <T extends SprtQuery> T setRtpyrId(String rtpyrId) {
		this.rtpyrId = rtpyrId;
		return self();
	}

	public String getLevyExclId() {
		return ifEmpty(levyExclId, () -> null);
	}

	public <T extends SprtQuery> T setLevyExclId(String levyExclId) {
		this.levyExclId = levyExclId;
		return self();
	}

	public String getOpnnId() {
		return ifEmpty(opnnId, () -> null);
	}

	public <T extends SprtQuery> T setOpnnId(String opnnId) {
		this.opnnId = opnnId;
		return self();
	}

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

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

	public String getCvlcptDscsnId() {
		return ifEmpty(cvlcptDscsnId, () -> null);
	}

	public <T extends SprtQuery> T setCvlcptDscsnId(String cvlcptDscsnId) {
		this.cvlcptDscsnId = cvlcptDscsnId;
		return self();
	}

	public List<Keyword> getIschKeywordSet() {
		return ifEmpty(ischKeywordSet, () -> null);
	}

	public <T extends SprtQuery> T setIschKeywordSet(List<Keyword> ischKeywordSet) {
		this.ischKeywordSet = ischKeywordSet;
		return self();
	}

	public List<String> getIschOnlyDataSet() {
		return ifEmpty(ischOnlyDataSet, () -> null);
	}

	public <T extends SprtQuery> T setIschOnlyDataSet(List<String> ischOnlyDataSet) {
		this.ischOnlyDataSet = ischOnlyDataSet;
		return self();
	}

	public List<String> getIschExclDataSet() {
		return ifEmpty(ischExclDataSet, () -> null);
	}

	public <T extends SprtQuery> T setIschExclDataSet(List<String> ischExclDataSet) {
		this.ischExclDataSet = ischExclDataSet;
		return self();
	}

	public String getGridType() {
		return ifEmpty(gridType, () -> null);
	}

	public <T extends SprtQuery> T setGridType(String gridType) {
		this.gridType = gridType;
		return self();
	}

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

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

	public String getRtpyrNo() {
		return ifEmpty(rtpyrNo, () -> null);
	}

	public void setRtpyrNo(String rtpyrNo) {
		this.rtpyrNo = rtpyrNo;
	}

	public String getRtpyrBrdt() {
		return ifEmpty(rtpyrBrdt, () -> null);
	}

	public <T extends SprtQuery> T setRtpyrBrdt(String rtpyrBrdt) {
		this.rtpyrBrdt = rtpyrBrdt;
		return self();
	}

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

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

	public String getFyr() {
		return ifEmpty(fyr, () -> null);
	}

	public <T extends SprtQuery> T setFyr(String fyr) {
		this.fyr = fyr;
		return self();
	}

	public String getLevyNo() {
		return ifEmpty(levyNo, () -> null);
	}

	public <T extends SprtQuery> T setLevyNo(String levyNo) {
		this.levyNo = levyNo;
		return self();
	}

    public String getUnusedInq() {
        return ifEmpty(unusedInq, () -> null);
    }

    public <T extends SprtQuery> T setUnusedInq(String unusedInq) {
        this.unusedInq = unusedInq;
        return self();
    }

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

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

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

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

	public String getInquiryCondition() {
		return ifEmpty(inquiryCondition, () -> null);
	}

	public <T extends SprtQuery> T setInquiryCondition(String inquiryCondition) {
		this.inquiryCondition = inquiryCondition;
		return self();
	}
	// ETC /////////////////////////////////////////////////////////////////////

}
