// Copyright © Selmo Technology GmbH. All Rights Reserved

namespace SelmoStudio.Hmi.Server.SelmoHmi.Shared.WellKnownConstants
{
    internal class WellKnownStyleConstants
    {
        private const int GlobalSpacingValue = 12;

        private const int BaseElementHeightValue = 2 * GlobalSpacingValue;

        private const int SmallElementWidthValue = 180;
        private const int LargeElementWidthValue = 250;

        private const string ResponsiveItemWidthClassValue = "responsive-item-width";

        private const string PaginationItemTextWrappingClassValue = "button-content-text-truncate";

        private const string ButtonBackgroundColorValue = "#FFF";
        private const string ButtonAccentBackgroundColorValue = "#ADD8E6";
        private const string ActiveToggleButtonBackgroundColorValue = "#9EB74F";
        private const string InactiveToggleButtonBackgroundColorValue = "#FFF";

        private const string ActiveInOutZoneButtonBackgroundColorValue = "#4E7AB5";
        private const string ActiveOutZoneButtonBackgroundColorValue = "#ebebed";

        private const string CurrentHardwareZoneButtonBackgroundColorValue = "#00263a";
        private const string HardwareZoneButtonBackgroundColorValue = "transparent";
        private const string CurrentHardwareZoneButtonForegroundColorValue = "#FFF";
        private const string HardwareZoneButtonForegroundColorValue = "#000";

        private const string CurrentSequenceButtonBackgroundColorValue = "#A9A9A9";
        private const string SequenceButtonBackgroundColorValue = "#FFF";

        private const int UnknownErrorMarginSizeValue = 2;
        private const string IssueWarningColorValue = "#F7C202";
        private const string IssueErrorColorValue = "#FF0000";
        private const string IssueFatalColorValue = "#7D00D1";
        private const string IssueUnformattedColorValue = "#000";

        private const string AlarmSeverityNoneColorValue = "#3399FF";
        private const string AlarmSeverityInfoColorValue = "#FFCC00";
        private const string AlarmSeverityWarningColorValue = "#FF8000";
        private const string AlarmSeverityErrorColorValue = "#FF0000";
        private const string AlarmSeverityFatalColorValue = "#8533FF";
        private const string AlarmSeverityOpacityValue = "25";

        private const string CurrentStepColorValue = "#2CB5B5";
        private const string NextStepColorValue = "#ebebed";
        private const string PreviousStepColorValue = "#ebebed";

        private const string AutomationColorValue = "#4e9258";
        private const string ManualColorValue = "gray";
        private const string ErrorColorValue = "red";

        internal static int GlobalSpacing => GlobalSpacingValue;

        internal static int SmallElementHeight => BaseElementHeightValue;
        internal static int MediumElementHeight => BaseElementHeightValue + GlobalSpacingValue;
        internal static int LargeElementHeight => 2 * SmallElementHeight + GlobalSpacing;
        internal static int ExtraLargeElementHeight => 2 * LargeElementHeight + GlobalSpacing;

        internal static int SmallElementWidth => SmallElementWidthValue;
        internal static int LargeElementWidth => LargeElementWidthValue;

        internal static string ResponsiveItemWidthClass => ResponsiveItemWidthClassValue;

        internal static string PaginationItemTextWrappingClass => PaginationItemTextWrappingClassValue;

        internal static string DefaultButtonBackgroundColor => ButtonBackgroundColorValue;
        internal static string ButtonAccentBackgroundColor => ButtonAccentBackgroundColorValue;

        internal static string ActiveToggleButtonBackgroundColor => ActiveToggleButtonBackgroundColorValue;
        internal static string InactiveToggleButtonBackgroundColor => InactiveToggleButtonBackgroundColorValue;

        internal static string ActiveInOutZoneButtonBackgroundColor => ActiveInOutZoneButtonBackgroundColorValue;
        internal static string ActiveOutZoneButtonBackgroundColor => ActiveOutZoneButtonBackgroundColorValue;

        internal static string CurrentHardwareZoneButtonBackgroundColor => CurrentHardwareZoneButtonBackgroundColorValue;
        internal static string HardwareZoneButtonBackgroundColor => HardwareZoneButtonBackgroundColorValue;
        internal static string CurrentHardwareZoneButtonForegroundColor => CurrentHardwareZoneButtonForegroundColorValue;
        internal static string HardwareZoneButtonForegroundColor => HardwareZoneButtonForegroundColorValue;

        internal static string CurrentSequenceButtonBackgroundColor => CurrentSequenceButtonBackgroundColorValue;
        internal static string SequenceButtonBackgroundColor => SequenceButtonBackgroundColorValue;

        internal static int UnknownErrorMarginSize => UnknownErrorMarginSizeValue;
        internal static string IssueWarningColor => IssueWarningColorValue;
        internal static string IssueErrorColor => IssueErrorColorValue;
        internal static string IssueFatalColor => IssueFatalColorValue;
        internal static string IssueUnformattedColor => IssueUnformattedColorValue;

        internal static string AlarmSeverityNoneColor => AlarmSeverityNoneColorValue;
        internal static string AlarmSeverityInfoColor => AlarmSeverityInfoColorValue;
        internal static string AlarmSeverityWarningColor => AlarmSeverityWarningColorValue;
        internal static string AlarmSeverityErrorColor => AlarmSeverityErrorColorValue;
        internal static string AlarmSeverityFatalColor => AlarmSeverityFatalColorValue;
        internal static string AlarmSeverityOpacity => AlarmSeverityOpacityValue;

        internal static string CurrentStepColor => CurrentStepColorValue;
        internal static string NextStepColor => NextStepColorValue;
        internal static string PreviousStepColor => PreviousStepColorValue;

        internal static string AutomationColor => AutomationColorValue;
        internal static string ManualColor => ManualColorValue;
        internal static string ErrorColor => ErrorColorValue;
    }
}