package cokr.xit.fims.levy;

import cokr.xit.fims.cmmn.CmmnQuery;

/**과태료 부과 대장 정보 조회 요청
 *
 * <p>상세 설명:
 *
 * <pre>
 * ============ 변경 이력 ============
 * 2023-08-30	Jojh 최초 작성
 * ================================
 * </pre>
 */
public class LevyQuery extends CmmnQuery {

	private static final long serialVersionUID = 1L;

	// ID
	private String crdnId;														// 단속 ID
	private String[] levyIDs;													// 부과 IDs
	private String levyId;														// 부과 ID
	private String[] rductIDs;													// 감경 IDs
	private String rductId;														// 감경 ID
	// 검색 조건
	private String schRductYmdFrom;												// 감경 일자 시작
	private String schRductYmdTo;												// 감경 일자 종료
	private String schCrdnYmdFrom;												// 단속 일자 시작
	private String schCrdnYmdTo;												// 단속 일자 종료
	private String schVhrno;													// 차량번호
	// ETC
	private String callPurpose;													// 호출용도 필요시 사용(select, create, update)
	private String delYn;														// 삭제 여부
	private String delRsn;														// 삭제 사유

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

	public <T extends LevyQuery> T setCrdnId(String crdnId) {
		this.crdnId = crdnId;

		return self();
	}

	public String[] getLevyIDs() {
		return ifEmpty(levyIDs, () -> null);
	}

	public <T extends LevyQuery> T setLevyIDs(String... levyIDs) {
		this.levyIDs = levyIDs;

		return self();
	}

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

	public <T extends LevyQuery> T setLevyId(String levyId) {
		this.levyId = levyId;

		return self();
	}

	public String[] getRductIDs() {
		return ifEmpty(rductIDs, () -> null);
	}

	public <T extends LevyQuery> T setRductIDs(String... rductIDs) {
		this.rductIDs = rductIDs;

		return self();
	}

	public String getRductId() {
		return ifEmpty(rductId, () -> null);
	}

	public <T extends LevyQuery> T setRductId(String rductId) {
		this.rductId = rductId;

		return self();
	}

	public String getSchRductYmdFrom() {
		return ifEmpty(schRductYmdFrom, () -> null);
	}

	public <T extends LevyQuery> T setSchRductYmdFrom(String schRductYmdFrom) {
		this.schRductYmdFrom = schRductYmdFrom;
		return self();
	}

	public String getSchRductYmdTo() {
		return ifEmpty(schRductYmdTo, () -> null);
	}

	public <T extends LevyQuery> T setSchRductYmdTo(String schRductYmdTo) {
		this.schRductYmdTo = schRductYmdTo;
		return self();
	}

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

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

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

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

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

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

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

	public <T extends LevyQuery> T setCallPurpose(String callPurpose) {
		this.callPurpose = callPurpose;

		return self();
	}

	public String getDelYn() {
		return ifEmpty(delYn, () -> null);
	}

	public <T extends LevyQuery> T setDelYn(String delYn) {
		this.delYn = delYn;

		return self();
	}

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

	public <T extends LevyQuery> T setDelRsn(String delRsn) {
		this.delRsn = delRsn;

		return self();
	}
	// ETC /////////////////////////////////////////////////////////////////////

}
