namespace adas_core.Domain.Models.DTO.Display;

public class ColorConfigDto
{
    public LevelColors? Level { get; set; }
    public TextColors? Text { get; set; }
    public ArrowColors? Arrow { get; set; }
    public IndicatorColors? Indicator { get; set; }
    public GraphColors? Graph { get; set; }
    public StatusBoxNumberColors? BoxNumber { get; set; }
    public TherapyColors? Therapy { get; set; }
    public TestColors? Test { get; set; }
    public ProcedureColors? Procedure { get; set; }

    public class AppearanceSettings
    {
        public string? TextColor { get; set; }

        public string? BackgroundColor { get; set; }

        public string? Icon { get; set; }

        public string? IconDefault { get; set; }
        public double? IconInvertColor { get; set; }
    }

    public class StatusBoxNumberColors
    {
        public AppearanceSettings? Reserved { get; set; }
        public AppearanceSettings? InUse { get; set; }
        public AppearanceSettings? Available { get; set; }
        public AppearanceSettings? Locked { get; set; }
        public AppearanceSettings? Transferable { get; set; }
        public AppearanceSettings? Exitus { get; set; }
        public AppearanceSettings? Altable { get; set; }
    }

    public class TherapyColors
    {
        public AppearanceSettings? Default { get; set; }
        public AppearanceSettings? Initialized { get; set; }
        public AppearanceSettings? Finished { get; set; }
        public AppearanceSettings? InProgress { get; set; }
    }

    public class TestColors
    {
        public AppearanceSettings? Default { get; set; }
        public AppearanceSettings? Initialized { get; set; }
        public AppearanceSettings? Finished { get; set; }
        public AppearanceSettings? Expired { get; set; }
    }

    public class ProcedureColors
    {
        public AppearanceSettings? Default { get; set; }
        public AppearanceSettings? Initialized { get; set; }
        public AppearanceSettings? Finished { get; set; }
        public AppearanceSettings? Expired { get; set; }
    }

    public class LevelColors
    {
        public string? Level1 { get; set; }
        public string? Level2 { get; set; }
        public string? Level3 { get; set; }
        public string? Level4 { get; set; }
        public string? Level5 { get; set; }
    }

    public class TextColors
    {
        public string? Normal { get; set; }
        public string? Warning { get; set; }
        public string? Alert { get; set; }
        public string? Improve { get; set; }
        public string? Expired { get; set; }
    }

    public class ArrowColors
    {
        public string? Normal { get; set; }
        public string? Warning { get; set; }
        public string? Alert { get; set; }
        public string? Improve { get; set; }
    }

    public class IndicatorColors
    {
        public string? Empty { get; set; }
        public string? Warning { get; set; }
        public string? Normal { get; set; }
        public string? Alert { get; set; }
        public string? Background { get; set; }
        public string? EmptyBackground { get; set; }
    }

    public class GraphColors
    {
        public string? Normal { get; set; }
        public string? Warning { get; set; }
        public string? Alert { get; set; }
    }
}