using System.Collections.Generic;

namespace UVC.Twin.MonitoringUI
{
    internal static class MonitoringUIDefaultData
    {
        public const string DefaultCurrentDate = "2025-02-27";

        public static List<SideMenuItem> BuildSideMenuItems()
        {
            return new List<SideMenuItem>
            {
                new()
                {
                    Label = "i",
                    DisplayName = "전체OVERVIEW",
                    NavigationTabs = new List<string>
                    {
                        "Trans Bay", "25 Bay", "24 Bay", "23 Bay", "22 Bay",
                    },
                    DefaultTabIndex = -1,
                    ViewState = UIViewState.CuttingOverview,
                },
                new()
                {
                    Label = "i",
                    DisplayName = "관별 OVERVIEW",
                    NavigationTabs = new List<string>
                    {
                        "A 관", "B 관", "C 관",
                    },
                    DefaultTabIndex = -1,
                },
                new()
                {
                    Label = "i",
                    DisplayName = "공단 OVERVIEW",
                    NavigationTabs = new List<string>
                    {
                        "1 공단", "2 공단",
                    },
                    DefaultTabIndex = -1,
                },
                new()
                {
                    Label = "i",
                    DisplayName = "팀장 OVERVIEW",
                    NavigationTabs = new List<string>
                    {
                        "운영팀", "보수팀",
                    },
                    DefaultTabIndex = -1,
                },
            };
        }

        public static Dictionary<string, List<EquipmentCardData>> BuildBayEquipmentMap()
        {
            var charts = new List<BarChartItemData>
            {
                new("장재 수(EA)", 999, 777, 1200),
                new("절단 장(m)", 999, 777, 1200),
                new("작업 시간(분)", 999, 777, 1200),
            };

            return new Dictionary<string, List<EquipmentCardData>>
            {
                ["Trans Bay"] = new List<EquipmentCardData>
                {
                    new("trans-summary", "Trans Bay 종합", true, charts),
                    new("pls51-1", "PLS51-1", false, charts,
                        "SN2427FLLA510PR01", "SN2427FLLA510PR02"),
                    new("pls51-2", "PLS51-2", false, charts,
                        "SN2427FLLA510PR03", "SN2427FLLA510PR04"),
                    new("pls52-1", "PLS52-1", false, charts,
                        "SN2427FLLA520PR01", "SN2427FLLA520PR02"),
                    new("pls52-2", "PLS52-2", false, charts,
                        "SN2427FLLA520PR03", "SN2427FLLA520PR04"),
                },
                ["25 Bay"] = new List<EquipmentCardData>
                {
                    new("25bay-summary", "25Bay 종합", true, charts),
                    new("pls45-1", "PLS45-1", false, charts,
                        "SN2527FLLA450PR01", "SN2527FLLA450PR02"),
                    new("pls45-2", "PLS45-2", false, charts,
                        "SN2527FLLA450PR03", "SN2527FLLA450PR04"),
                    new("pls46-1", "PLS46-1", false, charts,
                        "SN2527FLLA460PR01", "SN2527FLLA460PR02"),
                    new("pls46-2", "PLS46-2", false, charts,
                        "SN2527FLLA460PR03", "SN2527FLLA460PR04"),
                },
                ["24 Bay"] = new List<EquipmentCardData>
                {
                    new("24bay-summary", "24Bay 종합", true, charts),
                    new("pls43-1", "PLS43-1", false, charts,
                        "SN2427FLLA310PR01", "SN2427FLLA310PR02"),
                    new("pls43-2", "PLS43-2", false, charts,
                        "SN2427FLLA310PR03", "SN2427FLLA310PR04"),
                    new("pls43-3", "PLS43-3", false, charts,
                        "SN2427FLLA310PR05", "SN2427FLLA310PR06"),
                    new("pls43-4", "PLS43-4", false, charts,
                        "SN2427FLLA310PR07", "SN2427FLLA310PR08"),
                },
                ["23 Bay"] = new List<EquipmentCardData>
                {
                    new("23bay-summary", "23Bay 종합", true, charts),
                    new("pls41-1", "PLS41-1", false, charts,
                        "SN2327FLLA410PR01", "SN2327FLLA410PR02"),
                    new("pls41-2", "PLS41-2", false, charts,
                        "SN2327FLLA410PR03", "SN2327FLLA410PR04"),
                    new("pls42-1", "PLS42", false, charts,
                        "SN2327FLLA420PR01", "SN2327FLLA420PR02"),
                },
                ["22 Bay"] = new List<EquipmentCardData>
                {
                    new("22bay-summary", "22Bay 종합", true, charts),
                    new("pls39-1", "PLS39-1", false, charts,
                        "SN2227FLLA390PR01", "SN2227FLLA390PR02"),
                    new("pls39-2", "PLS39-2", false, charts,
                        "SN2227FLLA390PR03", "SN2227FLLA390PR04"),
                    new("pls40-1", "PLS40", false, charts,
                        "SN2227FLLA400PR01", "SN2227FLLA400PR02"),
                },
            };
        }

        public static List<ScheduleRowData> BuildScheduleRows() => new List<ScheduleRowData>
        {
            new("SN2633FLL5150PN54", "20250106", "20250107", "FL", "51.39", "PLS43-1"),
            new("SN2633FLL5150PN53", "20250106", "20250107", "FL", "47.25", "PLS43-2"),
            new("SN2633FLL5150PN55", "20250106", "20250107", "FL", "51.39", "PLS42"),
            new("SN2632FLLD110CP04", "20250106", "20250107", "FL", "39.709", "PLS43-3"),
            new("SN2632FLLD110CP06", "20250106", "20250107", "FL", "29.07", "PLS43-4"),
            new("SN2632FLLD110CP07", "20250106", "20250107", "FL", "28.389", "PLS42"),
            new("SN2632FLLD110CP02", "20250106", "20250107", "FL", "39.97", "PLS42"),
            new("SN2632FLLD110CP01", "20250106", "20250107", "FL", "35.233", "PLS42"),
            new("SN2653FLLT121PP04", "20250107", "20250108", "FL", "36.206", "PLS42"),
            new("SN2653FLLT121PP01", "20250107", "20250108", "FL", "37.356", "PLS42"),
        };

        public static List<string> BuildDefaultDateChoices() =>
            new List<string> { "2025-02-27", "2025-02-28", "2025-03-01" };
    }
}
