package com.hotent.base.constants;

import com.hotent.base.cache.setting.CacheSetting;

/**
 * 缓存key 管理
 * @author liyg
 *
 */
public interface CacheKeyConst {

	/**
	 * 用户菜单缓存key
	 */
	String EIP_SYS_USERMENU = "eip:sys:userMenu";

	/**
	 * 后台方法和角色的关系
	 * 在对资源授权时操作时需要清空方法和角色的缓存
	 */
	String EIP_SYS_METHOD_AUTH_KEY = "SYS_METHOD_ROLE_AUTH";
	String EIP_SYS_METHOD_AUTH = "eip:sys:methodAuth";

	/**
	 * 系统日志配置的缓存key 是否开始保存日志
	 * SYS_LOGS_SETTING_STATUS + 微服务名称
	 */
	String EIP_SYS_LOGS_SETTING_STATUS_KEY = "SYS_LOGS_SETTING_STATUS";
	String EIP_SYS_LOGS_SETTING_STATUS = "eip:sys:logsSettingStatus";

	/**
	 * 系统日志配置的缓存key  保留天数
	 * SYS_LOGS_SETTING_SAVE_DAY + 微服务名称
	 */
	String EIP_SYS_LOGS_SETTING_DAY_KEY = "SYS_LOGS_SETTING_SAVE_DAY";
	String EIP_SYS_LOGS_SETTING_DAY = "eip:sys:logsSettingDay";


	/**
	 * 系统数据权限缓存key
	 */
	String EIP_SYS_DATA_PERMISSION_KEY = "DATA_PERMISSION";
	String EIP_SYS_DATA_PERMISSION = "eip:sys:dataPermission";

	/**
	 * uc模块中按照用户账号缓存数据
	 */
	String EIP_UC_USER_ACCOUNT = "eip:uc:userAccount";

	String EIP_UC_COUSTOM = "eip:uc:custom";

	/**
	 * 用户的组 EIP_UC_USER_GROUPS + userId 如果当前用户的组有变更需要清空改换成
	 */
	String EIP_UC_USER_GROUPS = "eip:uc:userGroups";

	/**
	 * uc-api-impl模块中按照用户账号缓存数据
	 */
	String EIP_UC_USER_NAME = "eip:uc:userName";
	/**
	 * uc-api-impl模块中按照用户ID缓存数据
	 */
	String EIP_UC_USER_ID = "eip:uc:userId";

	/**
	 * 用户的主组织
	 */
	String EIP_UC_USER_MAIN_ORG = "eip:uc:userMainOrg";


	/**
	 * 用户的token
	 */
	String EIP_UC_USER_TOKEN = "eip:uc:userToken";

	String EIP_UC_CUSTOM_TOKEN = "eip:uc:customToken";
	/**
	 * 用户的主组织
	 */
	String EIP_UC_USER_POST= "eip:uc:userPost";


	/**
	 * 国际化资源语种key
	 */
	String EIP_I18N_MESSAGE_TYPE_KEY = "I18N_MESSAGE_TYPE";
	/**
	 * 国际化资源语种
	 */
	String EIP_I18N_MESSAGE_TYPE = "eip:i18n:messageType";

	/**
	 * 国际化资源
	 */
	String EIP_I18N_RESOURCES = "eip:i18n:resources";
	CacheSetting EIP_I18N_RESOURCES_CACHESETTING = CacheSetting.buildDefault("国际化资源");

	/**
	 * 数据脱敏规则
	 */
	String EIP_SYS_DATA_SENSITIVE = "eip:sys:dataSensitive";

	/**
	 * 系统属性
	 */
	String EIP_SYS_PROPS = "eip:sys:props";

	/**
	 * 应用中心用户权限菜单
	 * */
	String EIP_SYS_APP_AUTH_MENU = "eip:sys:appAuthMenu";


	/**
	 * 流程定义对象缓存key
	 */
	String EIP_BPM_PROCESS_DEF ="eip:bpm:processDef";

	/**
	 * activiti流程对象缓存key
	 */
	String EIP_BPM_PROCESS_ENTITY ="eip:bpm:processEntity";

	/**
	 * 流程定义对象缓存key
	 */
	String EIP_BPM_DEFINITION ="eip:bpm:definition";

	/**
	 * 流程定义BPMN_ID缓存key
	 */
	String EIP_BPM_DEFINITION_BPMN_ID ="eip:bpm:definitionBpmnId";


	/**
	 * 流程定义FLOW_KEY 缓存key
	 */
	String EIP_BPM_DEFINITION_FLOW_KEY ="eip:bpm:definitionFlowKey";


