//
//  ColorSet.swift
//  forShip
//
//  Created by Mamoru Sugita on 2023/10/13.
//

import Foundation
import SwiftUI


enum ColorSet: String, CaseIterable{
    // MARK: Text Color
    /// Text - Body
    case Body
    /// Text - Body description
    case BodyDescriptiion
    /// Text - Button disable
    case ButtonDisable
    /// Text - Body checked
    case BodyChecked
    /// Text - Button text
    case ButtonText
    /// Text - Body Management ship 01
    case BodyManagementShip01
    /// Text - Body Management ship 02
    case BodyManagementShip02
    /// Text - Body Management ship 03
    case BodyManagementShip03
    /// Text - Body Management ship 04
    case BodyManagementShip04
    /// Text - Body Management ship 05
    case BodyManagementShip05
    /// Text - Weather unit
    case WeatherUnit
    /// Text - Body chat
    case BodyChat
    /// Text - Body notice
    case BodyNotice
    /// Text - Chat date
    case ChatDate

    // MARK: Background Color
    /// Background - Primary
    case BackgroundPrimary
    /// Background - Secondary
    case BackgroundSecondary
    /// Background - Bottom Nav
    case BottomNav
    /// Background - Teriary
    case BackgroundTeriary
    /// Background - Chat baloon
    case ChatBaloon
    /// Background - Modal window back
    case ModalWindowBack
    /// Background - Modal window front
    case ModalWindowFront
    /// Background - Login bk 01
    case LoginBk01
    /// Background - Login bk 02
    case LoginBk02
    /// Background - Login bk 03
    case LoginBk03
    /// Background - Splash
    case Splash
    /// Background - Acordion inner
    case AcordionInner
    /// Background - Emargency btn
    case EmargencyBtn
    /// Background - Chat form
    case ChatForm
    /// Background - Chat Emargency - red
    case ChatEmargency1
    /// Background - Chat Emargency - red
    case ChatEmargency2
    /// Background - Form Text
    case FormText
    /// Background - Notice bk
    case NoticeBk
    /// Background - List Active
    case ListActive

    
    
    // MARK: Button Color
    /// Button - Primary active
    case PrimaryActiveButton
    /// Button - Primary disable
    case PrimaryDisable
    /// Button - Toggle background
    case ToggleBackGround
    /// Button - Toggle background active
    case ToggleBackGroundActive
    /// Button - Toggle off
    case ToggleOff
    /// Button - Toggle on
    case ToggleOn
    /// Button - Slidebar
    case Slidebar
    /// Button - Slidebar Active
    case SlidebarActive
    /// Button - Coning active
    case ConingActive

    // MARK: Icon Color
    /// Icon - Primary active
    case PrimaryActiveIcon
    /// Icon - Secondary active
    case SecondaryActive
    /// Icon - Secondary disable
    case SecondaryDisable
    /// Icon - Footer nav
    case FooterNav
    /// Icon - Ship setting
    case ShipSetting
    /// Icon - Emargency icon
    case EmargencyIcon
    /// Icon - Emargency icon 02
    case EmargencyIcon02
    /// Icon - Task State Icon
    case TaskStateIcon


    // MARK: Line Color
    /// Line - Scroll bar
    case ScrollBarColor
    /// Line - Search bar
    case SearchBarColor
    /// Line - Line 01
    case LineColor01
    /// Line - Line 02
    case LineColor02
    /// Line - Line 03
    case LineColor03
    /// Line - Line 04
    case LineColor04
    /// Line - Line Modal
    case LineModal

    // MARK: Notice Color
    /// Notice - Notice
    case Notice

    // MARK: Status ship Color
    /// Status -

    // MARK: Tracking Color
    /// Tracking -


    

}

extension ColorSet{
    var color: Color{
        Color(self.colorName)
    }
    
    private var colorName: String{
        switch self{
        case .Body:
            "BodyColor"
        case .BodyDescriptiion:
            "BodyDescriptionColor"
        case .ButtonDisable:
            "ButtonDisableColor"
        case .BodyChecked:
            "BodyCheckedColor"
        case .ButtonText:
            "ButtonTextColor"
        case .BodyManagementShip01:
            "ManagementShipColor01"
        case .BodyManagementShip02:
            "ManagementShipColor02"
        case .BodyManagementShip03:
            "ManagementShipColor03"
        case .BodyManagementShip04:
            "ManagementShipColor04"
        case .BodyManagementShip05:
            "ManagementShipColor05"
        case .WeatherUnit:
            "WeatherUnitColor"
        case .BodyChat:
            "BodyChatColor"
        case .BodyNotice:
            "BodyNoticeColor"
        case .ChatDate:
            "ChatDateColor"
        case .BackgroundPrimary:
            "PrimaryColor"
        case .BackgroundSecondary:
            "SecondaryColor"
        case .BottomNav:
            "BottomNavColor"
        case .BackgroundTeriary:
            "TeriaryColor"
        case .ChatBaloon:
            "ChatBaloonColor"
        case .ModalWindowBack:
            "ModalWindowBackColor"
        case .ModalWindowFront:
            "ModalWindowFrontColor"
        case .LoginBk01:
            "LoginbkColor01"
        case .LoginBk02:
            "LoginbkColor02"
        case .LoginBk03:
            "LoginbkColor03"
        case .Splash:
            "SplashColor"
        case .AcordionInner:
            "AcordionInnerColor"
        case .EmargencyBtn:
            "EmargencyBtnColor"
        case .ChatForm:
            "ChatFormColor"
        case .ChatEmargency1:
            "ChatEmargencyColor1"
        case .ChatEmargency2:
            "ChatEmargencyColor2"
        case .FormText:
            "FormBackColor"
        case .NoticeBk:
            "NoticeBkColor"
        case .ListActive:
            "ListActiveColor"
        case .PrimaryActiveButton:
            "PrimaryActiveButtonColor"
        case .PrimaryDisable:
            "PrimaryDisableColor"
        case .ToggleBackGround:
            "ToggleBackgroundColor"
        case .ToggleBackGroundActive:
            "ToggleBackgroundActiveColor"
        case .ToggleOff:
            "ToggleOffColor"
        case .ToggleOn:
            "ToggleOnColor"
        case .Slidebar:
            "SliderColor"
        case .SlidebarActive:
            "SliderActiveColor"
        case .ConingActive:
            "ConingActiveColor"
        case .PrimaryActiveIcon:
            "PrimaryActiveIconColor"
        case .SecondaryActive:
            "SecondaryActiveColor"
        case .SecondaryDisable:
            "SecondaryDisableColor"
        case .FooterNav:
            "FooterNavColor"
        case .ShipSetting:
            "ShipSettingColor"
        case .EmargencyIcon:
            "EmargencyIconColor"
        case .EmargencyIcon02:
            "EmargencyIconColor02"
        case .TaskStateIcon:
            "TaskStateIconColor"
        case .ScrollBarColor:
            "ScrollBarColor"
        case .SearchBarColor:
            "SearchBarColor"
        case .LineColor01:
            "LineColor01"
        case .LineColor02:
            "LineColor02"
        case .LineColor03:
            "LineColor03"
        case .LineColor04:
            "LineColor04"
        case .LineModal:
            "LineModalColor"
        case .Notice:
            "NoticeColor"
        }
    }
}
