package com.CUST.brain.common.constant;

/**
 * Redis缓存key常量
 */
public class RedisKeyConstants {

    /**
     * 用户相关缓存key前缀
     */
    public static final String USER_PREFIX = "user:";
    
    /**
     * 用户token缓存key
     */
    public static final String USER_TOKEN = USER_PREFIX + "token:%s";
    
    /**
     * 用户信息缓存key
     */
    public static final String USER_INFO = USER_PREFIX + "info:";
    
    /**
     * 用户角色缓存key
     */
    public static final String USER_ROLES = USER_PREFIX + "roles:";
    
    /**
     * 用户权限缓存key
     */
    public static final String USER_PERMISSIONS = USER_PREFIX + "permissions:";
    
    /**
     * 系统相关缓存key前缀
     */
    public static final String SYS_PREFIX = "sys:";
    
    /**
     * 系统用户缓存key
     */
    public static final String SYS_USER = SYS_PREFIX + "user:";
    
    /**
     * 系统角色缓存key
     */
    public static final String SYS_ROLE = SYS_PREFIX + "role:";
    
    /**
     * 系统权限缓存key
     */
    public static final String SYS_PERMISSION = SYS_PREFIX + "permission:";
    
    /**
     * 分布式锁key前缀
     */
    public static final String LOCK_PREFIX = "lock:";
    
    /**
     * 验证码缓存key前缀
     */
    public static final String CAPTCHA_PREFIX = "captcha:";
    
    /**
     * 限流缓存key前缀
     */
    public static final String RATE_LIMIT_PREFIX = "rate:limit:";
    
    /**
     * 业务相关缓存key前缀
     */
    public static final String BUSINESS_PREFIX = "business:";
    
    /**
     * 人才信息缓存key
     */
    public static final String TALENT_INFO = BUSINESS_PREFIX + "talent:info:";
    
    /**
     * 企业信息缓存key
     */
    public static final String ENTERPRISE_INFO = BUSINESS_PREFIX + "enterprise:info:";
    
    /**
     * 项目信息缓存key
     */
    public static final String PROJECT_INFO = BUSINESS_PREFIX + "project:info:";
    
    /**
     * 系统参数相关
     */
    public static final String PARAM_TYPE = SYS_PREFIX + "param:type:";
    public static final String PARAM_VALUES = SYS_PREFIX + "param:values:";
    public static final String PARAM_LIST = SYS_PREFIX + "param:list:";
    
    /**
     * 角色权限相关
     */
    public static final String ROLE_PERMISSIONS = SYS_ROLE + "permissions:%s";
    public static final String ROLE_INFO = SYS_ROLE + "info:%s";
    public static final String PERMISSION_INFO = SYS_PERMISSION + "info:%s";
    
    /**
     * 人才信息相关
     */
    public static final String TALENT_BASIC = BUSINESS_PREFIX + "basic:%s";
    public static final String TALENT_LIST = BUSINESS_PREFIX + "list:%s";
    public static final String TALENT_UNIT = BUSINESS_PREFIX + "unit:%s";
    
    /**
     * 项目相关
     */
    public static final String PROJECT_LIST = BUSINESS_PREFIX + "list:%s";
    
    /**
     * 系统配置
     */
    public static final String SYS_CONFIG = SYS_PREFIX + "config:%s";
    
    /**
     * 用户菜单缓存前缀
     */
    public static final String USER_MENUS = USER_PREFIX + "menus:";

    /**
     * Token黑名单前缀
     */
    public static final String TOKEN_BLACKLIST = USER_PREFIX + "token:blacklist:";
    
    private RedisKeyConstants() {
        throw new IllegalStateException("Constant class");
    }
} 