local _, ns = ...
local L = ns.L or {}

ns.Data = ns.Data or {}

local Data = ns.Data

Data.PREY_WEEKLY_QUEST_ID = 94446
Data.PREY_WEEKLY_QUEST_TARGET = 3
Data.PREY_PREFERRED_QUEST_ID = 91277
Data.PREY_PREFERRED_QUEST_TARGET = 1
Data.DELVE_WEEKLY_DROP_QUEST_ID = 93784

Data.MIDNIGHT_SPARK_POOL = {
    93766,
    93767,
    93769,
    93889,
    93890,
    93891,
    93892,
    93909,
    93910,
    93911,
    93912,
    93913,
    94457,
    95843,
}

Data.MIDNIGHT_SPARK_VARIANT_SUFFIX = {
    [93767] = L.MIDNIGHT_VARIANT_ARCANTINA or "Arcantina",
    [93892] = L.MIDNIGHT_VARIANT_STORMARION or "Stormarion Assault",
    [93910] = L.MIDNIGHT_VARIANT_PREY or "Prey",
    [94457] = L.MIDNIGHT_VARIANT_BATTLEGROUNDS or "Battlegrounds",
}

Data.PREY_RENOWN_FACTION_ID = 2764
Data.PREY_DIFFICULTY_CAP = 4
Data.PREY_DIFFICULTY_ORDER = {
    "normal",
    "hard",
    "nightmare",
}

Data.PREY_TARGET_QUESTS = {
    normal = {
        91095, 91096, 91097, 91098, 91099, 91100, 91101, 91102, 91103, 91104,
        91105, 91106, 91107, 91108, 91109, 91110, 91111, 91112, 91113, 91114,
        91115, 91116, 91117, 91118, 91119, 91120, 91121, 91122, 91123, 91124,
    },
    hard = {
        91210, 91212, 91214, 91216, 91218, 91220, 91222, 91224, 91226, 91228,
        91230, 91232, 91234, 91236, 91238, 91240, 91242, 91243, 91244, 91245,
        91246, 91247, 91248, 91249, 91250, 91251, 91252, 91253, 91254, 91255,
    },
    nightmare = {
        91211, 91213, 91215, 91217, 91219, 91221, 91223, 91225, 91227, 91229,
        91231, 91233, 91235, 91237, 91239, 91241, 91256, 91257, 91258, 91259,
        91260, 91261, 91262, 91263, 91264, 91265, 91266, 91267, 91268, 91269,
    },
}

Data.PREY_DIFFICULTY_RENOWN = {
    normal = 0,
    hard = 1,
    nightmare = 4,
}

Data.PVP_WEEKLY_QUEST_POOLS = {
    {
        key = "rotating",
        labelKey = "PVP_WEEKLY_ROTATING",
        fallbackLabel = L.PVP_WEEKLY_ROTATING or "Rotating Weekly",
        quests = {
            { id = 93502, fallbackTitle = L.PVP_WEEKLY_ROTATING_SOLO or "Veiled Solo" },
            { id = 93505, fallbackTitle = L.PVP_WEEKLY_ROTATING_WAR or "Veiled War" },
            { id = 93503, fallbackTitle = L.PVP_WEEKLY_ROTATING_TEAMWORK or "Veiled Cooperation" },
            { id = 93499, fallbackTitle = L.PVP_WEEKLY_ROTATING_ARENAS or "Veiled Arenas" },
            { id = 93506, fallbackTitle = L.PVP_WEEKLY_BATTLEGROUND_QUEST or "Veiled Battle" },
            { id = 93504, fallbackTitle = L.PVP_WEEKLY_BATTLEGROUND_SKIRMISH_QUEST or "Veiled Skirmish" },
        },
    },
    {
        key = "warmode",
        labelKey = "PVP_WEEKLY_WARMODE",
        fallbackLabel = L.PVP_WEEKLY_WARMODE or "War Mode",
        quests = {
            { id = 93425, fallbackTitle = "Sparks of War: Harandar" },
            { id = 93423, fallbackTitle = "Sparks of War: Eversong Woods" },
            { id = 93426, fallbackTitle = "Sparks of War: Voidstorm" },
            { id = 93424, fallbackTitle = "Sparks of War: Zul'Aman" },
        },
    },
    {
        key = "brawl",
        labelKey = "PVP_WEEKLY_BRAWL",
        fallbackLabel = L.PVP_WEEKLY_BRAWL or "PvP Brawl",
        quests = {
            { id = 47148, fallbackTitle = L.PVP_WEEKLY_BRAWL_QUEST or "Something Different" },
        },
    },
}

