using TakeoutSaaS.Domain.Dictionary.Entities; using TakeoutSaaS.Domain.Dictionary.Enums; using TakeoutSaaS.Domain.Dictionary.ValueObjects; namespace TakeoutSaaS.Domain.Dictionary.Repositories; /// /// 字典分组仓储契约。 /// public interface IDictionaryGroupRepository { /// /// 按 ID 获取字典分组。 /// /// 分组 ID。 /// 取消标记。 /// 分组实体或 null。 Task GetByIdAsync(long groupId, CancellationToken cancellationToken = default); /// /// 按编码获取字典分组。 /// /// 租户 ID。 /// 分组编码。 /// 取消标记。 /// 分组实体或 null。 Task GetByCodeAsync(long tenantId, DictionaryCode code, CancellationToken cancellationToken = default); /// /// 分页获取字典分组。 /// /// 租户 ID。 /// 作用域过滤。 /// 关键字过滤。 /// 启用状态过滤。 /// 页码。 /// 页大小。 /// 排序字段。 /// 是否降序。 /// 取消标记。 /// 分组集合。 Task> GetPagedAsync( long tenantId, DictionaryScope? scope, string? keyword, bool? isEnabled, int page, int pageSize, string? sortBy, bool sortDescending, CancellationToken cancellationToken = default); /// /// 获取满足条件的分组数量。 /// /// 租户 ID。 /// 作用域过滤。 /// 关键字过滤。 /// 启用状态过滤。 /// 取消标记。 /// 分组数量。 Task CountAsync( long tenantId, DictionaryScope? scope, string? keyword, bool? isEnabled, CancellationToken cancellationToken = default); /// /// 批量获取字典分组。 /// /// 分组 ID 列表。 /// 取消标记。 /// 分组集合。 Task> GetByIdsAsync(IEnumerable groupIds, CancellationToken cancellationToken = default); /// /// 新增分组。 /// /// 分组实体。 /// 取消标记。 Task AddAsync(DictionaryGroup group, CancellationToken cancellationToken = default); /// /// 更新分组。 /// /// 分组实体。 /// 取消标记。 Task UpdateAsync(DictionaryGroup group, CancellationToken cancellationToken = default); /// /// 删除分组。 /// /// 分组实体。 /// 取消标记。 Task RemoveAsync(DictionaryGroup group, CancellationToken cancellationToken = default); /// /// 持久化更改。 /// /// 取消标记。 /// 异步任务。 Task SaveChangesAsync(CancellationToken cancellationToken = default); }