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 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
	// ETC
	private String callPurpose;													// 호출용도 필요시 사용(select, create, update)
	private String delYn;														// 삭제 여부
	private String delRsn;														// 삭제 사유

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

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

		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();
	}

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

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

		return self();
	}

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

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

		return self();
	}

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

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

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