use serde::{Deserialize, Serialize};
use crate::dtos::bios::BiosInfo;
use crate::dtos::cpu::CpuInfo;
use crate::dtos::display::DisplayInfo;
use crate::dtos::gpu::GpuInfo;
use crate::dtos::memory::MemoryInfo;
use crate::dtos::motherboard::MotherboardInfo;
use crate::dtos::os::OsInfo;
use crate::dtos::storage::DiskInfo;

pub mod bios;
pub mod cpu;
pub mod display;
pub mod gpu;
pub mod memory;
pub mod motherboard;
pub mod os;
pub mod storage;

#[derive(Debug, Serialize, Deserialize)]
pub struct HardWareInfo {
	pub os: OsInfo,
	pub bios: BiosInfo,
	pub motherboard: MotherboardInfo,
	pub cpu: CpuInfo,
	pub memory: Vec<MemoryInfo>,
	pub storage: Vec<DiskInfo>,
	pub gpu: Vec<GpuInfo>,
	pub display: Vec<DisplayInfo>,
}
