using System.Drawing;

namespace Elfisa.UI.Theming
{
    public sealed class ThemeColors
    {
        public string Name { get; set; }
        public ThemeMode Mode { get; set; }

        public Color BackgroundPrimary { get; set; }
        public Color BackgroundSecondary { get; set; }
        public Color Surface { get; set; }
        public Color SurfaceElevated { get; set; }
        public Color Border { get; set; }
        public Color BorderSubtle { get; set; }

        public Color TextPrimary { get; set; }
        public Color TextSecondary { get; set; }
        public Color TextMuted { get; set; }
        public Color TextOnAccent { get; set; }

        public Color AccentPrimary { get; set; }
        public Color AccentPrimaryHover { get; set; }
        public Color AccentPrimaryPressed { get; set; }
        public Color AccentPrimarySoft { get; set; }
        public Color AccentPrimaryBorder { get; set; }
        public Color AccentSecondary { get; set; }

        public Color TitleBarTop { get; set; }
        public Color TitleBarBottom { get; set; }
        public Color NavBackground { get; set; }
        public Color CartHeaderBackground { get; set; }
        public Color ToolbarBackground { get; set; }
        public Color SectionHeaderBackground { get; set; }

        public Color Success { get; set; }
        public Color SuccessSoft { get; set; }
        public Color Warning { get; set; }
        public Color WarningSoft { get; set; }
        public Color Danger { get; set; }
        public Color DangerSoft { get; set; }
        public Color Info { get; set; }
        public Color InfoSoft { get; set; }

        public Color SidebarBackground { get; set; }
        public Color SidebarItem { get; set; }
        public Color SidebarItemHover { get; set; }
        public Color SidebarItemActive { get; set; }
        public Color SidebarItemActiveText { get; set; }

        public Color GridHeaderBackground { get; set; }
        public Color GridHeaderForeground { get; set; }
        public Color GridRowBackground { get; set; }
        public Color GridRowAlternate { get; set; }
        public Color GridRowHover { get; set; }
        public Color GridRowSelected { get; set; }
        public Color GridRowSelectedText { get; set; }
        public Color GridBorder { get; set; }

        public Color InputBackground { get; set; }
        public Color InputBorder { get; set; }
        public Color InputBorderFocus { get; set; }

        public Color Shadow { get; set; }
        public Color OverlayScrim { get; set; } = Color.FromArgb(160, 0, 0, 0);
        public Color ScrollbarThumb { get; set; }
        public Color ScrollbarTrack { get; set; }

        public Font FontRegular12 { get; set; }
        public Font FontRegular13 { get; set; }
        public Font FontRegular14 { get; set; }
        public Font FontSemibold14 { get; set; }
        public Font FontSemibold16 { get; set; }
        public Font FontBold18 { get; set; }

        public int CornerRadiusSmall { get; set; } = 6;
        public int CornerRadiusMedium { get; set; } = 8;
        public int GridRowHeight { get; set; } = 36;
        public int GridHeaderHeight { get; set; } = 40;
    }
}
