package cokr.xit.fims.rdca;

import cokr.xit.fims.cmmn.CmmnQuery;

/**감액 대장 정보 조회 요청
 *
 * <p>상세 설명:
 *
 * <pre>
 * ============ 변경 이력 ============
 * 2024-02-01	JoJH 최초 작성
 * ================================
 * </pre>
 */
public class RdamtQuery extends CmmnQuery {

	private static final long serialVersionUID = 1L;

	// ID
    private String[] rdamtIds;          // 감액 Ids
    private String rdamtId;             // 감액 ID
    private String[] levyIds;           // 부과 Ids
    private String levyId;              // 부과 ID

	// 검색 조건
	private String schLevyExclYmdFrom;	// 부과제외_부과제외 일자 시작
	private String schLevyExclYmdTo;	// 부과제외_부과제외 일자 종료
	// 상세 검색 조건

	// 동적 검색 조건

	// ETC
	private String callPurpose;			// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
	private String delRsn;				// 삭제 사유


	public String[] getRdamtIds() {
		return ifEmpty(rdamtIds, () -> null);
	}

	public <T extends RdamtQuery> T setRdamtIds(String... rdamtIds) {
		this.rdamtIds = rdamtIds;
		return self();
	}

	public String getRdamtId() {
		return ifEmpty(rdamtId, () -> null);
	}

	public <T extends RdamtQuery> T setRdamtId(String rdamtId) {
		this.rdamtId = rdamtId;
		return self();
	}

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

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

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

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

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

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

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

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

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

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

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

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