using Kean.Application.Command.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
///
/// 表示基础信息命令服务
///
public interface IBasicService
{
///
/// 创建角色
///
/// 角色视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateRole(Role role);
///
/// 修改角色
///
/// 角色视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyRole(Role role);
///
/// 删除角色
///
/// 角色 ID
/// 成功删除的 ID
Task> DeleteRole(IEnumerable id);
///
/// 设置角色菜单权限
///
/// 角色 ID
/// 菜单权限
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> SetRoleMenuPermission(int id, IEnumerable permission);
///
/// 创建用户
///
/// 用户视图
/// 分配的 ID 及失败信息
Task<(int Id, Failure Failure)> CreateUser(User user);
///
/// 修改用户
///
/// 用户视图
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ModifyUser(User user);
///
/// 删除用户
///
/// 用户 ID
/// 成功删除的 ID
Task> DeleteUser(IEnumerable id);
///
/// 重置密码
///
/// 用户 ID
/// 操作结果及失败信息
Task<(bool Success, Failure Failure)> ResetPassword(int id);
Task<(int Id, Failure Failure)> CreateItem(Item item);
Task<(bool Success, Failure Failure)> ModifyItem(Item item);
Task> DeleteItem(IEnumerable code);
}
}