package com.ssyf.module.robot.domain.strategy;

import com.ssyf.module.robot.domain.entity.ChatConfig;

/**
 * 聊天策略接口
 * 定义聊天行为的统一接口，支持模板聊天和AI聊天两种策略
 */
public interface ChatStrategy {
    
    /**
     * 判断是否可以进行聊天
     * @param config 聊天配置
     * @param context 聊天上下文
     * @return 是否可以聊天
     */
    boolean canChat(ChatConfig config, ChatContext context);

    /**
     * 异步获取聊天内容
     * @param config 聊天配置
     * @param context 聊天上下文
     * @param callback 聊天内容回调
     */
    void getChatContentAsync(ChatConfig config, ChatContext context, ChatCallback callback);
    
    /**
     * 获取策略类型
     * @return 策略类型
     */
    ChatStrategyType getStrategyType();
}