package com.eactive.eai.common.message;

import java.io.Serializable;
import java.util.List;

public class ServiceMessage implements EAIMessageKeys, Serializable {
	private static final long serialVersionUID = 1L;
	
	private     String      eAISvcCd;               // EAI서비스명[TSEAIHE02.EAISvcName]      
	private     int         svcPssSeq;              // 서비스처리번호[TSEAIHE02.SvcPrcssNo]    
	private		String		psvItfTp;				// 수동인터페이스구분명[TSEAIHE02.ManulIntfacDsticName]                 - PassiveInterfaceType						- [SYNC|ASYN|AKON]
	private		String		psvBwkSysNm;			// 수동시스템업무구분코드[TSEAIHE02.ManulSysBzwkDstcd]                  - PassiveBusinessWorkSystemName				- [ 3|4 자리 KB표준업무시스템명 사용 ]
	private 	String		psvSysID;				// 수동시스템ID명[TSEAIHE02.ManulSysIDName]                            - PassiveSystemIdentifier					- KB표준시스템ID Naming Rule을 따른다.
	private		String		psvSysSvcCd;			// 수동시스템서비스구분명[TSEAIHE02.ManulSysSvcDsticName]               - PassiveSystemServiceCode					-
	private		String		psvSysItfTp;			// 수동시스템어댑터업무그룹명[TSEAIHE02.ManulSysAdptrBzwkGroupName]      - PassiveSystemInterfaceType				-[Adapter_업무명_OUT]
	private		String		flOvrCls;				// 장애극복여부[TSEAIHE02.FlovrYn]                                     - FailOverClassification					-[Y|N]
	private		String		cnvEn;					// 변환유무[TSEAIHE02.ChngEonot]                                      - ConversionExistenceOrNot					-[Y|N]
	private		String		cnvMsgID;				// 변환메시지ID명[TSEAIHE02.ChngMsgIDName]                             - ConversionMessageIdentifier
	private		String		rspMsgRefID;			// 응답메시지ID                                                        - ResponseMessageReferenceIdentifier 
	private		String		bsRspMsgCprVl;			// 기본응답메시지비교내용[TSEAIHE02.BascRspnsMsgCmprCtnt]                - BasisResponseMessageCompareValue
	private		String		bsRspCnvEn;				// 기본응답변환유무[TSEAIHE02.BascRspnsChngEonot]                       - BasisResponseConversionExistenceOrNot 	-[Y|N]
	private		String		bsRspCnvMsgID;			// 기본응답변환메시지ID명[TSEAIHE02.BascRspnsChngMsgIDName]              - BasisResponseConversionMessageIdentifier
	private		String		errRspMsgCprVl;			// 오류응답메시지비교내용[TSEAIHE02.ErrRspnsMsgCmprCtnt]                  - ErrorResponseMessageCompareValue
	private		String		errRspCnvEn;			// 오류응답변환유무[TSEAIHE02.ErrRspnsChngEonot]                        - ErrorResponseConversionExistenceOrNot		-[Y|N]
	private		String		errRspCnvMsgID;			// 오류응답변환메시지ID명[TSEAIHE02.ErrRspnsChngMsgIDName]              - ErrorResposneConversionIdentifier
	private		String		keyMgtMsgVl;			// 키관리메시지값                                                      - KeyManagementMessageValue
    private		int			nxtSvcPssSeq;			// 다음서비스처리번호[TSEAIHE02.NextSvcPrcssNo]                        - NextServiceProcessSequence
    private		String		outbRtnNm;				// 아웃바운드라우팅명[TSEAIHE02.OutbndRoutName]		                 - OutboundRoutingName
    private		int			tmoVl;					// 타임아웃값[TSEAIHE02.ToutVal]					                     - TimeoutValue(단위: 초)
    private		String		cpnsSvcPssCd;			// 보상서비스처리구분명[TSEAIHE02.CmpenSvcPrcssDsticName]		         - CompensationServiceProcessCode
    private		String		tmRefMsgID;				// 타이머참고메시지ID                                                   - TimerReferenceMessageIdentifier

