local _, addon = ...

local function SplitAbilityParts(input, delimiter)
    local result = {}
    local pattern = "([^" .. delimiter .. "]*)"
    local normalizedAbility = string.gsub(input, "||", "|???|")

    local lastPos = 1
    for part in string.gmatch(normalizedAbility, pattern) do
        table.insert(result, part)
        lastPos = lastPos + #part + 1
    end

    if input:sub(-1) == delimiter then
        table.insert(result, "")
    end

    return result
end
addon.API.SplitAbilityParts = SplitAbilityParts


local function GetEncounterAbility(abilityKey)
    return addon.data.encounter[abilityKey] or nil
end
addon.API.GetEncounterAbility = GetEncounterAbility

local function GetEncounter(bossKey)
    return {
        abilities = addon.data.encounter[bossKey] or nil,
        overview = addon.data.encounter[bossKey .. "_summary_instance"] or nil,
        tank = addon.data.encounter[bossKey .. "_summary_tank"] or nil,
        healer = addon.data.encounter[bossKey .. "_summary_healer"] or nil,
        dps = addon.data.encounter[bossKey .. "_summary_dps"] or nil,
    }
end
addon.API.GetEncounter = GetEncounter