package com.snack.server.constant;

/**
 * Redis Key 常量
 */
public interface RedisKey {

    // ==================== 客服模块 ====================

    /** 客服在线用户集合（Set 存放 "user:{id}" / "admin:{id}"） */
    String CHAT_ONLINE = "chat:online:users";

    /** 用户 WebSocket Session 索引（Hash 字段 stompSessionId -> 1，用于清理） */
    String CHAT_WS_USER = "chat:ws:user:%d";

    /** 客服 WebSocket Session 索引 */
    String CHAT_WS_ADMIN = "chat:ws:admin:%d";

    /** 会话未读消息数：chat:unread:{sessionId} */
    String CHAT_UNREAD = "chat:unread:%d";

    // ==================== 抢购模块 ====================

    /** 抢购商品库存：seckill:stock:{activityId}:{skuId} */
    String SECKILL_STOCK = "seckill:stock:%d:%d";

    /** 用户抢购记录：seckill:user:{userId}:{activityId}:{skuId}（限购 N 件时存数量） */
    String SECKILL_USER_RECORD = "seckill:user:%d:%d:%d";

    /** 抢购结果：seckill:result:{orderNo}（0=排队中 1=成功 2=失败） */
    String SECKILL_RESULT = "seckill:result:%s";

    /** 活动预热标记：seckill:warmup:{activityId}（1 表示 Redis 库存已同步） */
    String SECKILL_WARMUP = "seckill:warmup:%d";

    // ==================== 公共 ====================

    /** 验证码：captcha:{uuid} */
    String CAPTCHA = "captcha:%s";
}
