using Fitness_core_BE.DTOs.Agent; namespace Fitness_core_BE.Interfaces.Services { public interface IAgentService { // Bootstrap enrollment (no api-key auth). Returns { agentId, apiKey } once. Task EnrollAsync(EnrollRequest request); // Agent-authenticated operations. clientId / agentId are resolved server-side // from the authenticated agent, never from the request body. Task RegisterDeviceAsync(Guid clientId, Guid agentId, RegisterDeviceRequest request); Task ReconcileDeviceInventoryAsync(Guid clientId, Guid agentId, DeviceInventoryRequest request); Task IngestAttendanceAsync(Guid clientId, Guid agentId, AgentAttendanceRequest request); Task GetPendingCommandsAsync(Guid clientId, Guid agentId); Task SubmitCommandResultAsync( Guid clientId, Guid agentId, Guid commandId, CommandResultRequest request); Task HeartbeatAsync( Guid clientId, Guid agentId, AgentHeartbeatRequest request); } }