package com.eactive.eai.rms.onl.transaction.tracking;

import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.eactive.eai.message.StandardLogItem;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;
import org.hibernate.annotations.Comment;

import javax.persistence.Column;

@Data

public class EAILogUI {

	/** EAI업무구분코드 */
	@JsonProperty("EAIBZWKDSTCD")
	private String eaibzwkdstcd;

	/** 메시지수신시각 */
	@JsonProperty("MSGDPSTYMS")
	private String msgdpstyms;

	/** EAI서비스일련번호 */
	@JsonProperty("EAISVCSERNO")
	private String eaisvcserno;

	/** 로그처리일련번호 */
	@JsonProperty("LOGPRCSSSERNO")
	private String logprcssserno;

	/** EAI서버인스턴스명 */
	@JsonProperty("EAISEVRINSTNCNAME")
	private String eaisevrinstncname;

	/** EAI서비스명 */
	@JsonProperty("EAISVCNAME")
	private String eaisvcname;

	/** 서비스시각유무 */
	@JsonProperty("SVCHMSEONOT")
	private String svchmseonot;

	/** 서비스동기사용구분코드 */
	@JsonProperty("SVCMOTIVUSEDSTCD")
	private String svcmotivusedstcd;

	/** 서비스처리구분명 */
	@JsonProperty("SVCPRCSSDSTICNAME")
	private String svcprcssdsticname;

	/** 흐름통제라우팅명 */
	@JsonProperty("FLOWCTRLROUTNAME")
	private String flowctrlroutname;

	/** 통합구분명 */
	@JsonProperty("INTGRADSTICNAME")
	private String intgradsticname;

	/** 기동서비스구분명 */
	@JsonProperty("GSTATSVCDSTICNAME")
	private String gstatsvcdsticname;

	/** 서비스처리번호 */
	@JsonProperty("SVCPRCSSNO")
	private String svcprcssno;

	/** 서비스전컬럼로그여부 */
	@JsonProperty("SVCBFCLMNLOGYN")
	private String svcbfclmnlogyn;

	/** 표준메시지사용여부 */
	@JsonProperty("STNDMSGUSEYN")
	private String stndmsguseyn;

	/** 기동시스템어댑터업무그룹명 */
	@JsonProperty("GSTATSYSADPTRBZWKGROUPNAME")
	private String gstatsysadptrbzwkgroupname;

	/** 현재메시지ID명 */
	@JsonProperty("PRSNTMSGIDNAME")
	private String prsntmsgidname;

	/** 응답에러코드명 */
	@JsonProperty("RSPNSERRCDNAME")
	private String rspnserrcdname;

	/** 메시지처리시각 */
	@JsonProperty("MSGPRCSSYMS")
	private String msgprcssyms;

	/** 서버로그레벨번호 */
	@JsonProperty("SEVRLOGLVELNO")
	private String sevrloglvelno;

	/** 서비스로그레벨번호 */
	@JsonProperty("SVCLOGLVELNO")
	private String svcloglvelno;

	/** 오류EAI서비스명 */
	@JsonProperty("ERREAISVCNAME")
	private String erreaisvcname;

	/** 요청오류변환ID명 */
	@JsonProperty("DMNDERRCHNGIDNAME")
	private String dmnderrchngidname;

	/** 요청에러필드명 */
	@JsonProperty("DMNDERRFLDNAME")
	private String dmnderrfldname;

	/** 응답오류변환ID명 */
	@JsonProperty("RSPNSERRCHNGIDNAME")
	private String rspnserrchngidname;

	/** 응답에러필드명 */
	@JsonProperty("RSPNSERRFLDNAME")
	private String rspnserrfldname;

	/** 수동인터페이스구분명 */
	@JsonProperty("PSVINTFACDSTICNAME")
	private String psvintfacdsticname;

	/** 수동업무시스템명 */
	@JsonProperty("PSVBZWKSYSNAME")
	private String psvbzwksysname;

	/** 수동시스템ID명 */
	@JsonProperty("PSVSYSIDNAME")
	private String psvsysidname;

	/** 수동시스템서비스구분명 */
	@JsonProperty("PSVSYSSVCDSTICNAME")
	private String psvsyssvcdsticname;

	/** 수동시스템어댑터업무그룹명 */
	@JsonProperty("PSVSYSADPTRBZWKGROUPNAME")
	private String psvsysadptrbzwkgroupname;

	/** 장애극복여부 */
	@JsonProperty("FLOVRYN")
	private String flovryn;

	/** 변환여부 */
	@JsonProperty("CHNGYN")
	private String chngyn;

	/** 변환메시지ID명 */
	@JsonProperty("CHNGMSGIDNAME")
	private String chngmsgidname;

	/** 입력메시지ID명 */
	@JsonProperty("INPTMSGIDNAME")
	private String inptmsgidname;

	/** 기본응답메시지비교내용 */
	@JsonProperty("BASCRSPNSMSGCMPRCTNT")
	private String bascrspnsmsgcmprctnt;

	/** 기본응답변환여부 */
	@JsonProperty("BASCRSPNSCHNGYN")
	private String bascrspnschngyn;

	/** 기본응답변환메시지ID명 */
	@JsonProperty("BASCRSPNSCHNGMSGIDNAME")
	private String bascrspnschngmsgidname;