    private		String		supplDelYn;		        //추가삭제여부[TSEAIHE02.SupplDelYn]			-[Y/N]
    private		String		hdrCtrlDstcd;		    //헤더제어구분코드[TSEAIHE02.HdrCtrlDstcd]		-[01/02]삭제추가/추가삭제
    private		String		hdrRefClsName;			//참고틀래스명[TSEAIHE02.HdrRefClsName]			-com.eactive.eai.common.header.PPSHeaderUtil
    
    private     String      restOption;             //REST 옵션[TSEAIHE02.restOption]
    private     String      timeoutCode;            //REST 옵션[TSEAIHE02.timeoutCode]

	private		String[]	refMsgIDs;				// 입력메시지IDS[TSEAIMS02.refmsgidno]                               - ReferenceMessageIdentifiers
	private		List<CondPerRtgInfo>	condPerRtgInfo;			// 조건부라우팅정보테이블                                  - ConditionPerRoutingInformationArragement 	- key-필드명, value-비교값 

	public String getBsRspCnvEn() {
		return bsRspCnvEn;
	}

	public boolean isBsRspCnvEn() {
		return this.bsRspCnvEn.equals(YES_FLAG);
	}

	public void setBsRspCnvEn(String bsRspCnvEn) {
		this.bsRspCnvEn = bsRspCnvEn;
	}

	public String getBsRspCnvMsgID() {
		return bsRspCnvMsgID;
	}

	public void setBsRspCnvMsgID(String bsRspCnvMsgID) {
		this.bsRspCnvMsgID = bsRspCnvMsgID;
	}

	public String getBsRspMsgCprVl() {
		return bsRspMsgCprVl;
	}

	public void setBsRspMsgCprVl(String bsRspMsgCprVl) {
		this.bsRspMsgCprVl = bsRspMsgCprVl;
	}

	public String getCnvEn() {
		return cnvEn;
	}

	public boolean isCnvEn() {
		return this.cnvEn.equals(YES_FLAG);
	}

	public void setCnvEn(String cnvEn) {
		this.cnvEn = cnvEn;
	}

	public String getCnvMsgID() {
		return cnvMsgID;
	}

	public void setCnvMsgID(String cnvMsgID) {
		this.cnvMsgID = cnvMsgID;
	}

	public List<CondPerRtgInfo> getCondPerRtgInfo() {
		return condPerRtgInfo;
	}

	public boolean hasCondPerRtgInfo() {
		return (this.condPerRtgInfo != null && !this.condPerRtgInfo.isEmpty());
	}

	public void setCondPerRtgInfo(List<CondPerRtgInfo> condPerRtgInfo) {
		this.condPerRtgInfo = condPerRtgInfo;
	}

	public String getCpnsSvcPssCd() {
		return cpnsSvcPssCd;
	}

	public void setCpnsSvcPssCd(String cpnsSvcPssCd) {
		this.cpnsSvcPssCd = cpnsSvcPssCd;
	}

	public String getErrRspCnvEn() {
		return errRspCnvEn;
	}

	public boolean isErrRspCnvEn() {
		return this.errRspCnvEn.equals(YES_FLAG);
	}

	public void setErrRspCnvEn(String errRspCnvEn) {
		this.errRspCnvEn = errRspCnvEn;
	}

	public String getErrRspCnvMsgID() {
		return errRspCnvMsgID;
	}

	public void setErrRspCnvMsgID(String errRspCnvMsgID) {
		this.errRspCnvMsgID = errRspCnvMsgID;
	}

	public String getErrRspMsgCprVl() {
		return errRspMsgCprVl;
	}

	public void setErrRspMsgCprVl(String errRspMsgCprVl) {
		this.errRspMsgCprVl = errRspMsgCprVl;
	}

	public String getFlOvrCls() {
		return flOvrCls;
	}

	public boolean hasFailOver() {
		return this.flOvrCls.equals(YES_FLAG);
	}

	public void setFlOvrCls(String flOvrCls) {
		this.flOvrCls = flOvrCls;
	}

