using Kean.Application.Command.ViewModels;
using Kean.Domain.Wcs.Commands;
using Orleans;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
///
/// 表示控制交互颗粒
///
internal interface IWcsGrain : IGrainWithGuidKey
{
///
/// 串行接受输入指令
///
/// 命令
/// 降级指令及失败信息
Task<(AcceptInputCommand Fallback, Failure Failure)> AcceptInput(AcceptInputCommand command);
///
/// 串行同步输出指令
///
/// 命令
/// 失败信息
Task SyncOutput(SyncOutputCommand command);
///
/// 串行同步站台
///
/// 命令
/// 失败信息
Task SyncStation(SyncStationCommand command);
}
}