package com.eactive.eai.common.util;

import org.apache.commons.lang3.StringUtils;

/** 
* 1. 기능 : EAI서버 Rule 정보를 DB로 부터 로딩해 메모리에 관리하는 Manager 클래스
* 2. 처리 개요 : DB Rule 정보에 저장된 필드 추출 Rule 정보를 메모리에 로딩 관리한다.
* 3. 주의사항 
*
* @author  : 
* @version : v 1.0.0
* @see : 관련 기능을 참조
* @since   : 
*  : 
*/
public class SystemUtil 
{ 

    public static final String EAI_SYSTEMMODE = "eai.systemmode";
    private static final String EAI_PRODUCT           = "P";
    private static final String EAI_STAGING			  = "T";
    private static final String EAI_DEVELOP           = "D";
    
    //시스템 운영환경 구분코드
    private static final String SYSOPEREVIRNDSTCD_PRODUCT = "P";
    private static final String SYSOPEREVIRNDSTCD_STAGING = "T";
    private static final String SYSOPEREVIRNDSTCD_DEVELOP = "D";
    
    

    public static boolean isProdServer() {
    	String systemMode = System.getProperty(EAI_SYSTEMMODE);

    	if (EAI_PRODUCT.equals(systemMode)){
    		return true;
    	}else{
    		return false;
    	}
    }
    public static boolean isDevServer() {
    	String systemMode = System.getProperty(EAI_SYSTEMMODE);

    	if (EAI_DEVELOP.equals(systemMode)|| "".equals(systemMode)){
    		return true;
    	}else{
    		return false;
    	}
    }    
    
    public static boolean isStagingServer() {
    	String systemMode = System.getProperty(EAI_SYSTEMMODE);

    	if (EAI_STAGING.equals(systemMode)){
    		return true;
    	}else{
    		return false;
    	}
    }
    public static String getSysOperEvirnDstcd(){
    	if (isProdServer()){
    		return SYSOPEREVIRNDSTCD_PRODUCT;
    	} else if (isStagingServer()){
    		return SYSOPEREVIRNDSTCD_STAGING; 
    	} else if (isDevServer()){
    		return SYSOPEREVIRNDSTCD_DEVELOP;
    	}
    	return "";
    }
    
    public static String getSystemModeTitle(){
    	String systemModeTitle = System.getProperty("systemModeTitle", "");
    	if(StringUtils.isBlank(systemModeTitle)){
	    	if (SystemUtil.isDevServer()){
	    		systemModeTitle = "개발";
	    	}else if(SystemUtil.isStagingServer()){
	    		systemModeTitle = "스테이징";
//	    		systemModeTitle = "테스트";	
	    	}else if(SystemUtil.isProdServer()){
	    		systemModeTitle = "운영";	
	    	}
    	}
    	if(StringUtils.isNotBlank(systemModeTitle)){
    		systemModeTitle = "["+systemModeTitle+"] ";
    	}
    	return systemModeTitle;
    }

}

