using Hotline.Share.Dtos.Order;
using Hotline.Share.Dtos.Order.OrderVisit;

namespace Hotline.Application.OrderApp.OrderVisitApp;

public interface IOrderVisitApplication
{
    /// <summary>
    /// 回访量统计
    /// </summary>
    /// <param name="dto"></param>
    /// <returns></returns>
    Task<List<OrderVisitQuantityOutDto>> QueryOrderVisitQuantityAsync(QueryOrderVisitQuantity dto, CancellationToken cancellationToken = default);

    /// <summary>
    /// 已回访信息记录
    /// </summary>
    /// <param name="dto"></param>
    /// <returns></returns>
    Task<string> AddOrderVisitRecordAsync(OrderVisitRecordDto dto, CancellationToken cancellationToken = default);

    /// <summary>
    /// 新增批量语音回访任务
    /// </summary>
    /// <returns></returns>
    Task AddTaskBatchVoiceVisitAsync(BatchVoiceVisitRequest request, CancellationToken cancellation);
}