package kr.co.uplus.ez.common.data;

import java.util.Arrays;
import java.util.List;

public class Const {

	/** Yes.*/
	public static final String COMM_YES = "Y";
	/** No.*/
	public static final String COMM_NO = "N";

	public static final String CODE_VALUE_02 = "02";		// 코드값 02
	public static final String AUTH_TP_CD = "01";			// 어드민 로그인
	public static final String AUTH_STTUS_CD_01 = "01";	// 인증대기
	public static final String AUTH_STTUS_CD_02 = "02";	// 인증완료
	public static final String AUTH_STTUS_CD_03 = "03";	// 인증Lock

	public static final String AUTH_CD_ADMIN = "1001";
	public static final String AUTH_CD_AGENCY = "1002";

	// paging
	public static final String TOTAL_CNT = "totalCnt";
	public static final String CURRENT_PAGE = "currentPage";

	//
	public static final String KEY_MDC_LOG = "logKey";
	public static final String KEY_LOG_OBJ = "logObj";
	public static final String KEY_LOAD_USER = "loadUser"; // UserDetailsService에서 로딩하는 사용자정보
	public static final String KEY_TOKEN_EXIST = "jwtTokenExist";

	//
	public static final String TLO_LOGGER = "tloLogger";
	public static final List<String> NOT_LOG_PARAMS = Arrays.asList("userPwd", "curPwd", "newPwd", "cfmPwd");

	//
	public static final int SESSION_EXPIRED = 418;

	// 정책
	public static final int PWD_EXPIRE_DAYS = 90; // 비밀번호 만료기간 (일)
	public static final int MAX_LOGIN_FAIL = 5; // 5회 로그인 실패하면 계정 잠김
	public static final int AUTHNUM_EXPIRE_MINS = 3; // 인증번호 만료기간 (분)
	public static final int MAX_AUTHNUM_FAIL = 5; // 5회 인증번호 검증 실패하면 발행 잠김
	public static final int AUTHNUM_LOCK_EXPIRE_MINS = 30; // 인증번호발행 잠김 만료기간 (분)


	// 이용자 상태 코드(01:정상, 02:사용중지)
	/** 이용자 상태 코드(01:정상).*/
	public static final String USER_STTUS_CD_NOMAL = "01";
	/** 이용자 상태 코드(02:사용중지).*/
	public static final String USER_STTUS_CD_STOP = "02";

	// 이용자 유형 코드(01:관리자ID, 02: 사용자ID, 03:테스트ID)
	/** 이용자 유형 코드(01:관리자).*/
	public static final String USER_TP_CD_ADM = "01";
	/** 이용자 유형 코드(02:사용자ID).*/
	public static final String USER_TP_CD_USR = "02";
	/** 이용자 유형 코드(03:테스트ID).*/
	public static final String USER_TP_CD_TEST = "03";


	// 발송라인타입코드(NORMAL : 일반,  REAL:실시간,  BATCH:배치)
	/** 발송라인타입코드(NORMAL : 일반).*/
	public static final String LINE_TP_CD_NORMAL = "NORMAL";
	/** 발송라인타입코드(REAL:실시간).*/
	public static final String LINE_TP_CD_REAL = "REAL";
	/** 발송라인타입코드(BATCH:배치).*/
	public static final String LINE_TP_CD_BATCH = "BATCH";

	/** 사용자 권한 (H001	관리자).*/
	public static final String USER_AUTCD_ADM = "H001";
	/** 사용자 권한 (H002	사용자).*/
	public static final String USER_AUTCD_USR = "H001";
	/** 사용자 권한 (H003	비로그인).*/
	public static final String USER_AUTCD_NO_LOGIN = "H003";
	/** 사용자 권한 (H004	테스트ID).*/
	public static final String USER_AUTCD_TESTER = "H004";
	
	// 가입 상태 코드(01:대기, 02:정상, 03:일시정지, 04:미납정지, 98:취소, 99:해지)
	/** 가입 상태 코드(01:대기) */
	public static final String SUBS_STTUS_CD_WAIT = "01";
	/** 가입 상태 코드(02:정상) */
	public static final String SUBS_STTUS_CD_NORMAL = "02";
	/** 가입 상태 코드(03:일시정지) */
	public static final String SUBS_STTUS_CD_PAUSE = "03";
	/** 가입 상태 코드(04:미납정지) */
	public static final String SUBS_STTUS_CD_NON_PAY = "04";
	/** 가입 상태 코드(98:취소) */
	public static final String SUBS_STTUS_CD_CANCEL = "98";
	/** 가입 상태 코드(99:해지) */
	public static final String SUBS_STTUS_CD_BREAK = "99";

