-- DynamicTooltips: Paladin Spell Data (Classic/TBC)
-- TBC Spell Coefficients for Paladin class
-- Training levels sourced from TBC Classic Wowhead

local _, DT = ...
DT.ClassData = DT.ClassData or {}

-- Skip Classic data on Retail
if DT.isRetail then return end

DT.ClassData.Paladin = {
    -- ========================================================================
    -- HOLY LIGHT - All Ranks (sp=0.714, Holy, Direct Heal)
    -- ========================================================================
    [635] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 1, rank = 1, maxRank = 11 },
    [639] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 6, rank = 2, maxRank = 11 },
    [647] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 14, rank = 3, maxRank = 11 },
    [1026] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 22, rank = 4, maxRank = 11 },
    [1042] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 30, rank = 5, maxRank = 11 },
    [3472] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 38, rank = 6, maxRank = 11 },
    [10328] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 46, rank = 7, maxRank = 11 },
    [10329] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 54, rank = 8, maxRank = 11 },
    [25292] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 60, rank = 9, maxRank = 11 },
    [27135] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 62, rank = 10, maxRank = 11 },
    [27136] = { name = "Holy Light", sp = 0.714, school = "Holy", type = "Direct", isHeal = true, level = 70, rank = 11, maxRank = 11 },

    -- ========================================================================
    -- FLASH OF LIGHT - All Ranks (sp=0.429, Holy, Direct Heal)
    -- ========================================================================
    [19750] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 20, rank = 1, maxRank = 7 },
    [19939] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 26, rank = 2, maxRank = 7 },
    [19940] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 34, rank = 3, maxRank = 7 },
    [19941] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 42, rank = 4, maxRank = 7 },
    [19942] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 50, rank = 5, maxRank = 7 },
    [19943] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 58, rank = 6, maxRank = 7 },
    [27137] = { name = "Flash of Light", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 66, rank = 7, maxRank = 7 },

    -- ========================================================================
    -- HOLY SHOCK (Damage) - All Ranks (sp=0.429, Holy, Direct, Talent)
    -- ========================================================================
    [20473] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", healSp = 0.429, level = 40, rank = 1, maxRank = 5 },
    [20929] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", healSp = 0.429, level = 48, rank = 2, maxRank = 5 },
    [20930] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", healSp = 0.429, level = 56, rank = 3, maxRank = 5 },
    [27174] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", healSp = 0.429, level = 64, rank = 4, maxRank = 5 },
    [33072] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", healSp = 0.429, level = 70, rank = 5, maxRank = 5 },

    -- ========================================================================
    -- HOLY SHOCK (Heal) - Triggered effects
    -- ========================================================================
    [25914] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 40, rank = 1, maxRank = 5 },
    [25913] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 48, rank = 2, maxRank = 5 },
    [25903] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 56, rank = 3, maxRank = 5 },
    [27175] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 64, rank = 4, maxRank = 5 },
    [33073] = { name = "Holy Shock", sp = 0.429, school = "Holy", type = "Direct", isHeal = true, level = 70, rank = 5, maxRank = 5 },

    -- ========================================================================
    -- EXORCISM - All Ranks (sp=0.429, Holy, Direct)
    -- ========================================================================
    [879] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 20, rank = 1, maxRank = 7 },
    [5614] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 28, rank = 2, maxRank = 7 },
    [5615] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 36, rank = 3, maxRank = 7 },
    [10312] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 44, rank = 4, maxRank = 7 },
    [10313] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 52, rank = 5, maxRank = 7 },
    [10314] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 60, rank = 6, maxRank = 7 },
    [27138] = { name = "Exorcism", sp = 0.429, school = "Holy", type = "Direct", level = 68, rank = 7, maxRank = 7 },

    -- ========================================================================
    -- HAMMER OF WRATH - All Ranks (sp=0.429, Holy, Ranged)
    -- ========================================================================
    [24275] = { name = "Hammer of Wrath", sp = 0.429, school = "Holy", type = "Ranged", level = 44, rank = 1, maxRank = 4 },
    [24274] = { name = "Hammer of Wrath", sp = 0.429, school = "Holy", type = "Ranged", level = 52, rank = 2, maxRank = 4 },
    [24239] = { name = "Hammer of Wrath", sp = 0.429, school = "Holy", type = "Ranged", level = 60, rank = 3, maxRank = 4 },
    [27180] = { name = "Hammer of Wrath", sp = 0.429, school = "Holy", type = "Ranged", level = 68, rank = 4, maxRank = 4 },

    -- ========================================================================
    -- AVENGER'S SHIELD - All Ranks (sp=0.091, Holy, Ranged, Talent)
    -- ========================================================================
    [31935] = { name = "Avenger's Shield", sp = 0.091, school = "Holy", type = "Ranged", level = 50, rank = 1, maxRank = 3 },
    [32699] = { name = "Avenger's Shield", sp = 0.091, school = "Holy", type = "Ranged", level = 60, rank = 2, maxRank = 3 },
    [32700] = { name = "Avenger's Shield", sp = 0.091, school = "Holy", type = "Ranged", level = 70, rank = 3, maxRank = 3 },

    -- ========================================================================
    -- CONSECRATION - All Ranks (sp=0.33, Holy, DoT)
    -- ========================================================================
    [26573] = { name = "Consecration", sp = 0.33, school = "Holy", type = "DoT", duration = 8, isAoE = true, level = 20, rank = 1, maxRank = 6 },
    [20116] = { name = "Consecration", sp = 0.33, school = "Holy", type = "DoT", duration = 8, isAoE = true, level = 30, rank = 2, maxRank = 6 },
    [20922] = { name = "Consecration", sp = 0.33, school = "Holy", type = "DoT", duration = 8, isAoE = true, level = 40, rank = 3, maxRank = 6 },
    [20923] = { name = "Consecration", sp = 0.33, school = "Holy", type = "DoT", duration = 8, isAoE = true, level = 50, rank = 4, maxRank = 6 },
    [20924] = { name = "Consecration", sp = 0.33, school = "Holy", type = "DoT", duration = 8, isAoE = true, level = 60, rank = 5, maxRank = 6 },
    [27173] = { name = "Consecration", sp = 0.33, school = "Holy", type = "DoT", duration = 8, isAoE = true, level = 70, rank = 6, maxRank = 6 },

    -- ========================================================================
    -- HOLY SHIELD - All Ranks (sp=0.056, Holy, Reflect, Talent)
    -- ========================================================================
    [20925] = { name = "Holy Shield", sp = 0.056, school = "Holy", type = "Reflect", level = 40, rank = 1, maxRank = 4 },
    [20927] = { name = "Holy Shield", sp = 0.056, school = "Holy", type = "Reflect", level = 50, rank = 2, maxRank = 4 },
    [20928] = { name = "Holy Shield", sp = 0.056, school = "Holy", type = "Reflect", level = 60, rank = 3, maxRank = 4 },
    [27179] = { name = "Holy Shield", sp = 0.056, school = "Holy", type = "Reflect", level = 70, rank = 4, maxRank = 4 },

    -- ========================================================================
    -- SEAL OF RIGHTEOUSNESS - All Ranks (sp=0.1, Holy, Proc)
    -- SP coefficient is flat 0.1 per hit (not weapon speed dependent)
    -- Base damage per hit scales with weapon speed (baked into tooltip)
    -- ========================================================================
    [21084] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 1, rank = 1, maxRank = 9 },
    [20287] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 10, rank = 2, maxRank = 9 },
    [20288] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 18, rank = 3, maxRank = 9 },
    [20289] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 26, rank = 4, maxRank = 9 },
    [20290] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 34, rank = 5, maxRank = 9 },
    [20291] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 42, rank = 6, maxRank = 9 },
    [20292] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 50, rank = 7, maxRank = 9 },
    [20293] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 58, rank = 8, maxRank = 9 },
    [27155] = { name = "Seal of Righteousness", sp = 0.1, school = "Holy", type = "Proc", weaponSpeedScaling = true, level = 66, rank = 9, maxRank = 9 },

    -- ========================================================================
    -- SEAL OF LIGHT - All Ranks (sp=0.15, Holy, Proc, Heal per Proc)
    -- ========================================================================
    [20165] = { name = "Seal of Light", sp = 0.15, school = "Holy", type = "Proc", isHeal = true, baseDamage = 65, level = 30, rank = 1, maxRank = 5 },
    [20347] = { name = "Seal of Light", sp = 0.15, school = "Holy", type = "Proc", isHeal = true, baseDamage = 95, level = 40, rank = 2, maxRank = 5 },
    [20348] = { name = "Seal of Light", sp = 0.15, school = "Holy", type = "Proc", isHeal = true, baseDamage = 130, level = 50, rank = 3, maxRank = 5 },
    [20349] = { name = "Seal of Light", sp = 0.15, school = "Holy", type = "Proc", isHeal = true, baseDamage = 180, level = 60, rank = 4, maxRank = 5 },
    [27160] = { name = "Seal of Light", sp = 0.15, school = "Holy", type = "Proc", isHeal = true, baseDamage = 210, level = 69, rank = 5, maxRank = 5 },

    -- ========================================================================
    -- SEAL OF WISDOM - All Ranks (sp=0, Holy, Proc, Mana Restore per Proc)
    -- ========================================================================
    [20166] = { name = "Seal of Wisdom", sp = 0, school = "Holy", type = "Proc", isManaRestore = true, baseDamage = 46, level = 38, rank = 1, maxRank = 4 },
    [20356] = { name = "Seal of Wisdom", sp = 0, school = "Holy", type = "Proc", isManaRestore = true, baseDamage = 59, level = 48, rank = 2, maxRank = 4 },
    [20357] = { name = "Seal of Wisdom", sp = 0, school = "Holy", type = "Proc", isManaRestore = true, baseDamage = 73, level = 58, rank = 3, maxRank = 4 },
    [27166] = { name = "Seal of Wisdom", sp = 0, school = "Holy", type = "Proc", isManaRestore = true, baseDamage = 85, level = 68, rank = 4, maxRank = 4 },

    -- ========================================================================
    -- LAY ON HANDS - All Ranks (no coefficient)
    -- ========================================================================
    [633] = { name = "Lay on Hands", sp = 0, school = "Holy", type = "Direct", isHeal = true, level = 10, rank = 1, maxRank = 4 },
    [2800] = { name = "Lay on Hands", sp = 0, school = "Holy", type = "Direct", isHeal = true, level = 30, rank = 2, maxRank = 4 },
    [10310] = { name = "Lay on Hands", sp = 0, school = "Holy", type = "Direct", isHeal = true, level = 50, rank = 3, maxRank = 4 },
    [27154] = { name = "Lay on Hands", sp = 0, school = "Holy", type = "Direct", isHeal = true, level = 69, rank = 4, maxRank = 4 },

    -- ========================================================================
    -- JUDGEMENT OF RIGHTEOUSNESS (triggered effect, scales with SoR rank)
    -- ========================================================================
    [20187] = { name = "Judgement of Righteousness", sp = 0.71, school = "Holy", type = "Direct" },

    -- ========================================================================
    -- OTHER SEALS & JUDGEMENTS
    -- ========================================================================
    [31801] = { name = "Seal of Vengeance", sp = 0.013, school = "Holy", type = "DoT" },
    [31803] = { name = "Holy Vengeance", sp = 0.013, school = "Holy", type = "DoT" },
    [53736] = { name = "Seal of Corruption", sp = 0.013, school = "Holy", type = "DoT" },

    -- Seal of Command: 7 PPM, deals 70% weapon damage as Holy + 29% SP
    [20424] = { name = "Seal of Command", sp = 0.29, school = "Holy", type = "Proc", sealPPM = 7, weaponDmgCoeff = 0.7 },

    -- Seal of Martyrdom: Every melee hit deals 70% weapon damage as Holy + 22% SP
    -- Also damages the Paladin for 10% of damage dealt
    [348704] = { name = "Seal of Martyrdom", sp = 0.22, school = "Holy", type = "Proc", sealWeaponDmgCoeff = 0.7 },

    [20271] = { name = "Judgement", sp = 0, type = "Ability" },

    -- ========================================================================
    -- BLESSING OF MIGHT - All Ranks (no coefficient)
    -- ========================================================================
    [19740] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 4, rank = 1, maxRank = 8 },
    [19834] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 12, rank = 2, maxRank = 8 },
    [19835] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 22, rank = 3, maxRank = 8 },
    [19836] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 32, rank = 4, maxRank = 8 },
    [19837] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 42, rank = 5, maxRank = 8 },
    [19838] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 52, rank = 6, maxRank = 8 },
    [25291] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 60, rank = 7, maxRank = 8 },
    [27140] = { name = "Blessing of Might", sp = 0, type = "Buff", level = 70, rank = 8, maxRank = 8 },

    -- ========================================================================
    -- BLESSING OF WISDOM - All Ranks (no coefficient)
    -- ========================================================================
    [19742] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 14, rank = 1, maxRank = 7 },
    [19850] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 24, rank = 2, maxRank = 7 },
    [19852] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 34, rank = 3, maxRank = 7 },
    [19853] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 44, rank = 4, maxRank = 7 },
    [19854] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 54, rank = 5, maxRank = 7 },
    [25290] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 60, rank = 6, maxRank = 7 },
    [27142] = { name = "Blessing of Wisdom", sp = 0, type = "Buff", level = 65, rank = 7, maxRank = 7 },

    -- ========================================================================
    -- HAMMER OF JUSTICE - All Ranks (no coefficient)
    -- ========================================================================
    [853] = { name = "Hammer of Justice", sp = 0, type = "CC", level = 8, rank = 1, maxRank = 4 },
    [5588] = { name = "Hammer of Justice", sp = 0, type = "CC", level = 24, rank = 2, maxRank = 4 },
    [5589] = { name = "Hammer of Justice", sp = 0, type = "CC", level = 40, rank = 3, maxRank = 4 },
    [10308] = { name = "Hammer of Justice", sp = 0, type = "CC", level = 54, rank = 4, maxRank = 4 },

    -- ========================================================================
    -- BLESSINGS & BUFFS (No coefficient, single entries)
    -- ========================================================================
    [31884] = { name = "Avenging Wrath", sp = 0, type = "Buff" },
    [20217] = { name = "Blessing of Kings", sp = 0, type = "Buff" },
    [6940] = { name = "Blessing of Sacrifice", sp = 0, type = "Buff" },
    [1044] = { name = "Blessing of Freedom", sp = 0, type = "Buff" },
    [1038] = { name = "Blessing of Salvation", sp = 0, type = "Buff" },
    [1022] = { name = "Blessing of Protection", sp = 0, type = "Buff" },
    [642] = { name = "Divine Shield", sp = 0, type = "Buff" },
    [498] = { name = "Divine Protection", sp = 0, type = "Buff" },

    -- ========================================================================
    -- UTILITY
    -- ========================================================================
    [4987] = { name = "Cleanse", sp = 0, type = "Dispel" },
    [1152] = { name = "Purify", sp = 0, type = "Dispel" },
    [10326] = { name = "Turn Undead", sp = 0, type = "CC" },
    [2878] = { name = "Turn Undead", sp = 0, type = "CC" },

    -- ========================================================================
    -- AURAS
    -- ========================================================================
    [7294] = { name = "Retribution Aura", sp = 0, type = "Aura" },
    [465] = { name = "Devotion Aura", sp = 0, type = "Aura" },
    [19746] = { name = "Concentration Aura", sp = 0, type = "Aura" },
    [19891] = { name = "Fire Resistance Aura", sp = 0, type = "Aura" },
    [19888] = { name = "Frost Resistance Aura", sp = 0, type = "Aura" },
    [19876] = { name = "Shadow Resistance Aura", sp = 0, type = "Aura" },
    [32223] = { name = "Crusader Aura", sp = 0, type = "Aura" },
}
