using DataSharing.SendTask.OtherPlatforms;
using Hotline.Share.Dtos.Order;

namespace DataSharing.SendTask
{
    public interface ISendTaskDataService
    {
        /// <summary>
        /// 执行推送任务
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task SendTask(DsWaitSendTaskOtherPlatforms dto, CancellationToken cancellationToken);

        /// <summary>
        ///其他推送
        /// </summary>
        /// <param name="Key"></param>
        /// <param name="order"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task OtherSendTask(string Key, OrderDto order, CancellationToken cancellationToken);

        /// <summary>
        /// 工单撤单
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task RevokeOrderAsync(PublishSpecialDto dto, CancellationToken cancellationToken);

        /// <summary>
        /// 推送办理结果
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task AddHandleOpinion(OrderFlowDto dto, CancellationToken cancellationToken);

        /// <summary>
        /// 市州互转
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task TranspondCityAsync(OrderDto dto, CancellationToken cancellationToken);

        /// <summary>
        /// 推送办理结果（泸州市政府门户网站）
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task AddHandleOpinionByCityPortal(OrderFlowDto dto, CancellationToken cancellationToken);
    }
}
