package com.seer.teach.common.cache;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import jakarta.annotation.Resource;
import java.util.List;

/**
 * SSE 数据缓存业务封装。
 * 对外提供更高层的缓存操作接口。
 */
@Slf4j
@Service
public class SseDataCacheService {

    @Resource
    private SseDataCache sseDataCache;

    /** 缓存追加一条 SSE 数据 */
    public void appendSseData(Integer sessionId, Object data) {
        sseDataCache.add(sessionId, data);
    }

    /** 获取指定会话的所有缓存数据 */
    public List<Object> getSseData(Integer sessionId) {
        return sseDataCache.getAll(sessionId);
    }

    /** 清除指定会话缓存 */
    public void clearSseData(Integer sessionId) {
        sseDataCache.invalidate(sessionId);
    }

    /** 判断会话缓存是否存在 */
    public boolean exists(Integer sessionId) {
        return sseDataCache.exists(sessionId);
    }
}
