namespace NexusRMM.Core.Models;

public class Agent
{
    public Guid Id { get; set; }
    public string Hostname { get; set; } = string.Empty;
    public OsType OsType { get; set; }
    public string OsVersion { get; set; } = string.Empty;
    public string IpAddress { get; set; } = string.Empty;
    public string MacAddress { get; set; } = string.Empty;
    public string AgentVersion { get; set; } = string.Empty;
    public AgentStatus Status { get; set; } = AgentStatus.Pending;
    public List<string> Tags { get; set; } = [];
    public DateTime LastSeen { get; set; }
    public DateTime EnrolledAt { get; set; }
    public string? MeshAgentId { get; set; }

    public ICollection<AgentMetric> Metrics { get; set; } = [];
    public ICollection<TaskItem> Tasks { get; set; } = [];
    public ICollection<Ticket> Tickets { get; set; } = [];
    public ICollection<Alert> Alerts { get; set; } = [];
}
