using Kean.Application.Command.ViewModels;
using Kean.Domain.Task.Commands;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
///
/// 表示任务交互聚合颗粒
///
partial interface IAggregateGrain
{
///
/// 创建上架任务
///
/// 命令
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> Infeed(InfeedCommand command);
///
/// 创建下架任务
///
/// 命令
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> Outfeed(OutfeedCommand command);
///
/// 创建移库任务
///
/// 命令
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> Transfer(TransferCommand command);
///
/// 创建输送任务
///
/// 命令
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> Bypass(BypassCommand command);
///
/// 任务执行
///
/// 命令
/// 失败信息
Task Execute(ExecuteCommand command);
///
/// 任务取消
///
/// 命令
/// 失败信息
Task Cancel(CancelCommand command);
///
/// 任务完成
///
/// 命令
/// 失败信息
Task Complete(CompleteCommand command);
///
/// 任务阻塞
///
/// 命令
/// 失败信息
Task Block(BlockCommand command);
/////////////////////////////////////////////////////////////////
///
/// 创建下架任务
///
/// 命令
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> ApplyOut(ApplyOutCommand command);
///
/// 创建托盘出库任务
///
/// 命令
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> PalletOut(PalletOutCommand command);
///
/// 申请出库数据准备
///
/// 命令
/// 失败信息
Task<(string barcode, Failure failure)> PreApplyOut(PreApplyOutCommand command);
///
/// ReuploadHiWMS
///
/// 命令
/// 失败信息
Task ReuploadHiWMS(ReuploadTaskCommand command);
///
/// SetRollTask
///
/// 命令
/// 失败信息
Task SetRollTask(SetRollTaskCommand command);
///
/// SetTaskState
///
/// 命令
/// 失败信息
Task SetTaskState(SetTaskStateCommand command);
///
/// 请求删除任务
///
/// 命令
/// 失败信息
Task CallDelete(CallDeleteCommand command);
///
/// 设置任务优先级
///
/// 命令
/// 失败信息
Task SetPriority(SetPriorityCommand command);
///
/// 取消出库申请
///
/// 命令
/// 失败信息
Task CancelAgvApplyOut(CancelAgvApplyOutCommand command);
///
/// 空托盘自动出库
///
Task AutoPalletOut(AutoPalletOutCommand command);
}
}