local ADDON_NAME = ...
---@cast ADDON_NAME string

---@class AddonPrivate
local Private = select(2, ...)

local constants = {}

Private.constants = constants

--- Change these when releasing a new expansion
constants.EXPANSIONS = {
    "Back from the Beyond",
    "Farewell to Arms",
	"A World Awoken",
	"Worldsoul-Searching",
}
constants.ADDON_NAME = ADDON_NAME
constants.ADDON_VERSION = C_AddOns.GetAddOnMetadata(ADDON_NAME, "Version")
constants.ADDON_MEDIA_PATH = [[Interface\AddOns\]] .. constants.ADDON_NAME .. [[\Media]]
constants.ADDON_LOGO = [[Interface\Icons\Achievement_BG_winAB_underXminutes]]

constants.COLORS = {
    WHITE = CreateColorFromHexString("FFecf0f1"),

    HORDE = CreateColorFromHexString("ffff8888"),
    ALLIANCE = CreateColorFromHexString("2470c2FF"),

    POSITIVE = CreateColorFromHexString("ff00ff00"),
    NEUTRAL = CreateColorFromHexString("ffffff00"),
    NEGATIVE = CreateColorFromHexString("ffff0000"),

    BLIZZ_FONT_COLOR = CreateColor(GameFontNormal:GetTextColor()),
}
constants.MEDIA = {
    FONTS = {
        DEFAULT = GameFontNormal:GetFont(),
    },
    TEXTURES = {
        LOGO = constants.ADDON_MEDIA_PATH .. [[\Textures\logo.tga]]
    }
}

constants.FONT_OBJECTS = {
    SMALL = constants.ADDON_NAME .. 'Small',
    NORMAL = constants.ADDON_NAME .. 'Normal',
    HEADING = constants.ADDON_NAME .. 'Heading'
}

do
    local font = CreateFont(constants.FONT_OBJECTS.SMALL)
    font:SetFont(constants.MEDIA.FONTS.DEFAULT, 10, "")
    font:SetJustifyH("LEFT")
    font:SetJustifyV("MIDDLE")
    font:SetShadowOffset(1, -1)
    font:SetShadowColor(0, 0, 0, 1)
    font:SetTextColor(constants.COLORS.BLIZZ_FONT_COLOR:GetRGBA())
end
do
    local font = CreateFont(constants.FONT_OBJECTS.NORMAL)
    font:SetFont(constants.MEDIA.FONTS.DEFAULT, 12, "")
    font:SetJustifyH("LEFT")
    font:SetJustifyV("MIDDLE")
    font:SetTextColor(constants.COLORS.BLIZZ_FONT_COLOR:GetRGBA())
end
do
    local font = CreateFont(constants.FONT_OBJECTS.HEADING)
    font:SetFont(constants.MEDIA.FONTS.DEFAULT, 16, "")
    font:SetJustifyH("CENTER")
    font:SetJustifyV("MIDDLE")
    font:SetTextColor(constants.COLORS.BLIZZ_FONT_COLOR:GetRGBA())
end
