package com.jiayue.ssi.constant;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

/**
 * 缓存的key 常量
 *
 * @author ruoyi
 */
public class CacheConstants {
    /**
     * 登录用户 redis key
     */
    public static final String LOGIN_TOKEN_KEY = "login_tokens:";

    /**
     * 验证码 redis key
     */
    public static final String CAPTCHA_CODE_KEY = "captcha_codes:";

    /**
     * 邮箱口令 key
     */
    public static final String MAIL_CODE_KEY = "mail_codes:";

    /**
     * 参数管理 cache key
     */
    public static final String SYS_CONFIG_KEY = "sys_config:";

    /**
     * 字典管理 cache key
     */
    public static final String SYS_DICT_KEY = "sys_dict:";

    /**
     * 防重提交 redis key
     */
    public static final String REPEAT_SUBMIT_KEY = "repeat_submit:";

    /**
     * 限流 redis key
     */
    public static final String RATE_LIMIT_KEY = "rate_limit:";

    /**
     * 登录账户密码错误次数 redis key
     */
    public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
    /**
     * 登录token存储，map<用户名，token:授权时间>
     */
    public static Map<String,String> LOGIN_TOKEN_MAP = new ConcurrentHashMap<String,String>();
    /**
     * 是否使用邮箱口令 默认：true使用
     */
    public static boolean use_send_mail = true;

    /**
     * ip黑名单缓存
     */
    public static ConcurrentMap<String, Long> blacklistMap = new ConcurrentHashMap<>();

    /**
     * 用户名对应明文密码缓存
     */
    public static ConcurrentMap<String, String> usernamePasswordMap = new ConcurrentHashMap<>();
}
