namespace QemuVmManager.Models; public enum VmState { Stopped, Starting, Running, Paused, Stopping, Error } public class VmStatus { public string Name { get; set; } = string.Empty; public VmState State { get; set; } = VmState.Stopped; public int ProcessId { get; set; } = -1; public DateTime? StartedAt { get; set; } public DateTime? StoppedAt { get; set; } public string? ErrorMessage { get; set; } public VmResourceUsage? ResourceUsage { get; set; } } public class VmResourceUsage { public double CpuUsage { get; set; } = 0.0; // Percentage public long MemoryUsage { get; set; } = 0; // MB public long DiskUsage { get; set; } = 0; // MB public long NetworkRx { get; set; } = 0; // Bytes public long NetworkTx { get; set; } = 0; // Bytes } public class VmPerformanceMetrics { public DateTime Timestamp { get; set; } public int ProcessId { get; set; } public double CpuUsagePercent { get; set; } public double SystemCpuUsagePercent { get; set; } public long MemoryUsageMB { get; set; } public long PrivateMemoryMB { get; set; } public long VirtualMemoryMB { get; set; } public int ThreadCount { get; set; } public int HandleCount { get; set; } }