package com.njcn.redis.pojo.enums;

import lombok.Getter;

/**
 * @author hongawen
 * @version 1.0.0
 * @createTime 2021年05月11日 17:37
 */
@Getter
public enum RedisKeyEnum {

    /**
     * 角色与资源的对应关系缓存，每次启动用户服务、角色与资源的关系发生变动时，进行清理并重新缓存
     */
    ROLE_FUNCTION_KEY("ROLES_FUNCTIONS", -1L),
    PUBLIC_FUNCTIONS_KEY("PUBLIC_FUNCTIONS", -1L),

    /***
     * app短信验证码，保存10分钟缓存
     */
    SMS_LOGIN_KEY("SMS_LOGIN", 300L),

    /**
     * 终端信息查询缓存的公共key前缀
     */
    DEVICE_INFO_KEY("DEVICE_INFO_PUBLIC:", -1L),

    /**
     * APP角色推荐码
     */
    ROLE_REFERRAL_CODE_KEY("ROLE_REFERRAL_CODE", 120L),

    /***
     * MQ消息key缓存时间，默认72小时 * 60 * 60
     */
    ROCKET_MQ_KEY("ROCKET_MQ", 259200L),


    /***
     * 存放用户的角色关系
     */
    USER_ROLE_TYPE_KEY("USER_ROLE_TYPE_KEY", -1L),

    /**
     * 云前置心跳
     */
    CLD_HEART_BEAT_KEY("CLD_HEART_BEAT:", 180L),

    /**
     * 用户日志队列
     */
    USER_LOG_QUEUE("USER_LOG_QUEUE", -1L),

    /**
     * 用户日志邮件推送队列
     */
    USER_LOG_EMAIL_QUEUE("USER_LOG_EMAIL_QUEUE", -1L),

    /**
     * 终端日志
     */
    DEVICE_LOG_QUEUE("DEVICE_LOG_QUEUE", -1L);


    private final String key;

    /**
     * redis存储的时间，单位：分钟
     */
    private final Long time;

    RedisKeyEnum(String key, Long time) {
        this.key = key;
        this.time = time;
    }

}
