using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Hotline.Orders;
using Hotline.Share.Dtos;
using Hotline.Share.Dtos.FlowEngine.Workflow;
using Hotline.Share.Dtos.Order;
using Hotline.Share.Enums.Order;
using Hotline.Share.Enums.Settings;
using XF.Domain.Entities;
namespace Hotline.Application.Orders
{
public interface IOrderApplication
{
///
/// 更新工单办理期满时间
/// 1.更新工单 2.更新流程
///
///
Task DelayOrderExpiredTimeAsync(string orderId, int timeCount, ETimeType timeType, CancellationToken cancellationToken);
///
/// 新增工单办理流程记录
///
Task AddOrderTracesAsync(string orderId, ICollection traces, CancellationToken cancellationToken);
///
/// 撤销工单
///
Task CancelOrderAsync(string orderId, string opinion, CancellationToken cancellationToken);
Task> GetToExpireAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
//Task> GetToExpireNodeAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
Task> GetAboutToExpireAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
//Task> GetAboutToExpireNodeAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
Task OrderParticiple(string inputStr, string orderId, CancellationToken cancellationToken);
///
/// 接收外部平台工单
///
Task ReceiveOrderFromExternalAsync(AddOrderDto dto, CancellationToken cancellationToken);
///
/// 接收外部平台修改工单附件
///
Task UpdateOrderFilesAnonymousAsync(UpdateOrderFilesDto dto, CancellationToken cancellationToken);
}
}