Data.MIDNIGHT_PROFESSION_SERVICE_QUESTS = {
    alchemy = { 93690 },
    blacksmithing = { 93691 },
    engineering = { 93692 },
    inscription = { 93693 },
    jewelcrafting = { 93694 },
    leatherworking = { 93695 },
    tailoring = { 93696 },
    enchanting = { 93697, 93698, 93699 },
    herbalism = { 93700, 93701, 93702, 93703, 93704 },
    mining = { 93705, 93706, 93707, 93708, 93709 },
    skinning = { 93710, 93711, 93712, 93713, 93714 },
}

Data.MIDNIGHT_PROFESSION_TREATISE_QUESTS = {
    alchemy = 95127,
    blacksmithing = 95128,
    enchanting = 95129,
    engineering = 95138,
    herbalism = 95130,
    inscription = 95131,
    jewelcrafting = 95133,
    leatherworking = 95134,
    mining = 95135,
    skinning = 95136,
    tailoring = 95137,
}

Data.DARKMOON_PROFESSION_QUESTS = {
    alchemy = {
        id = 29506,
        fallbackTitle = "A Fizzy Fusion",
        items = {
            { id = 1645, count = 5 },
        },
    },
    blacksmithing = {
        id = 29508,
        fallbackTitle = "Baby Needs Two Pair of Shoes",
    },
    enchanting = {
        id = 29510,
        fallbackTitle = "Putting Trash to Good Use",
    },
    engineering = {
        id = 29511,
        fallbackTitle = "Talkin' Tonks",
    },
    herbalism = {
        id = 29514,
        fallbackTitle = "Herbs for Healing",
    },
    inscription = {
        id = 29515,
        fallbackTitle = "Writing the Future",
        items = {
            { id = 39354, count = 5 },
        },
    },
    jewelcrafting = {
        id = 29516,
        fallbackTitle = "Keeping the Faire Sparkling",
    },
    leatherworking = {
        id = 29517,
        fallbackTitle = "Eyes on the Prizes",
        items = {
            { id = 2320, count = 5 },
            { id = 6260, count = 5 },
            { id = 6529, count = 10 },
        },
    },
    mining = {
        id = 29518,
        fallbackTitle = "Rearm, Reuse, Recycle",
    },
    skinning = {
        id = 29519,
        fallbackTitle = "Tan My Hide",
    },
    tailoring = {
        id = 29520,
        fallbackTitle = "Banners, Banners Everywhere!",
        items = {
            { id = 2320, count = 1 },
            { id = 6260, count = 1 },
            { id = 2604, count = 1 },
        },
    },
}

