package kr.co.uplus.ez.api.custMgt.dto;

import java.io.Serializable;

import lombok.Data;

@SuppressWarnings("serial")
@Data
public class WebMsgCliDto implements Serializable{

	/** 테이블명 */
	private String tableName;
	
	/** DB insert시 App에서 생성해서 만듦. format example : datetime + bsiness  name + random string */
	private String clientKey;
	
	/** 문자 : SMS, LMS, MMS, 글로벌SMS : SMS_GLOBAL, RCS : RCS, 카카오톡 : KKO_NOTI (알림톡), KKO_FRIEND (친구톡) */
	private String reqProduct;
	
	/** 메시지 유형 ( 기본값 normal ), real : 실시간 보장 중요한 메시지, normal : 일반, ad : 마케팅, 광고 */
	private String trafficType;
	
	/** req : 발송 대기, sent : 발송완료, complete : 결과 수신 완료, pre-send : select 완료, pre-image : 이미지 등록 작업 중 */
	private String msgStatus;
	
	/** 고객 요청 시간, 미래시간일 경우 예약 */
	private String reqDate;
	
	/** 메시지허브에서 사용하는 템플릿 키 */
	private String templateCode;
	
	/** 동보 발송 묶음 단위, Agent에서 발송 시 multi_key가 동일한 메시지는 묶어서 발송하여 발송 효율을 높입니다. */
	private String sendGroupKey;
	
	/** 문자, RCS 일 때 필수 입력, 발신번호(*특수부가사업자의 경우 필수 아님) */
	private String callbackNumber;
	
	/** KISA 최초발신사업자 구분 코드, 직접고객은 config에 있는 값으로 사용, 재판매고객은 건별 입력으로 사용 */
	private String msgBizKey;
	
	/** 태그, 이벤트, 캠페인 등을 분류하기 위한 용도로 사용 */
	private String tag;
	
	/** 부서코드, 부서별 빌링이 필요한 경우만 사용 */
	private String deptCode;
	
	/** 메시지 내용 (text) */
	private String msg;
	
	/** 수신번호 */
	private String phone;
	
	/** 가변 데이터 */
	private String mergeData;
	
	/** 제목, 대상상품 : LMS/MMS/RCS/PUSH */
	private String title;
	
	/** MMS 파일 절대 경로, ","로 구분되어 N개를 입력할 수 있다. */
	private String fileList;
	
	/** 상품, SMS/LMS/MMS 만 가능 */
	private String fbProduct;
	
	/** fallback 제목 */
	private String fbTitle;
	
	/** fallback 메시지 */
	private String fbMsg;
	
	/** 파일 아이디 단일파일 제공, fallback MMS는 이미지 사전 등록 방식만 제공함 */
	private String fbFileId;
	
	/** 메시지베이스 ID */
	private String rcsMsgbaseId;
	
	/** RCS 메시지 유형, info : 정보성 메시지, ad : 광고성 메시지 */
	private String rcsHeader;
	
	/** 무료수신거부 번호 (header의 값이 광고성일 때 footer 값을 포함하지 않고 발송하면 실패 처리) */
	private String rcsFooter;
	
	/** 사용자의 복사/공유 허용여부, 기본값 Y, Y : 허용, N : 미허용 */
	private String rcsCopyAllowed;
	
	/** 발송 타임아웃 옵션 : 옵션의 시간 만큼 발송을 시도 또는 결과 대기함, 1 : 72시간, 2 :30초 */
	private String rcsExpiryOption;
	
	/*
	 * 대행사 ID, 메시지허브와 직접 계약한 고객은 사용하지 않음, 
	 * 재판매 사업자의 경우 RCS 브랜드 사업자와 RCS 발송 계약을 맺은 1차 대행사의 id를 넣어야 함
	 */
	private String rcsAgencyId;
	
	/** RCS 버튼 Object array */
	private String rcsButton;
	
	/** 카카오톡 발신 프로필키 */
	private String kakaoSenderKey;
	
	/** 알림톡, 친구톡 템플릿 키 */
	private String kakaoTemplateKey;
	
	/** 카카오 버튼 Object array(LMKakaoButton) */
	private String kakaoButton;
	
	/** 친구톡 와이드 이미지 여부(Y/N) */
	private String kakaoImageWideYn;
	
	/** 친구톡 이미지(이미지 URL) */
	private String kakaoImageUrl;
	
	/** 친구톡 이미지(이미지 링크) */
	private String kakaoImageLink;
	
	/** kakao 파일 아이디 */
	private String kakaoFileId;
	
	/** 광고 표기 여부(Y/N) */
	private String kakaoAdFlag;
	
	/** 앱 아이디 */
	private String pushAppId;
	
	/** PUSH 공급자, FCM : 구글, APNS : 애플 */
	private String pushProvider;
	
	/** 앱 사용자 시 사용되는 아이디 */
	private String pushAppUserId;
	
	/** 발송 시간, Agent가 메시지허브로 발송 한 시간 */
	private String sentDate;
	
	/** 성공한 상품 종류, SMS, LMS, MMS, RCS_XXX, KKO_XXX, PUSH */
	private String doneProduct;
	
	/** 단말 전달 시간 or 실패 최종 시간 */
	private String doneDate;
	
	/** 처리 결과 코드, 10000 : 성공 */
	private String doneCode;
	
	/** 처리 결과 상세 */
	private String doneCodeDesc;
	
	/** 대체 발송 처리 상세. json array */
	private String doneFbDetail;
	
	/** 이통사 정보, 발송이 성공이고 채널이 문자, RCS 인 경우만 업데이트 됨 */
	private String doneTelco;
	
	/** 웹요청ID */
	private String webReqId;
	
	/* 승인오더ID */
	private String orderId;
	
	private String tmpltSbst;
	private String tmpltTpCd;
	private String etcInfo;
	private String adMsg;
}
