namespace AmtScanner.Api.Models; public class HardwareInfoDto { public long DeviceId { get; set; } public string IpAddress { get; set; } = string.Empty; public DateTime LastUpdated { get; set; } public SystemInfoDto? SystemInfo { get; set; } public ProcessorInfoDto? Processor { get; set; } public MemoryInfoDto? Memory { get; set; } public StorageInfoDto? Storage { get; set; } } public class SystemInfoDto { public string? Manufacturer { get; set; } public string? Model { get; set; } public string? SerialNumber { get; set; } public string? Uuid { get; set; } } public class ProcessorInfoDto { public string? Model { get; set; } public int? Cores { get; set; } public int? Threads { get; set; } public int? MaxClockSpeed { get; set; } // MHz public int? CurrentClockSpeed { get; set; } // MHz } public class MemoryInfoDto { public long? TotalCapacity { get; set; } // bytes public int? TotalCapacityGB { get; set; } public List Modules { get; set; } = new(); } public class MemoryModuleDto { public string? Slot { get; set; } public long? Capacity { get; set; } // bytes public int? CapacityGB { get; set; } public int? Speed { get; set; } // MHz public string? Type { get; set; } public string? Manufacturer { get; set; } public string? PartNumber { get; set; } public string? SerialNumber { get; set; } } public class StorageInfoDto { public List Devices { get; set; } = new(); } public class StorageDeviceDto { public string? DeviceId { get; set; } public string? Model { get; set; } public long? Capacity { get; set; } // bytes public int? CapacityGB { get; set; } public string? InterfaceType { get; set; } } public class BatchHardwareInfoRequest { public List DeviceIds { get; set; } = new(); public bool Refresh { get; set; } = false; } public class BatchHardwareInfoResult { public long DeviceId { get; set; } public bool Success { get; set; } public HardwareInfoDto? Data { get; set; } public string? Error { get; set; } } public enum ExportFormat { CSV, JSON }