using Kean.Application.Command.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
///
/// 表示物料信息命令服务
///
public interface IMaterialService
{
///
/// 创建物料
///
/// 物料视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateMaterial(Material material);
///
/// 修改物料
///
/// 物料视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyMaterial(Material material);
///
/// 删除物料
///
/// 物料 ID
/// 成功删除的 ID
Task> DeleteMaterial(IEnumerable id);
///
/// 创建品类
///
/// 品类视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateCategory(Category category);
///
/// 修改品类
///
/// 品类视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyCategory(Category category);
///
/// 删除品类
///
/// 品类 ID
/// 成功删除的 ID
Task> DeleteCategory(IEnumerable id);
///
/// 创建安全库存
///
/// 安全库存视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateSafety(Safety safety);
///
/// 修改安全库存
///
/// 安全库存视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifySafety(Safety safety);
///
/// 删除安全库存
///
/// 品类 ID
/// 成功删除的 ID
Task> DeleteSafety(IEnumerable id);
}
}