package com.smppw.constants;

/**
 * @author Rain
 * @date 2023/3/26 14:31
 * @description redis相关的前缀或者后缀key 在此统一维护
 */
public final class RedisConst {
    /**
     * 用户中心登录成功后生成token用于后续验权
     */
    public static final String USER_CENTER_TOKEN_KEY = "user_center_token_key:";
    /**
     * 全局搜索历史记录缓存
     */
    public static final String SEARCH_HISTORY = "search_history:";
    /**
     * 获取基金分布式锁key
     */
    public static final String GENERATE_FUND_ID_KEY = "fundId:generate";
    /**
     * 获取缓存基金最大值key
     */
    public static final String MAX_FUND_ID = "fundId:max";
    /**
     * 获取组合分布式锁key
     */
    public static final String GENERATE_PORTFOLIO_ID_KEY = "portfolioId:generate";
    /**
     * 获取缓存组合最大值key
     */
    public static final String MAX_PORTFOLIO_ID = "portfolioId:max";
    /**
     * 存储和获取组合拟合净值任务key
     */
    public static final String PORTFOLIO_NAV_TASK_KEY = "portfolio:nav:task:";


    // -------------- 基金持仓分析key 和 超时时间 -------------------------------


    public static final long POSITION_MONTH_TTL = 28 * 24 * 60 * 60L;
    public static final long POSITION_YEAR_TTL = 365 * 24 * 60 * 60L;
    public static final long POSITION_DAY_TTL = 24 * 60 * 60L;

    /**
     * （沪深300、中证500和中证1000）成分股占比，原则上每月更新一次，目前先设置超时时间28天
     * todo 提供接口在成分股更新时刷新缓存
     */
    public static final String POSITION_INDEX_WEIGHT_KEY = "position:index:weight:";
    /**
     * 所有股票与行业对应关系，每天都有更新，设置超时时间1天
     * todo 做一个定时任务每天预缓存该数据
     */
    public static final String POSITION_STOCK_INDUSTRY_KEY = "position:stock:industry";
    /**
     * 估值表详情信息
     * todo 基金估值表解析时要更新
     */
    public static final String POSITION_DETAIL_KEY = "position:detail:";
    /**
     * 市场上的股票收盘价缓存，A股（沪深、创业板），缓存一年吧
     */
    public static final String POSITION_STOCK_PRICE_KEY = "position:stock:price";

    private RedisConst() {
    }
}
