using Kean.Application.Command.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
///
/// 表示订单命令服务
///
public interface IOrderService
{
///
/// 创建订单类型
///
/// 订单类型视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateType(Ordtyp type);
///
/// 修改订单类型
///
/// 订单类型视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyType(Ordtyp type);
///
/// 删除订单类型
///
/// 类型 ID
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> DeleteType(int id);
///
/// 创建工作流
///
/// 工作流视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateFlow(Flow flow);
///
/// 修改工作流
///
/// 工作流视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyFlow(Flow flow);
///
/// 删除工作流
///
/// 工作流 ID
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> DeleteFlow(int id);
///
/// 创建订单实例
///
/// 订单视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateOrder(Order order);
///
/// 修改订单实例
///
/// 订单视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyOrder(Order order);
///
/// 删除订单实例
///
/// 订单 ID
/// 状态
System.Threading.Tasks.Task DeleteOrder(int id, bool state);
}
}