using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace watcher_monitoring.Payloads;

public class MetricDto
{
    // Server Identity
    [Required]
    public int id { get; set; }

    // Hardware Metrics
    // CPU
    public double cpuLoad { get; set; } // %

    public double cpuTemp { get; set; } // deg C

    // GPU
    public double gpuLoad { get; set; } // %

    public double gpuTemp { get; set; } // deg C

    public double vRamSize { get; set; } // Bytes

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

    // RAM
    public double ramSize { get; set; } // Bytes

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

    // Disks
    public double diskSize { get; set; } // Bytes

    public double diskLoad { get; set; } // Bytes

    public double diskTempp { get; set; } // deg C (if available)

    // Network
    public double netIn { get; set; } // Bytes/s

    public double netOut { get; set; } // Bytes/s

}