package cn.novalon.gym.manage.common.constant;

/**
 * Redis 缓存 Key 常量类
 * 统一管理项目中所有 Redis 缓存的 key 前缀
 *
 * @author auto-generated
 * @date 2026-05-30
 */
public final class RedisKeyConstants {

    private RedisKeyConstants() {
    }

    // ==================== 会员模块 ====================

    /**
     * 会员信息缓存
     * 格式：member:info:{memberId}
     */
    public static final String MEMBER_INFO = "member:info:";

    /**
     * 会员详情缓存
     * 格式：member:detail:{memberId}
     */
    public static final String MEMBER_DETAIL = "member:detail:";

    /**
     * 会员卡类型缓存
     * 格式：member:card:{memberCardId}
     */
    public static final String MEMBER_CARD = "member:card:";

    /**
     * 会员卡记录缓存（包含剩余次数/金额）
     * 格式：member:card:record:{recordId}
     */
    public static final String MEMBER_CARD_RECORD = "member:card:record:";

    /**
     * 会员退款申请缓存
     * 格式：member:refund:{recordId}
     */
    public static final String MEMBER_REFUND = "member:refund:";

    // ==================== 签到模块 ====================

    /**
     * 用户当日二维码缓存
     * 格式：qrcode:user:daily:{userId}:{date}
     * 示例：qrcode:user:daily:1:2026-05-30
     */
    public static final String QRCODE_USER_DAILY = "qrcode:user:daily:";

    // ==================== 微信模块 ====================

    /**
     * 微信 access_token 缓存
     * 格式：wechat:access_token:{appType}
     * appType: miniapp(小程序), mp(公众号)
     */
    public static final String WECHAT_ACCESS_TOKEN = "wechat:access_token:";

    // ==================== 认证模块 ====================

    /**
     * 手机短信验证码缓存
     * 格式：sms:code:{phone}
     * 用途：存储登录/注册等场景的短信验证码
     */
    public static final String SMS_CODE = "sms:code:";
}