namespace Watcher.Models;

public class Metric
{
    // Metric Metadata
    public int Id { get; set; }
    public DateTime Timestamp { get; set; }


    // Zuordnung zu einem Server -- Foreign Key
    public int? ServerId { get; set; }


    // CPU-Daten
    public double CPU_Load { get; set; } = 0.0; // %

    public double CPU_Temp { get; set; } = 0.0; // deg C


    // GPU-Daten
    public double GPU_Load { get; set; } = 0.0; // %

    public double GPU_Temp { get; set; } = 0.0; // deg C

    public double GPU_Vram_Size { get; set; } // GB

    public double GPU_Vram_Usage { get; set; } // %


    // RAM-Daten
    public double RAM_Size { get; set; } = 0.0; // GB

    public double RAM_Load { get; set; } = 0.0; // %


    // HDD-Daten
    public double DISK_Size { get; set; } = 0.0; // GB

    public double DISK_Usage { get; set; } = 0.0; // %

    public double DISK_Temp { get; set; } = 0.0; // deg C


    // Network-Daten
    public double NET_In { get; set; } = 0.0; // Bit

    public double NET_Out { get; set; } = 0.0; // Bit
}
