package itn.let.mjo.msg.service;

import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import itn.com.cmm.ComDefaultVO;
import itn.com.cmm.MjonMsgSendVO;
import lombok.Getter;
import lombok.Setter;

@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
public class MjonMsgVO extends ComDefaultVO{
	
	private static final long serialVersionUID = 1L;
	private String 	msgId ;// '문자ID',
	private String  userId ; // '문자온 일반회원ID',
	private String  mberId ; 
	private String  agentFlag ;//'전송사코드(1:아이하트,2:...)',
	private String  userData; //'(I)사용자 정의 코드(참조용으로 사용되는 것으로 메시지 전송 시에는 사용되지 않는다-문자온/아이하트 참조키용)',
	private String  msgSeq; // '(I)메시지의 고유번호. 자동 증가하는 것으로 MSG_DATA의 PRIMARY KEY가 된다.',
	private String  curState; // '상태 값(발송요청:0, 전송 중:1, 전송:2, 결과수신:3)',
	private String  sentDate; // '메시지를 전송한 시각',
	private String  rsltDate; // '핸드폰에 전달된 시간 (이통사가 핸드폰이 수신했다고 주장하는 시간)',
	private String  reportDate; // '레포트 처리한 시간',
	private String  reqDate; // '예약일시',
	private String  rsltCode; // '결과처리코드',
	private String  rsltCode2; // '결과처리 상세코드',
	private String  rsltNet; // '결과처리 통신사',
	private String  callTo; // '수신번호 (하이픈 등의 문자를 제외한 12byte이하의 숫자로 입력한다.)',
	private String[] callToList; // '수신번호리스트',
	private String  callFrom; // '발신번호 (하이픈 등의 문자를 제외한 12byte이하의 숫자로 입력한다.)',
	private String  subject; // 'MMS용 메시지제목',
	private String  smsTxt; // 'SMS용 메시지본문',
	private String  smsTxtArea;//문자 작성 화면 본문 내용 
	private String  msgType; // '메시지의 (4: SMS 전송, 5: URL 전송, 6: MMS전송, 7: BARCODE전송, 8: 카카오 알림톡 전송)',
	private String  msgKind; // '문자 종류 일반:N, 광고:A, 선거:C',
	private String  msgPayCode; // '재전송 기능에 의한 최종전송콘텐트 종류 저장',
	private String  contSeq; // COMMENT 'MMS의 콘텐츠 Key(MMS_CONTENTS_INFO의 CONT_SEQ)',
	private String  msgTypeResend; // '재전송할 문자 타입. 값이 있으면 재전송. 없으면 단 건 전송',
	private String  centerSeqResend; // '재전송할 센터. NPro 내부적으로 사용함.',
	private String  msgNoticetalkSenderKey; // '카카오 알림톡에 등록된 사용자 고유키',
	private String  msgNoticetalkTmpKey; // '카카오 알림톡에 등록된 문자 템플릿 고유키',
	private String  msgResendCount; // '첫 번째 전송 값 실패하여 재전송한 카운트.(기본값 : 0, 전송 : 1, 재전송 : 2)',
	private String  msgResenddate; // '재전송된 시간',
	private String  sentDatePre; // '이전 메시지를 전송한 시각',
	private String  rsltDatePre; // '이전 핸드폰에 전달된 시간',
	private String  reportDatePre; // '이전 레포트 처리한 시간',
	private String  rsltCodePre; // '이전 결과처리코드',
	private String  rsltCode2Pre; // '이전 결과처리 상세코드 (결과코드는 아래 표 참조)',
	private String  rsltNetPre; // '이전 결과처리 통신사',
	private String  conectMthd; // '접속한 기기(01:웹 , 02:모바일, 03: 애드온모듈)',
	private String  conectMthdTxt; // '접속한 기기텍스트(01:웹 , 02:모바일, 03: 애드온모듈)',
	private String  repAgent;		// e대표전송사
	private String  agentCode; // '전송사(01:아이하트 , ...)',
	private String  agentCodeTxt; // '전송사텍스트(01:아이하트 , ...)',
	private String  curStateTxt; // '현제상태텍스트(01:아이하트 , ...)',
	private String  msgTypeTxt; // '메세지타입(4: SMS 전송, 5: URL 전송, 6: MMS전송, 7: BARCODE전송, 8: 카카오 알림톡 전송)',
	private String  sentDateTxt; // '전송시간 TXT',
	private String  searchCondition2; // '조회조건2',
	private String  searchCondition3; // '조회조건3',
	private String  searchCondition4; // '조회조건3',
	private String  searchCondition5; // '조회조건3',
	private String  delFlag; // '사용자 삭제여부(N:미삭제, Y:삭제)'
	private String  delFlagTxt; // '사용자 삭제여부 텍스트(N:미삭제, Y:삭제)'
	private String 	mmsSubject; // '메세지 타이틀' 
	private String 	fileCnt; 	// 첨부파일 갯수
	private String 	fileType1;	// '파일 타입1'
	private String 	fileName1;	// '파일이름1'
	private String 	fileType2;	// '파일 타입2'
	private String 	fileName2;	// '파일이름2'
	private String 	fileType3;	// '파일 타입3'
	private String 	fileName3;	// '파일이름3'
	private String 	msgGroupId;	// 전송그룹ID (대량문자의 경우 하나의 그룹으로 세팅)
	private String 	msgGroupCnt;	// 전송그룹 카운트
	private String[]  imgFilePath;  // 그림 이미지 경로
	private String imgFilePathAdvc;  // 그림 이미지 경로
	private String  neoType;		// 아이엠오 장문, 그림 타입 지정
	private int   msgCnt;		// 아이엠오 장문, 그림 타입 지정
	private String 	eachPrice ;	// 전송문자 개별가격
	private String 	totPrice ;	// 전송문자 토탈가격
	private String 	beforeUrl ; //이전 url 
	private String 	reserveYn ; //예약문자 여부
	private String 	reserveCYn ; //예약문자 취소 여부
	private String cancelDate;	//예약 취소 일자
	
	
	private String 	sendRate; // 전송 배분률
	private float 	sendRateInfo; // 전송 배분 현황
	