Data.DARKMOON_FAIRE_QUESTS = {
    {
        key = "hammer_time",
        id = 29463,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "It's Hammer Time",
            deDE = "Hau-den-Gnoll",
            frFR = "Il est temps de cogner",
            esES = "La hora de los martillazos",
        },
    },
    {
        key = "humanoid_cannonball",
        id = 29436,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "The Humanoid Cannonball",
            deDE = "Die menschliche Kanonenkugel",
            frFR = "Le boulet de canon humanoïde",
            esES = "La bala humana",
        },
    },
    {
        key = "he_shoots",
        id = 29438,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "He Shoots, He Scores!",
            deDE = "Er schießt, er trifft!",
            frFR = "Il tire et… il marque !",
            esES = "¡Dispara y marca!",
        },
    },
    {
        key = "tonk_commander",
        id = 29434,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "Tonk Commander",
            deDE = "Panzergeneral",
            frFR = "Commandant de chariotte",
            esES = "Comandante de tonque",
        },
    },
    {
        key = "firebird_challenge",
        id = 36481,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "Firebird's Challenge",
            deDE = "Herausforderung des Feuervogels",
            frFR = "Défi de l'Oiseau de feu",
            esES = "El desafío del pájaro de fuego",
        },
    },
    {
        key = "dance_dance_darkmoon",
        id = 64783,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "Dance Dance Darkmoon",
            deDE = "Dance Dance Darkmoon",
            frFR = "Dance Dance Darkmoon",
            esES = "Dance Dance Darkmoon",
        },
    },
    {
        key = "target_turtle",
        id = 29455,
        reset = "daily",
        category = "game",
        costItemID = 71083,
        title = {
            enUS = "Target: Turtle",
            deDE = "Werft den Ring",
            frFR = "Cible : tortue",
            esES = "Objetivo: tortuga",
        },
    },
    {
        key = "real_race",
        id = 37910,
        reset = "daily",
        category = "race",
        costItemID = 71083,
        title = {
            enUS = "The Real Race",
            deDE = "Die große Sause",
            frFR = "La course folle",
            esES = "La carrera real",
        },
    },
    {
        key = "keep_racing",
        id = 33756,
        reset = "daily",
        category = "race",
        costItemID = 71083,
        title = {
            enUS = "Let's Keep Racing!",
            deDE = "Und nochmal, weil's so schön war!",
            frFR = "Encore un tour !",
            esES = "¡Sigamos compitiendo!",
        },
    },
    {
        key = "real_big_race",
        id = 37911,
        reset = "daily",
        category = "race",
        costItemID = 71083,
        title = {
            enUS = "The Real Big Race",
            deDE = "Die ganz große Sause",
            frFR = "La grande course folle",
            esES = "La carrera del siglo",
        },
    },
    {
        key = "more_big_racing",
        id = 37868,
        reset = "daily",
        category = "race",
        costItemID = 71083,
        title = {
            enUS = "More Big Racing!",
            deDE = "Noch ein großes Rennen!",
            frFR = "Encore plus de grandes courses folles",
            esES = "¡Que siga la carrera!",
        },
    },
    {
        key = "darkmoon_pet_battle",
        id = 32175,
        reset = "daily",
        category = "battle_pet",
        title = {
            enUS = "Darkmoon Pet Battle!",
            deDE = "Haustierkampf des Dunkelmonds!",
            frFR = "Combat de mascotte de Sombrelune",
            esES = "¡Duelo de mascotas de la Luna Negra!",
        },
    },
    {
        key = "darkmoon_challenger",
        id = 36471,
        reset = "daily",
        category = "battle_pet",
        title = {
            enUS = "A New Darkmoon Challenger!",
            deDE = "Ein neuer Herausforderer des Dunkelmonds!",
            frFR = "Un nouvel adversaire à Sombrelune !",
            esES = "¡Un nuevo contendiente de la Luna Negra!",
        },
    },
    {
        key = "test_your_strength",
        id = 29433,
        reset = "darkmoon",
        category = "faire",
        title = {
            enUS = "Test Your Strength",
            deDE = "Beweist Eure Stärke",
            frFR = "Testez votre force",
            esES = "Pon a prueba tu fuerza",
        },
    },
    {
        key = "death_metal_knight",
        id = 47767,
        reset = "daily",
        category = "faire",
        title = {
            enUS = "Death Metal Knight",
            deDE = "Death Metal Ritter",
            frFR = "Death Metal Knight",
            esES = "Death Metal Knight",
        },
    },
    {
        key = "curious_crystal",
        id = 29443,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71635,
        title = {
            enUS = "A Curious Crystal",
            deDE = "Ein merkwürdiger Kristall",
            frFR = "Un étrange cristal",
            esES = "Un cristal curioso",
        },
    },
    {
        key = "exotic_egg",
        id = 29444,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71636,
        title = {
            enUS = "An Exotic Egg",
            deDE = "Ein exotisches Ei",
            frFR = "Un œuf exotique",
            esES = "Un huevo exótico",
        },
    },
    {
        key = "intriguing_grimoire",
        id = 29445,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71637,
        title = {
            enUS = "An Intriguing Grimoire",
            deDE = "Ein faszinierender Zauberfoliant",
            frFR = "Un grimoire fascinant",
            esES = "Un grimorio intrigante",
        },
    },
    {
        key = "wondrous_weapon",
        id = 29446,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71638,
        title = {
            enUS = "A Wondrous Weapon",
            deDE = "Eine wundersame Waffe",
            frFR = "Une arme extraordinaire",
            esES = "Un arma asombrosa",
        },
    },
    {
        key = "master_strategist",
        id = 29451,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71715,
        title = {
            enUS = "The Master Strategist",
            deDE = "Der Meisterstratege",
            frFR = "Le maître stratège",
            esES = "El maestro estratega",
        },
    },
    {
        key = "tools_of_divination",
        id = 29464,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71716,
        title = {
            enUS = "Tools of Divination",
            deDE = "Werkzeuge der Weissagung",
            frFR = "Outils de divination",
            esES = "Herramientas de adivinación",
        },
    },
    {
        key = "captured_banner",
        id = 29456,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71951,
        title = {
            enUS = "A Captured Banner",
            deDE = "Ein erbeutetes Banner",
            frFR = "Une bannière capturée",
            esES = "Un estandarte capturado",
        },
    },
    {
        key = "enemy_insignia",
        id = 29457,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71952,
        title = {
            enUS = "The Enemy's Insignia",
            deDE = "Das Insigne des Feindes",
            frFR = "L'insigne de l'ennemi",
            esES = "La insignia del enemigo",
        },
    },
    {
        key = "captured_journal",
        id = 29458,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 71953,
        title = {
            enUS = "The Captured Journal",
            deDE = "Das erbeutete Tagebuch",
            frFR = "Le journal égaré",
            esES = "El diario encontrado",
        },
    },
    {
        key = "moonfang_pelt",
        id = 33354,
        reset = "darkmoon",
        category = "artifact",
        startItemID = 105891,
        title = {
            enUS = "Moonfang's Pelt",
            deDE = "Mondfangs Pelz",
            frFR = "Fourrure de Croc-de-Lune",
            esES = "Pelambre de Colmillo Lunar",
        },
    },
}

