package com.eactive.eai.rms.common.util;

import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;

public class CommonConstants {
    
    /**
     * 프라퍼티값 리스트를 STRING 으로 변환하기위한 구분자 및 정규식 표현.
     * split(PROP_SEP_REGEX)
     */
    public static final String PROP_SEP = "|=|";
    public static final String PROP_SEP_REGEX = "\\|=\\|";

    /**
     * 대외, 내부, 공동망을 구분 하는 Key 값
     */
    public static final String SERVICE_TYPE_KEY = "SERVICE_TYPE";

    // 애플리케이션 서버 구분명
    // 설정(개발:D, 테스트:T, 온라인:O)
    public static String SERVER_TYPE = "";
    // DB datasource명 정의
    // DB 구분(개발, 테스트, 온라인)
    public static final String DB_MANAGE_TYPE_D = "D"; // 개발DB
    public static final String DB_MANAGE_TYPE_T = "T"; // 테스트DB
    public static final String DB_MANAGE_TYPE_S = "S"; // 테스트DB 
    public static final String DB_MANAGE_TYPE_P = "P"; // 온라인DB


    // 업무유형 테이블 명(이 테이블은 각 테이블 스키마별로 있는 업무유형 테이블을 Merge한 테이블임)
    public static final String TSEAICM01 = "TSEAICM01";

    // 대시보드 메뉴 아이디 정의
    public static final String MENUID_DASHBOARD = "DASHBOARD";


    // 데이타 처리 구분코드
    // 데이타 등록/수정(Upsert)
    public static final String DATA_EXCUTE_U = "U";

    // 데이타 삭제(Delete)
    public static final String DATA_EXCUTE_D = "D";

    // 변경관리 메타정보 테이블의 데이타 용도 구분코드
    // 테스트 DB 백업 데이타인 경우
    public static final String TEST_META_DATA = "T";

    // 온라인 DB 백업 데이타인 경우
    public static final String ONLINE_META_DATA = "O";

    // 신규(변경할) DB 데이타인 경우
    public static final String NEW_META_DATA = "N";

    // 세션에 정의된 사용자 명을 나타내는 Key명
    public static final String USER_NAME = "USER_NAME";

    // 세션에 정의된 사용자 roleID Key명
    public static final String USER_ROLEID = "USER_ROLEID";

    // 세션에 정의된 부서명을 나타내는 Key명
    public static final String DVSN_NAME = "DVSN_NAME";

    // 세션에 정의된 메뉴아이디명
    public static final String MENUID = "MENUID";
   
    // 신대시보드 인덱스 페이지 메뉴 권한관리를 위해 추가
    // 모니터링
    public static final String DASH_MENU_MONITOR  = "DASH_MENU_MONITOR";
    
    // 거래정보
    public static final String DASH_MENU_TRAN  = "DASH_MENU_TRAN";

    // 구성관리
    public static final String DASH_MENU_RULE  = "DASH_MENU_RULE";

    // 페이징 관련(한 페이지에 보여질 목록수)
    public static final int DISPLAY_COUNT = 30;

    // EAI 승인자
    public static final String EAI_APPROVER = "eai_approver";

    // EAI 운영자
    public static final String EAI_MANAGER = "eai_manager";

    // Rule 개발자
    public static final String DEPT_DEVELOPER = "dept_developer";

    // Rule 승인자
    public static final String DEPT_APPROVER = "dept_approver";

    // 화면 position 의 root명
    public static final String POSITION_ROOT = "";

    // 레이아웃 유형 등록시 기본 패키지
    public static final String GEN_HEADER = "com.eactive.eai.transformer.message.generator.";

    // null 이거나 공백인 컬럼값을 대체하는 더미 데이타(승인 처리시 백업 데이타가 공백이거나 널일 경우 이 값으로 대체하여 디비에
    // 저장함)
    public static final String DUMMY = "$$DUMMY$$";

    // 업무구분코드가 null 이거나 공백인 경우 대체하는 더미 데이타(승인 요청시 해당 파라미터를 넘길때 사용)
    public static final String DUMMY_CODE = "DUMMY";

    // 해쉬맵에 담길때, 해당 데이타값이 데이블명임을 나타내는 Key명(승인 처리시 캐쉬데이타 리로딩할때 넘기는 백업된 메타정보들의 각각의
    // 테이블명을 이 키명으로 저장하여 넘김)
    public static final String TABLE_NAME = "$TABLE_NAME$";

    // approveService를 나타내는 서비스 빈 명
    public static final String APPROVE_SERVICE = "approveService";
   
    /**
     * 기타 시스템에서 사용한 {@link DataSourceContextHolder#getDataSourceType()} 의 스키마 명
     * 의 값이 ibatis에 바인딩 될 schemaid의 바인딩 변수 명
     */
    public static final String schemaId_KEY = "schemaId";

    public static final String loginId_KEY = "loginId";
    
    public static final String LOGIN ="login";
    
    public static final String USER_SERVICETYPE_NO_CHECK = "NO_CHECK";
    
    public static final String ROLLING_SUFFIX = "rollingSuffix";
    
    // 사용자 서비스 타입 기본값 : APIGW
    public static final String 	USER_SERVICE_TYPE_APIGW = "APIGW";
    public static final String 	CHANGE_TYPE_ATHR = "ATHR";
    public static final String 	CHANGE_TYPE_ROLE = "ROLE";
    public static final String 	SYSTEM = "SYSTEM";
}