using System.Text.Json; namespace RmmAgent.Models; public record EnrollRequest( string EnrollmentToken, string Hostname, string MachineId, string? OsName, string? OsVersion, string? OsBuild, string? CpuModel, int? RamTotalMb, string AgentVersion); public record EnrollResponse( string AgentId, string AgentToken, string ServerUrl, Intervals Intervals); public record Intervals(int Heartbeat, int Inventory, int Screenshot); public record HeartbeatPoint( double CpuPercent, double RamPercent, double? DiskPercent, int Uptime, int? IdleSeconds, string? Timestamp); public record HeartbeatRequest( double? CpuPercent, double? RamPercent, double? DiskPercent, int? Uptime, int? IdleSeconds, HeartbeatPoint[]? Batch); public record HeartbeatResponse(bool Ok, AgentCommand[] Commands); public class AgentCommand { public string Id { get; set; } = ""; public string Type { get; set; } = ""; public JsonElement? Payload { get; set; } } public record InventoryRequest( object Hardware, object Software, object Services, object Users, object Security); public record SystemInfo( string OsName, string OsVersion, string OsBuild, string CpuModel, int RamTotalMb); public record CommandResultRequest(string CommandId, bool Success, string? ErrorMessage);