using Fitness_core_BE.Models; namespace Fitness_core_BE.Interfaces { public interface IDeviceCommandRepo { Task AddAsync(DeviceCommand command); Task> GetPendingByClientAsync(Guid clientId); Task GetByIdAsync(Guid commandId); Task IsQueuedAsync( Guid bindingId, string commandType, int desiredVersion, CancellationToken ct = default); Task> GetPendingStateCommandsAsync( Guid bindingId, CancellationToken ct = default); Task> GetPendingFacePhotoCommandsAsync( Guid bindingId, CancellationToken ct = default); Task> GetExhaustedLeasesAsync( Guid clientId, DateTime now, CancellationToken ct = default); Task> GetLeaseableCommandsAsync( Guid clientId, Guid agentId, DateTime now, int take, CancellationToken ct = default); Task GetForAgentResultAsync( Guid commandId, CancellationToken ct = default); Task UpdateStatusAsync(DeviceCommand command, string status, string? resultJson = null, DateTime? processedAt = null); } }