	/**
	 * 流程定义导入xml缓存key
	 */
	String EIP_BPM_IMPORT_FILE ="eip:bpm:importFile";



	/**
	 * 流程表单缓存key
	 */
	String EIP_FORM_BPM_FORM ="eip:form:bpmForm";

	/**
	 * 流程url表单缓存key
	 */
	String EIP_FORM_URL_FORM ="eip:form:urlForm";

	String EIP_FORM_DATATEMPLATE_IMPORT_FILE="eip:form:datatemplateImportFile";

	String EIP_FORM_IMPORT_FILE="eip:form:importFile";

	String EIP_FORM_PRINTTEMPLATE_IMPORT_FILE="eip:form:printtemplateImportFile";
	/**
	 * 表单预览
	 */
	String EIP_FORM_PREVIEW_CONTENT="eip:form:previewContent";
	/**
	 * 流程表单缓存key
	 */
	String EIP_FORM_BODEF_ALIAS ="eip:form:boDefAlias";

	/**
	 * 数据导入缓存
	 */
	String EIP_FORM_DATA_TEMPLATE_IMPORT_CACHE = "eip:form:formDataTemplateImportCache";


	/**
	 * redis 分布式锁前缀
	 */
	String EIP_REDIS_LOCK = "eip:redis:lock";
	/**
	 * 用户门户布局
	 */
	String EIP_PORTAL_INDEX_LAYOUT ="eip:portal:indexLayout";

	String POPUP_REMIND = "eip:portal:popupRemind";

	String EIP_PORTAL_SYSTEM = "eip:portal:system";

	/**
	 * 组织角色缓存
	 */
	String EIP_UC_ORG_ROLE = "eip:uc:orgRole";
	/**
	 * 微信公众号token
	 */
	String EIP_WEIXIN_ACCESS_TOKEN ="eip:weixin:token";

	/**
	 * 当前用户切换的用户组
	 */
	String EIP_UC_CURRENT_USER_GROUP_ID="eip:uc:current_user_group_id";
	/**
	 * 当前用户切换的组织
	 */
	String EIP_UC_CURRENT_USER_ORG_ID="eip:uc:current_user_org_id";
	/**
	 * 外部接口
	 */
	String EIP_SYS_UC_OPEN_API="SYS_UC_OPEN_API";
	/**
	 * 弹窗缓存key
	 */
	String EIP_POPUP_IMPORT_FILE = "eip:popup:importFile";
	/**
	 * 流程模块缓存key
	 */
	String EIP_FLOW_MODULE_IMPORT_FILE = "eip:flow_module:importFile";
	/**
	 * 数据图表缓存key
	 */
	String EIP_CUSTOM_CHART_IMPORT_FILE = "eip:custom_chart:importFile";
	/**
	 * 数据图表缓存key
	 */
	String EIP_SYS_INDEX_LAYOUT_FILE = "eip:sys_index_layout:importFile";
	/**
	 * 流程图表缓存key
	 */
	String EIP_BPM_REPORT_IMPORT_FILE = "eip:bpm_report:importFile";
	/**
	 * 扩展jar包的缓存
	 */
	String BPM_EXTEND_JAR_ID = "bpm:extendJarId";

	/**
	 * 扩展class的缓存
	 */
	String BPM_EXTEND_CLASS_SIMPLENAM = "bpm:extendCalssSimpleName";

	/**
	 * 短信验证码
	 */
	String EIP_LOGIN_VER_CODE= "eip:login:verCode";

	/**
	 * 客户端 安卓版本 缓存名称
	 */
	String EIP_APP_CACHE_NAME= "eip:app";
	/**
	 * 客户端 安卓版本 更新接口
	 */
	String EIP_APP_VESION_ANDROID= "eip:app:vesionAndroid";



	String CAPTCHA_CODE_KEY = "eip:login:captcha:";

	String CAPTCHA_WX_TOKEN_KEY = "eip:login:wxtoken:";
	/**
	 * 验证码有效期（秒）
	 */
	int CAPTCHA_EXPIRATION = 300;


	/**
	 * 微信token 2小时
	 * */
	int WX_TOKEN_EXPIRATION = 7200;

	// 字段加密缓存
	String EIP_UC_FIELD_ENCRYPT = "eip:uc:fieldStrategyEncrypt:";
	// 字段加密/完整性字段统计缓存
	String EIP_UC_BO_ATTR_ENCRYPT_COUNT = "eip:uc:getBoAttrCountByEntTableName:";
	// 字段配置信息列表缓存
	String EIP_UC_BO_ATTR_ENCRYPT_LIST = "eip:uc:getFormBoAttrByEntTableName:";
}