	/** 통신서비스 이용증명원 */
	public static final String SNDRNO_DOC_TP_CD_01 = "01";
	/** 재직증명서 */
	public static final String SNDRNO_DOC_TP_CD_02 = "02";
	/** 위임-수임사간 관계 확인 문서 */
	public static final String SNDRNO_DOC_TP_CD_03 = "03";
	/** 위임장 */
	public static final String SNDRNO_DOC_TP_CD_04 = "04";
	/** 삭제처리 */
	public static final String SNDRNO_DOC_TP_CD_05 = "05";
	/** 사업자등록증 */
	public static final String SNDRNO_DOC_TP_CD_06 = "06";
	/** 사업자등록증(타사) */
	public static final String SNDRNO_DOC_TP_CD_07 = "07";
	/** 위임사 신분증(임직원 신청시) */
	public static final String SNDRNO_DOC_TP_CD_08 = "08";
	/** 위임사 재직증명서(임직원 신청시) */
	public static final String SNDRNO_DOC_TP_CD_09 = "09";
	/** 위임사 사업자등록증 */
	public static final String SNDRNO_DOC_TP_CD_10 = "10";
	/** 수임사 사업자등록증 */
	public static final String SNDRNO_DOC_TP_CD_11 = "11";
	/** 법인인감증명서 */
	public static final String SNDRNO_DOC_TP_CD_12 = "12";
	/** 신분증 (본인확인) */
	public static final String SNDRNO_DOC_TP_CD_13 = "13";
	/** 재직증명서(본인확인) */
	public static final String SNDRNO_DOC_TP_CD_14 = "14";
	/** 수임사 대리인 재직증명서(임직원 신청시) */
	public static final String SNDRNO_DOC_TP_CD_15 = "15";
	/** 수임사 대리인 신분증(임직원 신청시) */
	public static final String SNDRNO_DOC_TP_CD_16 = "16";

	public static final String SNDRNO_TP_CD_SELF = "01";
	public static final String SNDRNO_TP_CD_OTHER = "02";

	public static final String INCH_DIV_CD_HOME = "01";
	public static final String INCH_DIV_CD_ADM = "02";

	public static final String NMINEE_DIV_CD = "01";
	public static final String NMINEE_DIV_CD_OTHER = "02";

	public static final String SNDRNO_REQ_STTUS_CD_WAITING = "01";
	public static final String SNDRNO_REQ_STTUS_CD_COMPLETED = "02";

	public static final String SNDRNO_STTUS_CD_APPR = "01";
	public static final String SNDRNO_STTUS_CD_COMPLETED = "02";
	public static final String SNDRNO_STTUS_CD_REJECT = "03";
	
	/** 한도초기화 하기 위한 주문 유형 코드 (01:발송차감, 02:차감결과처리, 03:한도초기화, 04:이월금소멸) */
	public static final String ORDER_TYPE_CD_03 = "03";	
	
	/** 한도 차감 상세 - 한도유형 코드(01:정액, 02:종량) */
	public static final String LMTDCT_DTL_TYPE_CD_01 = "01";	
	/** 한도 차감 상세 - 차감 유형 코드 (01:차감, 02:소멸, 03:복원, 04:충전) */
	public static final String LMTDCT_DTL_DDCT_TYPE_CD_04 = "04";
	
	
	/** 배치 결과 */
	public static final String BATCH_MSG_SUCCESS = "SUCCESS";
	public static final String BATCH_RESULT_SUCCESS = "S";
	public static final String BATCH_RESULT_FAIL = "F";
	
	
	public static final String TMPL_CODE_005	= "E0005"; //U+메시지허브이지 이메일 인증
	public static final String TMPL_CODE_007	= "E0007"; //발신번호 반려 메일
	
	/*********************************************************************************
	 * 발송채널 코드, 발송클라이언트 요청상품코드
	 *********************************************************************************/
	public static final String SND_CH_SMS = "SMS";
	public static final String SND_CH_LMS = "LMS";
	public static final String SND_CH_MMS = "MMS";
	public static final String SND_CH_ALIMTALK = "ALIMTALK";

	public static final String REQ_PRODUCT_SMS = "SMS";
	public static final String REQ_PRODUCT_LMS = "LMS";
	public static final String REQ_PRODUCT_MMS = "MMS";
	public static final String REQ_PRODUCT_KKO_NOTI = "KKO_NOTI";
	
	/* 테이블명 */
	public static class TableName {
		public static final String EZ_MSG_NORMAL 	= "EZ_MSG_NORMAL"; 	//일반
		public static final String EZ_MSG_REAL 		= "EZ_MSG_REAL"; 	//실시간보장
		public static final String EZ_MSG_BATCH 	= "EZ_MSG_BATCH"; 	//예약
	}
	
	/* 라인유형 */
	public static class LineTpCd {
		public static final String LINE_TP_NORMAL 	= "normal"; //일반
		public static final String LINE_TP_REAL 	= "real"; 	//실시간보장
		public static final String LINE_TP_BATCH 	= "batch"; 	//예약
	}
	
	/* 알림이력 */
	public static final String NOTI_DIV_CD_01 = "01"; // 종량전환알림
	public static final String NOTI_DIV_CD_02 = "02"; // 이월소멸예정알림
	public static final String NOTI_DIV_CD_03 = "03"; // 이월소멸알림
	public static final String NOTI_DIV_CD_04 = "04"; // 충전금알림
	public static final String NOTI_DIV_CD_05 = "05"; // 발신번호반려알림
	public static final String NOTI_DIV_CD_06 = "06"; // 알림톡템플릿반려알림
	
}
