package com.red.circle.other.infra.database.cache.service.other;

import java.util.Map;

/**
 * 用户红包缓存服务
 */
public interface UserRedPacketCacheService {

    /**
     * 设置红包数据
     */
    void setRedPacket(String packetId, Map<String, Object> data, long expireSeconds);

    /**
     * 获取红包数据
     */
    Map<Object, Object> getRedPacket(String packetId);

    /**
     * 检查用户是否已领取
     */
    boolean hasUserGrabbed(String packetId, Long userId);

    /**
     * 设置用户已领取标记
     */
    boolean setUserGrabbedFlag(String packetId, Long userId, long expireSeconds);

    /**
     * 删除红包缓存
     */
    void deleteRedPacket(String packetId);

    /**
     * 删除用户领取标记
     */
    void deleteUserGrabbedFlag(String packetId, Long userId);
}
