using Hotline.CallCenter.Calls;
using Hotline.Settings;
using Hotline.Share.Dtos.Push;

namespace Hotline.Orders;
public interface IOrderVisitDomainService
{
    /// <summary>
    /// 语音回访处理
    /// </summary>
    /// <param name="dto"></param>
    /// <returns></returns>
    Task UpdateVoiceReplyAsync(VoiceEvaluationButton dto);

    /// <summary>
    /// 根据用户短信或电话回复的内容转换成系统中对应的评价
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="replyTxt"></param>
    /// <returns></returns>
    SettingOrderVisitSmsReplyRule? GetVisitEvaluateByReplyTxt(string replyTxt);

    /// <summary>
    /// 收到用户回复的短信后回填回访信息
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    Task UpdateSmsReplyAsync(MessageDto data);

    /// <summary>
    /// 短信超时用户未回复更新成默认评价
    /// </summary>
    /// <param name="dto"></param>
    /// <returns></returns>
    Task UpdateSmsReplyDefaultAsync(MessageDto dto);
}
