package com.ruoyi.web.modules.diagnosis.support;

import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.StringUtils;

/**
 * AI 回复默认实现（本期规则回复；可替换为 HTTP 大模型调用）。
 */
@Service
public class ConsultAiGatewayImpl implements ConsultAiGateway
{
    @Override
    public String generateReply(int msgType, String userText, String mediaUrl)
    {
        if (msgType == ConsultSessionRules.MSG_TYPE_VIDEO)
        {
            return AiConsultConstants.REPLY_VIDEO;
        }
        if (msgType == ConsultSessionRules.MSG_TYPE_VOICE)
        {
            return AiConsultConstants.REPLY_VOICE;
        }
        if (msgType == ConsultSessionRules.MSG_TYPE_IMAGE)
        {
            if (StringUtils.isNotEmpty(userText))
            {
                return buildTextReply(userText);
            }
            return AiConsultConstants.REPLY_IMAGE_FALLBACK;
        }
        return buildTextReply(userText);
    }

    private static String buildTextReply(String userText)
    {
        String text = StringUtils.trim(userText);
        if (StringUtils.isEmpty(text))
        {
            return "请补充具体描述，以便为您提供参考建议。";
        }
        return "根据您描述的情况（" + truncate(text, 80) + "），建议进一步观察畜群状态，必要时联系当地兽医现场检查。"
                + "以上仅供参考，不能替代专业诊断。";
    }

    private static String truncate(String text, int max)
    {
        if (text.length() <= max)
        {
            return text;
        }
        return text.substring(0, max) + "…";
    }
}