	private String  ntceBgnde;		// 검색일(현시점 범위 검색은 아님) : 04-21
	private String  ntceEndde;		// 검색일(현시점 범위 검색은 아님) : 04-21
	private String[] imgFileId;		//이미지 atchId 배열
	private String imgFileIdAdvc;		//이미지 atchId 배열
	private String[] templateYn;	//템플릿 이미지 사용 여부
	private String templateYnAdvc;	//템플릿 이미지 사용 여부
	
	private String divideChk;		//분할문자 사용 여부
	private String divideCnt;		//분할문자 건수 
	private String divideTime;		//분할문자 간격 
	private String befCash;			//문자전송 이전 가지고 있는 캐시
	private String befPoint;		//문자전송 이전 가지고 있는 포인트
	private String thisPoint;		//문자전송 잔액 있는 포인트
	private String recommId; 		//추천인 아이디 정보
	
	private String[] nameList; 		// '치환 이름 리스트'
	private String[] rep1List; 		// '치환 문자1 리스트'
	private String[] rep2List; 		// '치환 문자2 리스트'
	private String[] rep3List; 		// '치환 문자3 리스트'
	private String[] rep4List; 		// '치환 문자4 리스트'
	
	private String 	startDate, endDate ; //사용자 페이지 날자 조회
	private String maxRegDate; // 최근 등록일자
	private String minRegDate; // 최초 등록일자
	private String regDate; // 등록일자
	private int phoneNumberCnt; 
	private String phmAuthType; //'인증타입(01:휴대폰번호등록, 02:(일반)유선번호등록 , 03:서류인증요청)',
	private String refundYn; 	//문자전송 실패시 환불처리 완료 여부
	