	public String getKeyMgtMsgVl() {
		return keyMgtMsgVl;
	}

	public void setKeyMgtMsgVl(String keyMgtMsgVl) {
		this.keyMgtMsgVl = keyMgtMsgVl;
	}

	public int getNxtSvcPssSeq() {
		return nxtSvcPssSeq;
	}

	public void setNxtSvcPssSeq(int nxtSvcPssSeq) {
		this.nxtSvcPssSeq = nxtSvcPssSeq;
	}

	public String getOutbRtnNm() {
		return outbRtnNm;
	}

	public void setOutbRtnNm(String outbRtnNm) {
		this.outbRtnNm = outbRtnNm;
	}

	public String getPsvBwkSysNm() {
		return psvBwkSysNm;
	}

	public void setPsvBwkSysNm(String psvBwkSysNm) {
		this.psvBwkSysNm = psvBwkSysNm;
	}

	public String getPsvItfTp() {
		return psvItfTp;
	}

	public boolean isSyncItfTp() {
		return this.psvItfTp.equals(SYNC_SVC);
	}

	public boolean isAckItfTp() {
		return this.psvItfTp.equals(ACKONLY_SVC);
	}

	public void setPsvItfTp(String psvItfTp) {
		this.psvItfTp = psvItfTp;
	}

	public String getPsvSysID() {
		return psvSysID;
	}

	public void setPsvSysID(String psvSysID) {
		this.psvSysID = psvSysID;
	}

	public String getPsvSysItfTp() {
		return psvSysItfTp;
	}

	public void setPsvSysItfTp(String psvSysItfTp) {
		this.psvSysItfTp = psvSysItfTp;
	}

	public String getPsvSysSvcCd() {
		return psvSysSvcCd;
	}

	public void setPsvSysSvcCd(String psvSysSvcCd) {
		this.psvSysSvcCd = psvSysSvcCd;
	}

	public String[] getRefMsgIDs() {
		return refMsgIDs;
	}

	public void setRefMsgIDs(String[] refMsgIDs) {
		this.refMsgIDs = refMsgIDs;
	}

	public String getRspMsgRefID() {
		return rspMsgRefID;
	}

	public void setRspMsgRefID(String rspMsgRefID) {
		this.rspMsgRefID = rspMsgRefID;
	}

	public int getTmoVl() {
		return tmoVl;
	}

	public boolean hasTimeOut() {
		return (this.tmoVl > 0);
	}

	public void setTmoVl(int tmoVl) {
		this.tmoVl = tmoVl;
	}

	public String getTmRefMsgID() {
		return tmRefMsgID;
	}

	public void setTmRefMsgID(String tmRefMsgID) {
		this.tmRefMsgID = tmRefMsgID;
	}

	public String getEAISvcCd() {
		return eAISvcCd;
	}

	public void setEAISvcCd(String svcCd) {
		eAISvcCd = svcCd;
	}

	public int getSvcPssSeq() {
		return svcPssSeq;
	}

	public void setSvcPssSeq(int seq) {
		svcPssSeq = seq;
	}

	public String getHdrCtrlDstcd() {
		return hdrCtrlDstcd;
	}

	public void setHdrCtrlDstcd(String hdrCtrlDstcd) {
		this.hdrCtrlDstcd = hdrCtrlDstcd;
	}

	public String getHdrRefClsName() {
		return hdrRefClsName;
	}

	public void setHdrRefClsName(String hdrRefClsName) {
		this.hdrRefClsName = hdrRefClsName;
	}

	public String getSupplDelYn() {
		return supplDelYn;
	}

	public void setSupplDelYn(String supplDelYn) {
		this.supplDelYn = supplDelYn;
	}

	public String getRestOption() {
		return restOption;
	}

	public void setRestOption(String restOption) {
		this.restOption = restOption;
	}

	public String getTimeoutCode() {
		return timeoutCode;
	}

	public void setTimeoutCode(String timeoutCode) {
		this.timeoutCode = timeoutCode;
	}

}