Data.MIDNIGHT_WORLD_BOSS_POOL = {
    92034, -- Thorm'belan
    92123, -- Cragpine
    92560, -- Lu'ashal
    92636, -- Predaxas
}

Data.MIDNIGHT_WORLD_BOSS_NAME_PATTERNS = {
    "thorm",
    "crag",
    "lu'ashal",
    "predax",
}

Data.SPECIAL_ASSIGNMENT_ENTRIES = {
    { quest = 92145, unlockQuest = 92848 },
    { quest = 92063, unlockQuest = 94390 },
    { quest = 93013, unlockQuest = 94391 },
    { quest = 93438, unlockQuest = 94743 },
    { quest = 93244, unlockQuest = 94795 },
    { quest = 91390, unlockQuest = 94865 },
    { quest = 91796, unlockQuest = 94866 },
    { quest = 92139, unlockQuest = 95435 },
}

Data.SILVERMOON_COURT_FAVOR_QUEST_ID = 89289
Data.SILVERMOON_RUNESTONE_POOL = {
    90573,
    90574,
    90575,
    90576,
}
Data.SALTHERILS_FAVOR_ITEM_ID = 238987
Data.MIDNIGHT_ABUNDANT_OFFERINGS_QUEST_ID = 89507
Data.MIDNIGHT_ABUNDANT_OFFERINGS_META_QUEST_ID = 93890
Data.MIDNIGHT_ABUNDANCE_CONTINENT_MAP_ID = 2537
Data.MIDNIGHT_ABUNDANCE_POI_MAP = {
    [8672] = 2395,
    [8671] = 2437,
    [8676] = 2413,
    [8675] = 2405,
}
Data.MIDNIGHT_LOST_LEGENDS_QUEST_ID = 89268
Data.MIDNIGHT_LOST_LEGENDS_RELIC_QUEST_ID = 92713
Data.MIDNIGHT_LOST_LEGENDS_REPEATABLE_POOL = {
    92716,
    92719,
    92720,
    92721,
    92722,
    92724,
    92725,
}
Data.MIDNIGHT_LOST_LEGENDS_META_QUEST_ID = 93891
Data.MIDNIGHT_STORMARION_ASSAULT_QUEST_ID = 90962
Data.MIDNIGHT_STORMARION_ASSAULT_META_QUEST_ID = 93892
Data.MIDNIGHT_VOID_ASSAULTS_QUEST_ID = 94386
Data.MIDNIGHT_VOID_ASSAULTS_QUEST_POOL = {
    94386,
    94385,
}

Data.HOUSING_WEEKLY_POOL = {
    95440,
    95416,
    95438,
}
Data.HOUSING_WEEKLY_TITLE_PATTERNS = {
    "community engagement",
    "housewarming",
    "housing weekly",
    "gemeinschaftliches engagement",
    "einweihungsfeier",
    "ab die post",
    "vermisste tiere",
    "verlorene tiere",
    "missing pets",
    "wohn",
    "housing",
}

