namespace OTSSignsOrchestrator.Server.Data.Entities;

public enum HealthStatus
{
    Unknown,
    Healthy,
    Degraded,
    Critical
}

public class Instance
{
    public Guid Id { get; set; }
    public Guid CustomerId { get; set; }
    public string XiboUrl { get; set; } = string.Empty;
    public string DockerStackName { get; set; } = string.Empty;
    public string MysqlDatabase { get; set; } = string.Empty;
    public string NfsPath { get; set; } = string.Empty;
    public string? CmsAdminPassRef { get; set; }
    public string? AuthentikProviderId { get; set; }
    public HealthStatus HealthStatus { get; set; }
    public DateTime? LastHealthCheck { get; set; }
    public DateTime CreatedAt { get; set; }

    public Customer Customer { get; set; } = null!;
    public ICollection<HealthEvent> HealthEvents { get; set; } = [];
    public ICollection<ScreenSnapshot> ScreenSnapshots { get; set; } = [];
    public ICollection<OauthAppRegistry> OauthAppRegistries { get; set; } = [];
    public ICollection<ByoiConfig> ByoiConfigs { get; set; } = [];
}