	/** 오류응답메시지비교내용 */
	@JsonProperty("ERRRSPNSMSGCMPRCTNT")
	private String errrspnsmsgcmprctnt;

	/** 오류응답변환여부 */
	@JsonProperty("ERRRSPNSCHNGYN")
	private String errrspnschngyn;

	/** 오류응답변환메시지ID명 */
	@JsonProperty("ERRRSPNSCHNGMSGIDNAME")
	private String errrspnschngmsgidname;

	/** 다음서비스처리번호 */
	@JsonProperty("NEXTSVCPRCSSNO")
	private String nextsvcprcssno;

	/** 타임아웃값 */
	@JsonProperty("TOUTVAL")
	private Integer toutval;

	/** 추가업무데이터여부 */
	@JsonProperty("SUPPLBZWKDATAYN")
	private String supplbzwkdatayn;

	/** 키관리메시지내용 */
	@JsonProperty("KEYMGTMSGCTNT")
	private String keymgtmsgctnt;

	/** 추적보조키1내용 */
	@JsonProperty("TRACKASISKEY1CTNT")
	private String trackasiskey1ctnt;

	/** 추적보조키2내용 */
	@JsonProperty("TRACKASISKEY2CTNT")
	private String trackasiskey2ctnt;

	/** 추적보조키3내용 */
	@JsonProperty("TRACKASISKEY3CTNT")
	private String trackasiskey3ctnt;

	/** 추적보조키4내용 */
	@JsonProperty("TRACKASISKEY4CTNT")
	private String trackasiskey4ctnt;

	/** EAI서비스코드의 그룹회사코드 */
	@JsonProperty("EAIGROUPCODSTCD")
	private String eaigroupcodstcd;

	/** PGUID */
	@JsonProperty("PGUID")
	private String pguid;

	/** 송수신구분 */
	@JsonProperty("TRANTYPE")
	private String trantype;

	/** 응답변환타입 */
	@JsonProperty("RSPNSCHNGMSGTYPE")
	private String rspnschngmsgtype;

	/** EAI에러코드 */
	@JsonProperty("EAIERRCD")
	private String eaierrcd;

	/** EAI에러내용 */
	@JsonProperty("EAIERRCTNT")
	private String eaierrctnt;

	/** 서버그룹명 */
	@JsonProperty("SEVRGROUPNAME")
	private String sevrgroupname;

	/** 업체코드 */
	@JsonProperty("COMPANYCODE")
	private String companycode;

	/** 전문크기 */
	@JsonProperty("SPLIZLENGTH")
	private Integer splizlength;

	/** adapter nick name */
	@JsonProperty("ADPTRINSTICODE")
	private String adptrinsticode;

	/** 거래ID */
	@JsonProperty("TXID")
	private String txid;

	/** 참조ID */
	@JsonProperty("REFKEY")
	private String refkey;

	/** 대외업무구분코드 */
	@JsonProperty("EXTBIZCD")
	private String extbizcd;

	/** EAI 업무 개별부 */
	@JsonProperty("BZWKDATACTNT")
	private String bzwkdatactnt;

	/** 표준전문레이아웃 명 */
	@JsonProperty("STDLAYOUTNAME")
	private String stdlayoutname;

	/** 보상서비스처리명 */
	@JsonProperty("CMPENSVCPRCSSNAME")
	private String cmpensvcprcssname;

	/** Outbound라우팅명 */
	@JsonProperty("OUTBNDROUTNAME")
	private String outbndroutname;

	/** client id */
	@JsonProperty("CLIENTID")
	private String clientid;

	@JsonProperty("ADPTRINSTINAME")
	private String adptrinstiname;

	@JsonProperty("EAISVCDESC")
	private String eaisvcdesc;

	@JsonProperty("CLIENTNAME")
	private String clientname;

	@JsonProperty("CLIENTIP")
	private String clientip;

	@JsonProperty("ORGID")
	private String orgid;

	@JsonProperty("ORGNAME")
	private String orgname;

	@JsonProperty("FULLMESSAGEDATA")
	private String fullmessagedata;

	@JsonProperty("EAISVCSERNO_TMP")
	private String getEaisvcsernoTmp() {
		return eaisvcserno;
	}

	@JsonProperty("LOGPRCSSSERNO_TMP")
	private String getLogprcsssernoTmp() {
		return logprcssserno;
	}

	@JsonProperty("EAIBZWKDSTCD_TMP")
	private String getEaibzwkdstcdTmp() {
		return eaibzwkdstcd;
	}

	@JsonProperty("MSGDPSTYMS_TMP")
	private String getMsgdpstymsTmp() {
		return msgdpstyms;
	}

	@JsonProperty("ERRYN")
	private String getErryn() {
		if (StringUtils.isBlank(eaierrctnt)) {
			return "N";
		} else {
			return "Y";
		}
	}

	///////////////////////////////////////////////////////////// detail 변수들
	private List<StandardLogItem> standardHeader;

	private String errStandardHeaderText;

	private String subHeaderExist;

	private List<StandardLogItem> subHeader;

	private String errSubHeaderText;

	private String xmlDataYn;

	private String bizDataYn;

	private List<BizGridItem> bizGridRows;

	private String orgDataYn;

	private String inputMediaDataYn;

	private String msgType;

	private String iso8583DataYn;

	private String OUTPTDPTRNDSTCD;

	private String TELGMDMNDDSTCD;

	private String bizLogObjectDetail;
}
