using CellularManagement.Domain.Entities;
namespace CellularManagement.Domain.Repositories;
///
/// 设备命令仓储接口
/// 负责设备实体的写入操作
///
public interface IDeviceCommandRepository : ICommandRepository
{
///
/// 创建设备
///
/// 设备实体
/// 取消令牌
/// 创建后的设备实体
Task CreateAsync(Device device, CancellationToken cancellationToken = default);
///
/// 批量创建设备
///
/// 设备实体集合
/// 取消令牌
/// 创建后的设备实体集合
Task> CreateRangeAsync(IEnumerable devices, CancellationToken cancellationToken = default);
///
/// 更新设备
///
/// 设备实体
/// 取消令牌
/// 是否更新成功
Task UpdateAsync(Device device, CancellationToken cancellationToken = default);
///
/// 批量更新设备
///
/// 设备实体集合
/// 取消令牌
/// 是否更新成功
Task UpdateRangeAsync(IEnumerable devices, CancellationToken cancellationToken = default);
///
/// 删除设备
///
/// 设备ID
/// 取消令牌
/// 是否删除成功
Task DeleteAsync(string deviceId, CancellationToken cancellationToken = default);
///
/// 批量删除设备
///
/// 设备ID集合
/// 取消令牌
/// 删除的设备数量
Task DeleteRangeAsync(IEnumerable deviceIds, CancellationToken cancellationToken = default);
///
/// 启用设备
///
/// 设备ID
/// 取消令牌
/// 是否启用成功
Task EnableAsync(string deviceId, CancellationToken cancellationToken = default);
///
/// 禁用设备
///
/// 设备ID
/// 取消令牌
/// 是否禁用成功
Task DisableAsync(string deviceId, CancellationToken cancellationToken = default);
///
/// 批量启用设备
///
/// 设备ID集合
/// 取消令牌
/// 启用的设备数量
Task EnableRangeAsync(IEnumerable deviceIds, CancellationToken cancellationToken = default);
///
/// 批量禁用设备
///
/// 设备ID集合
/// 取消令牌
/// 禁用的设备数量
Task DisableRangeAsync(IEnumerable deviceIds, CancellationToken cancellationToken = default);
}
///
/// 设备查询仓储接口
/// 负责设备实体的读取操作
///
public interface IDeviceQueryRepository
{
///
/// 根据序列号获取设备
///
Task GetBySerialNumberAsync(string serialNumber, CancellationToken cancellationToken = default);
///
/// 检查序列号是否存在
///
Task ExistsBySerialNumberAsync(string serialNumber, string? excludeDeviceId = null, CancellationToken cancellationToken = default);
///
/// 分页查询设备列表
///
Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(
int pageNumber,
int pageSize,
string? searchTerm = null,
bool? isDisabled = null,
CancellationToken cancellationToken = default);
///
/// 获取所有启用的设备
///
Task> GetEnabledDevicesAsync(CancellationToken cancellationToken = default);
///
/// 获取所有禁用的设备
///
Task> GetDisabledDevicesAsync(CancellationToken cancellationToken = default);
///
/// 根据IP地址获取设备
///
Task GetByIPAddressAsync(string ipAddress, CancellationToken cancellationToken = default);
///
/// 根据IP地址获取设备
///
Task GetByIdAsync(string id, CancellationToken cancellationToken = default);
}
///
/// 设备仓储接口
/// 组合命令和查询仓储接口
///
public interface IDeviceRepository : IDeviceCommandRepository, IDeviceQueryRepository
{
}