package com.ruoyi.jarvis.service;

import com.ruoyi.jarvis.domain.dto.WeComChatSession;
import com.ruoyi.jarvis.wecom.WeComConvention;

/**
 * 企微多轮会话（Redis JSON）。键由 {@link WeComConvention#sessionRedisKey(String)} 生成，
 * 参数 wecomUserId 必须为明文 XML 中的 <b>FromUserName</b>（成员 UserID），与 wxSend 转发字段一致。
 */
public interface IWeComChatSessionService {

    /** @param wecomUserId 成员 UserID，同 FromUserName */
    WeComChatSession get(String wecomUserId);

    /** @param wecomUserId 成员 UserID，同 FromUserName */
    void put(String wecomUserId, WeComChatSession session);

    /** @param wecomUserId 成员 UserID，同 FromUserName */
    void delete(String wecomUserId);

    /** 测试清理：删除所有 interaction_state:wecom:* */
    int deleteAllWecomSessionsForTest();
}