Data.ROTATING_WORLD_WEEKLY_POOL = {
    93751,
    93752,
    93753,
    93754,
    93755,
    93756,
    93757,
    93758,
}
Data.ROTATING_WORLD_WEEKLY_PATTERNS = {
    "windrunner spire",
    "murder row",
    "magister's terrace",
    "maisara caverns",
    "den of nalorakk",
    "the blinding vale",
    "voidscar arena",
    "nexuspunkt",
    "nexus point",
    "nexuspunkt xenas",
    "nexus-point xenas",
    "nexus point xenas",
}
Data.ROTATING_WORLD_AETHAS_POOL = {
    93598,
    93595,
    93605,
    93611,
    93612,
    93613,
    93593,
}
Data.ROTATING_WORLD_AETHAS_FALLBACK_NAMES = {
    [93598] = "Emissary of War",
    [93595] = "A Call to Delves",
    [93611] = "A Shattered Path Through Time",
    [93612] = L.PVE_WEEKLY_AETHAS_ARENA_CALLS or "The Arena Calls",
}
Data.ROTATING_WORLD_AETHAS_PATTERNS = {
    "abgesandter des krieges",
    "ruf der tiefe",
    "ein zerschmetterter pfad durch die zeit",
    "a shattered path through time",
    "call of the deep",
    "emissary of war",
    "die arena ruft",
    "the arena calls",
}

Data.DAILY_WANTED_HARANDAR_POOL = {
    92012, -- WANTED: Gorebarb's Pincers
    92013, -- WANTED: Dionaea's Thorntusks
    91980, -- WANTED: Hellebora's Thorn
    91970, -- WANTED: Gelatonius
    91982, -- WANTED: Toadshade's Petals
    92010, -- WANTED: Slewstalk's Stalks
    91998, -- WANTED: Muckmire's Choking Vines
}

Data.DAILY_WANTED_HARANDAR_NPC = "Shul'ka Li'tya"
Data.DAILY_WANTED_HARANDAR_AREA = "Harandar"
Data.DAILY_WANTED_HARANDAR_WAYPOINT = {
    mapIDs = { 2413 },
    x = 52,
    y = 74,
}

Data.DAILY_DECOR_DUEL_QUEST_ID = 93870

Data.DELVE_TROVEHUNTERS_BOUNTY_ITEM_ID = 252415
Data.DELVE_TROVEHUNTERS_BOUNTY_FLAG_QUEST_ID = 86371
Data.DELVE_TROVEHUNTERS_UNLOCK_FACTION_ID = 2722
Data.DELVE_TROVEHUNTERS_UNLOCK_RENOWN = 2
Data.DELVE_GILDED_STASH_SPELL_ID = 1216211
Data.DELVE_GILDED_STASH_WIDGET_ID = 7591
Data.DELVE_BONUS_RENOWN_FLAGS = {
    { questID = 93821, factionID = 2710, fallbackName = "Silvermoon" },
    { questID = 93819, factionID = 2696, fallbackName = "Amani" },
    { questID = 93822, factionID = 2704, fallbackName = "Harandar" },
    { questID = 93820, factionID = 2699, fallbackName = "Singularity" },
}

Data.KNOWN_MIDNIGHT_BOUNTIFUL_POIS = {
    { mapID = 2424, poiID = 8428 }, -- Parhelion Plaza
    { mapID = 2395, poiID = 8438 }, -- The Shadow Enclave
    { mapID = 2437, poiID = 8444 }, -- Atal'Aman
    { mapID = 2437, poiID = 8442 }, -- Twilight Crypt
    { mapID = 2405, poiID = 8432 }, -- Shadowguard Point
    { mapID = 2405, poiID = 8430 }, -- Sunkiller Sanctum
    { mapID = 2413, poiID = 8436 }, -- The Gulf of Memory
    { mapID = 2413, poiID = 8434 }, -- The Grudge Pit
    { mapID = 2393, poiID = 8426 }, -- Collegiate Calamity
    { mapID = 2393, poiID = 8440 }, -- The Darkway
}

Data.KNOWN_DELVE_MAP_IDS = {
    2535,
    2502,
    2545,
    2547,
    2525,
    2504,
    2510,
    2505,
    2528,
    2571,
    2506,
}

Data.BOUNTIFUL_SAFETY_MAP_IDS = {
    2274, 2339, 2535, 2502, 2545, 2547, 2525, 2504, 2510, 2505, 2528, 2571, 2506, 2248, 2214, 2215, 2216, 2213, 2255,
}

Data.WORLD_KEY_SHARD_CURRENCY_IDS = {
    3310, -- Coffer Key Shard
}

Data.WORLD_DUNDUN_SHARD_CURRENCY_IDS = {
    3376, -- Shard of Dundun
}

Data.PROFESSION_SKILL_LINE_TO_KEY = {
    [171] = "alchemy",
    [164] = "blacksmithing",
    [333] = "enchanting",
    [202] = "engineering",
    [182] = "herbalism",
    [773] = "inscription",
    [755] = "jewelcrafting",
    [165] = "leatherworking",
    [186] = "mining",
    [393] = "skinning",
    [197] = "tailoring",
}
