using TakeoutSaaS.Domain.Dictionary.Entities;
using TakeoutSaaS.Domain.Dictionary.Enums;
namespace TakeoutSaaS.Domain.Dictionary.Repositories;
///
/// 字典标签覆盖仓储契约。
///
public interface IDictionaryLabelOverrideRepository
{
///
/// 根据 ID 获取覆盖配置。
///
Task GetByIdAsync(long id, CancellationToken cancellationToken = default);
///
/// 获取指定字典项的覆盖配置。
///
/// 租户 ID。
/// 字典项 ID。
/// 取消标记。
Task GetByItemIdAsync(long tenantId, long dictionaryItemId, CancellationToken cancellationToken = default);
///
/// 获取租户的所有覆盖配置。
///
/// 租户 ID。
/// 可选的覆盖类型过滤。
/// 取消标记。
Task> ListByTenantAsync(
long tenantId,
OverrideType? overrideType = null,
CancellationToken cancellationToken = default);
///
/// 批量获取多个字典项的覆盖配置。
///
/// 租户 ID。
/// 字典项 ID 列表。
/// 取消标记。
Task> GetByItemIdsAsync(
long tenantId,
IEnumerable dictionaryItemIds,
CancellationToken cancellationToken = default);
///
/// 新增覆盖配置。
///
Task AddAsync(DictionaryLabelOverride entity, CancellationToken cancellationToken = default);
///
/// 更新覆盖配置。
///
Task UpdateAsync(DictionaryLabelOverride entity, CancellationToken cancellationToken = default);
///
/// 删除覆盖配置。
///
Task DeleteAsync(DictionaryLabelOverride entity, CancellationToken cancellationToken = default);
///
/// 持久化更改。
///
Task SaveChangesAsync(CancellationToken cancellationToken = default);
}