package com.agileboot.common.core.constant;

/**
 * 通用常量信息
 *
 * @author ruoyi
 */
public interface Constants {

    int KB = 1024;
    int MB = KB * 1024;
    int GB = MB * 1024;

    /**
     * 资源映射路径 前缀
     */
    String RESOURCE_PREFIX = "profile";

    /**
     * UTF-8 字符集
     */
    String UTF8 = "UTF-8";

    /**
     * GBK 字符集
     */
    String GBK = "GBK";

    /**
     * www主域
     */
    String WWW = "www.";

    /**
     * http请求
     */
    String HTTP = "http://";

    /**
     * https请求
     */
    String HTTPS = "https://";

    /**
     * 通用成功标识
     */
    String SUCCESS = "0";
    String NORMAL = "0"; // 正常状态

    /**
     * 通用失败标识
     */
    String FAIL = "1";
    String DISABLE = "1";   // 异常/停用状态

    /**
     * 登录成功
     */
    String LOGIN_SUCCESS = "Success";

    /**
     * 注销
     */
    String LOGOUT = "Logout";

    /**
     * 注册
     */
    String REGISTER = "Register";

    /**
     * 登录失败
     */
    String LOGIN_FAIL = "Error";

    /**
     * 验证码有效期（分钟）
     */
    Integer CAPTCHA_EXPIRATION = 2;

    /**
     * 顶级部门id
     */
    Long TOP_PARENT_ID = 0L;
    /**
     * 超级管理员ID
     */
    Long SUPER_ADMIN_ID = 1L;
    /**
     * 超级管理员角色 roleKey
     */
    String SUPER_ADMIN_ROLE_KEY = "superadmin";

    /**
     * 租户管理员角色 roleKey
     */
    String TENANT_ADMIN_ROLE_KEY = "admin";

    /**
     * 租户管理员角色名称
     */
    String TENANT_ADMIN_ROLE_NAME = "管理员";

    /**
     * 默认租户ID
     */
    String DEFAULT_TENANT_ID = "000000";

    interface Cache {
        /**
         * 全局 redis key (业务无关的key)
         */
        String GLOBAL_REDIS_KEY = "global:";

        /**
         * 登录账户密码错误次数 redis key
         */
        String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
        /**
         * 验证码 redis key
         */
        String CAPTCHA_CODE_KEY = GLOBAL_REDIS_KEY + "captcha_codes:";
    }

}