	private String filePath1;	//그림이미지1 경로
	private String filePath2;	//그림이미지2 경로
	private String filePath3;	//그림이미지3 경로
	
	private String smiId;		//스팸 이용정지 문자 내용 아이디(mj_spam_member_info 테이블)
	
	private String smishingYn;		// 스미싱 의심여부
	
	private List<String> dividDay;
	
	private String userNm;
	private String mbtlnum;
	private String emailAdres;
	private String authorCode;
	
	private String adminSmsNoticeYn;
	private String searchAdminSmsNoticeYn;
	private String searchExceptSpamYn;

	private String eventYn; //이벤트 
	private String payCnt;	//결제수
	private String payPct; //결제율
	
	private String spamKeyword; 	//스팸 키워드
	private String spamMsgGroupId; 	//스팸문자 문자전송 아이디
	private String spamStatus="N";		//스팸문자 유무 (Y/N)
	private String vipYn;			//VIP 유무 (Y/N)
	private String approvalPnttm;	// 승인일자
	private String atchFiles; 		// 그림문자 파일정보
	
	private String reserveType; // 전송완료 : D,  예약전송 : R
	private String todayYn;
	private String nowDate;
	private String  msgDiv;		// S: 단문, L: 장문, P: 그림
	private Float agentPrice;
	
	private float smsPrice;		// sms 단가
	private float mmsPrice;		// mms 단가
	private float kakaoAtPrice;	// 카카오 알림톡 단가
	private float kakaoFtPrice;	// 카카오 친구톡 단가
	private float kakaoFtImgPrice;// 카카오 이미지 단가
	private float kakaoFtWideImgPrice; // 카카오 와이드 이미지 단가
	
	
	private String kakaoSubMagOrgnlTxt = ""; // 카카오 대체문자 오리지널 문자 내용
	
	private String myNameFlag; //발신번호 등록 개인 본인명의 여부
	
	private String statDate;
	
	private String mberSttus;	//회원 가입 상태 값

	
	private String searchMsgResultCode;	// 발송결과 검색필터
	private String reqFullDate;
	private String blineCode;
	
	private String sendKind; //문자전송 타입(H:홈페이지, A:API)
	
	private int aSuccessCount;		// API 문자발송 성공건수
	private int aSendCount;			// API 문자 발송건수
	
	private int totalSendCount;			// 전체 문자발송 건수
	private int totalSuccessCount;		// 전체 문자발송 성공건수
	
	private int rateTotalSuccessCount;	// 전체 문자발송 성공율
	private int rateSuccessCount;		// 홈페이지 전송 성공율
	private int rateApiSuccessCount;	// API 전송 성공율
	
	private int smsGroupSCntSum;		// sms 성공(건)
	private int smsTotSPriceSum;		// sms 성공(금액)
	private int smsGroupFWCntSum;		// sms 실패대기(건)
	private int smsTotFWPriceSum;		// sms 실패대기(금액)
	
	private int lmsGroupSCntSum;		// lms 성공(건)
	private int lmsTotSPriceSum;		// lms 성공(금액)
	private int lmsGroupFWCntSum;		// lms 실패대기(건)
	private int lmsTotFWPriceSum;		// lms 실패대기(금액)
	
	private int mmsGroupSCntSum;		// mms 성공(건)
	private int mmsTotSPriceSum;		// mms 성공(금액)
	private int mmsGroupFWCntSum;		// mms 실패대기(건)
	private int mmsTotFWPriceSum;		// mms 실패대기(금액)
	
	private int shtSendCount;
	private int longSendCount;
	private int pictSendCount;
	private int atSendCount;
	private int ftSendCount;
	private int faxSendCount;
	
	private String searchDelayMsgYn;

