using TakeoutSaaS.Domain.Dictionary.Entities; using TakeoutSaaS.Domain.Dictionary.Enums; namespace TakeoutSaaS.Domain.Dictionary.Repositories; /// /// 参数字典仓储契约。 /// public interface IDictionaryRepository { /// /// 依据 ID 获取分组。 /// /// 分组 ID。 /// 取消标记。 /// 分组实体或 null。 Task FindGroupByIdAsync(long id, CancellationToken cancellationToken = default); /// /// 依据编码获取分组。 /// /// 分组编码。 /// 取消标记。 /// 分组实体或 null。 Task FindGroupByCodeAsync(string code, CancellationToken cancellationToken = default); /// /// 搜索分组,可按作用域过滤。 /// /// 作用域。 /// 取消标记。 /// 分组集合。 Task> SearchGroupsAsync(DictionaryScope? scope, CancellationToken cancellationToken = default); /// /// 新增分组。 /// /// 分组实体。 /// 取消标记。 /// 异步任务。 Task AddGroupAsync(DictionaryGroup group, CancellationToken cancellationToken = default); /// /// 删除分组。 /// /// 分组实体。 /// 取消标记。 /// 异步任务。 Task RemoveGroupAsync(DictionaryGroup group, CancellationToken cancellationToken = default); /// /// 依据 ID 获取字典项。 /// /// 字典项 ID。 /// 取消标记。 /// 字典项或 null。 Task FindItemByIdAsync(long id, CancellationToken cancellationToken = default); /// /// 获取某分组下的所有字典项。 /// /// 分组 ID。 /// 取消标记。 /// 字典项集合。 Task> GetItemsByGroupIdAsync(long groupId, CancellationToken cancellationToken = default); /// /// 按分组编码集合获取字典项(可包含系统参数)。 /// /// 分组编码集合。 /// 租户 ID。 /// 是否包含系统分组。 /// 取消标记。 /// 字典项集合。 Task> GetItemsByCodesAsync(IEnumerable codes, long tenantId, bool includeSystem, CancellationToken cancellationToken = default); /// /// 新增字典项。 /// /// 字典项实体。 /// 取消标记。 /// 异步任务。 Task AddItemAsync(DictionaryItem item, CancellationToken cancellationToken = default); /// /// 删除字典项。 /// /// 字典项实体。 /// 取消标记。 /// 异步任务。 Task RemoveItemAsync(DictionaryItem item, CancellationToken cancellationToken = default); /// /// 持久化更改。 /// /// 取消标记。 /// 异步任务。 Task SaveChangesAsync(CancellationToken cancellationToken = default); }