using TakeoutSaaS.Domain.SystemParameters.Entities;
namespace TakeoutSaaS.Domain.SystemParameters.Repositories;
///
/// 系统参数仓储接口:提供基础 CRUD 与查询能力。
///
public interface ISystemParameterRepository
{
///
/// 根据标识获取系统参数。
///
/// 参数 ID。
/// 取消标记。
/// 系统参数或 null。
Task FindByIdAsync(long id, CancellationToken cancellationToken = default);
///
/// 根据键获取系统参数(当前租户)。
///
/// 参数键。
/// 取消标记。
/// 系统参数或 null。
Task FindByKeyAsync(string key, CancellationToken cancellationToken = default);
///
/// 查询系统参数列表。
///
/// 关键字。
/// 启用状态。
/// 取消标记。
/// 参数列表。
Task> SearchAsync(string? keyword, bool? isEnabled, CancellationToken cancellationToken = default);
///
/// 新增系统参数。
///
/// 参数实体。
/// 取消标记。
/// 异步任务。
Task AddAsync(SystemParameter parameter, CancellationToken cancellationToken = default);
///
/// 删除系统参数。
///
/// 参数实体。
/// 取消标记。
/// 异步任务。
Task RemoveAsync(SystemParameter parameter, CancellationToken cancellationToken = default);
///
/// 更新系统参数。
///
/// 参数实体。
/// 取消标记。
/// 异步任务。
Task UpdateAsync(SystemParameter parameter, CancellationToken cancellationToken = default);
///
/// 持久化更改。
///
/// 取消标记。
/// 异步任务。
Task SaveChangesAsync(CancellationToken cancellationToken = default);
}