	private int succSendCnt;
	private int failSendCnt;
	private double succSendPrice;
	private double failSendPrice;
	private String totSuccSendPrice;
	
	private String bookmarkYn = "N";
	
	private String cancelResultYn = "";	//야간스미싱 알림에 따른 관리자 결과(회원이용정지 또는 문자발송 취소) 처리 여부 N:미처리, Y:처리완료
	
	private String admSmsImgAuto = "N"; //관리자 SMS 문자내용 자동 이미치 처리 유무

	private String visitCnt;	// 방문수
	private String memCnt;		// 회원수
	private String conversRate;	// 방문자수 대비 회원전환률
	
	
	
	private String registPnttm;	//통계등록일시
	


	private String resultCode;	//문자 결과 코드 정보
	private String resultCode2;	//문자 결과 코드 정보
	
	private String resultCodeTxt;	//문자 결과 코드 정보
	private String txtReplYn;		//변환문자 유무
	private String sPrice;			//단문문자 개별단가
	private String mPrice;			//장문문자 개별단가
	private String pPrice;			//그림문자 개별단가
	private String p2Price;			//그림문자2 개별단가
	private String p3Price;			//그림문자3 개별단가
	private String shortMsgCnt;
	private String longMsgCnt;
	
	private String atchFileId1;		//첨부파일 아이디1
	private String atchFileId2;		//첨부파일 아이디2
	private String atchFileId3;		//첨부파일 아이디3
	
	private String atchFileSn1;		//첨부파일 Sn1
	private String atchFileSn2;		//첨부파일 Sn2
	private String atchFileSn3;		//첨부파일 Sn3
	
	private String msgTypeName;		// 문자 구분명
	private int sendCount;			// 문자 발송건수
	private double supplyPrice;		// 공급가액
	private double vatPrice;		// 부가세
	private double totalPrice;		// 금액
	private String addVatType;		// 부가세 포함 여부
	
	private String addrGrpId;		// 주소록 그룹아이디
	private String addrGrpNm;		// 주소록 그룹명
	
	private String msgGroupSCnt;
	private String MsgGroupFWCnt;
	private String totSPrice;
	private String totFWPrice;
	
	private String msgGroupSCntSum;
	private String MsgGroupFWCntSum;
	private String totSPriceSum;
	private String totFWPriceSum;
	private String resultLogUpdtPnttm;

	private int successCount;		// 문자발송 성공건수
	private int callRejectionCount;	// 번호도용 문자차단 서비스로 착신거절 오류 수 
	private String callbackYn;		// 번호도용 문자차단 서비스로 인한 발송실패 문자알림 여부(N:미알림, Y:알림)
	private String userCallbackYn;
	private String delayYn;			// 문자 30분 지연 처리 유무
	private String delayCompleteYn; // 문자 30분 지연 처리 완료 유무
	
	private String atDelayYn = "N";			// 알림 30분 지연 처리 유무
	private String atDelayCompleteYn;	// 알림톡 30분 지연 처리 완료 유무
	private String atSmishingYn;		// 알림톡 스메싱 여부
	
	private int totalCallCnt;	//수신자 전체 갯
	
	private String bizLogCallStatus;	//다우기술 biz_log 테이블의 발송결과 코드 값.
	private String bizLogCallStatusCode;	//다우기술 biz_log 테이블의 발송결과 코드 값 성공/실패/대기 코드값 변환(성공:S, 대기:W, 실패:F).
	private String bizLogCallStatusTxt;	//다우기술 biz_log 테이블의 발송결과 내용 텍스트.
	private String bizLogStatus;		//다우기술 biz_log 테이블의 전송상태값 

	private String  accessKey; // 'API Key',

	private int regCount;
	
	private int regComCount;
	
	private int orderByCode;		// 문자타입 정렬번호
	
	private String detailType;

	private List<MjonMsgSendVO> mjonMsgSendVOList = new ArrayList<>();

}
