using NetAdmin.Domain;
using NetAdmin.Domain.Dto.Dependency;
namespace NetAdmin.Application.Modules;
///
/// 增删改查模块接口
///
/// 创建请求类型
/// 创建响应类型
/// 查询请求类型
/// 查询响应类型
/// 删除请求类型
public interface ICrudModule
where TCreateReq : DataAbstraction, new()
where TCreateRsp : DataAbstraction
where TQueryReq : DataAbstraction, new()
where TQueryRsp : DataAbstraction
where TDelReq : DataAbstraction, new()
{
///
/// 批量删除实体
///
Task BulkDeleteAsync(BulkReq req);
///
/// 实体计数
///
Task CountAsync(QueryReq req);
///
/// 创建实体
///
Task CreateAsync(TCreateReq req);
///
/// 删除实体
///
Task DeleteAsync(TDelReq req);
///
/// 判断实体是否存在
///
Task ExistAsync(QueryReq req);
///
/// 获取单个实体
///
Task GetAsync(TQueryReq req);
///
/// 分页查询实体
///
Task> PagedQueryAsync(PagedQueryReq req);
///
/// 查询实体
///
Task> QueryAsync(QueryReq req);
}