
factions = ['alliance', 'horde']

"""
https://develop.battle.net/documentation/guides/regionality-and-apis
"""
regions = [
    {'code': 'us', 'locales': ['en_US', 'es_MX', 'pt_BR']},
    {'code': 'eu', 'locales': ['en_GB', 'es_ES', 'fr_FR', 'ru_RU', 'de_DE', 'pt_PT', 'it_IT']},
    {'code': 'kr', 'locales': ['ko_KR']},
    {'code': 'tw', 'locales': ['zh_TW']},
    #{'code': 'cn', 'locales': ['zh_CN']}
]

"""
https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
"""
apis = [
    {
        'group': 'Achievement', 
        'path': '/data/wow/achievement-category/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Achievement', 
        'path': '/data/wow/achievement/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Connected Realm', 
        'path': '/data/wow/connected-realm/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    #{
    #    'group': 'Connected Realm', 
    #    'path': '/data/wow/connected-realm/{connectedRealmId}', 
    #    'namespace': 'dynamic', 
    #    'connectedRealmId': {
    #        'source': '/data/wow/connected-realm/index',
    #        'loop': lambda l: l
    #    }
    #},
    {
        'group': 'Covenant', 
        'path': '/data/wow/covenant/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Covenant', 
        'path': '/data/wow/covenant/soulbind/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Covenant', 
        'path': '/data/wow/covenant/conduit/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Creature', 
        'path': '/data/wow/creature-family/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Creature', 
        'path': '/data/wow/creature-type/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Guild Crest', 
        'path': '/data/wow/guild-crest/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Item', 
        'path': '/data/wow/item-class/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Item', 
        'path': '/data/wow/item-set/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Journal', 
        'path': '/data/wow/journal-expansion/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Journal', 
        'path': '/data/wow/journal-encounter/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Journal', 
        'path': '/data/wow/journal-instance/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Modified Crafting', 
        'path': '/data/wow/modified-crafting/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Modified Crafting', 
        'path': '/data/wow/modified-crafting/category/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Modified Crafting', 
        'path': '/data/wow/modified-crafting/reagent-slot-type/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Mount', 
        'path': '/data/wow/mount/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Mythic Keystone Affix', 
        'path': '/data/wow/keystone-affix/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Mythic Keystone Dungeon', 
        'path': '/data/wow/mythic-keystone/dungeon/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    {
        'group': 'Mythic Keystone Dungeon', 
        'path': '/data/wow/mythic-keystone/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    {
        'group': 'Mythic Keystone Dungeon', 
        'path': '/data/wow/mythic-keystone/period/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    {
        'group': 'Pet', 
        'path': '/data/wow/pet/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Pet', 
        'path': '/data/wow/pet-ability/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Playable Class', 
        'path': '/data/wow/playable-class/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Playable Race', 
        'path': '/data/wow/playable-race/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Playable Specialization', 
        'path': '/data/wow/playable-specialization/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Power Type', 
        'path': '/data/wow/power-type/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Profession', 
        'path': '/data/wow/profession/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'PvP Season', 
        'path': '/data/wow/pvp-season/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    {
        'group': 'PvP Tier', 
        'path': '/data/wow/pvp-tier/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Quest', 
        'path': '/data/wow/quest/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Quest', 
        'path': '/data/wow/quest/category/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Quest', 
        'path': '/data/wow/quest/area/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Quest', 
        'path': '/data/wow/quest/type/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Realm', 
        'path': '/data/wow/realm/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    {
        'group': 'Region', 
        'path': '/data/wow/region/index', 
        'namespace': 'dynamic', 
        'index': True
    },
    {
        'group': 'Reputations', 
        'path': '/data/wow/reputation-faction/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Reputations', 
        'path': '/data/wow/reputation-tiers/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Talent', 
        'path': '/data/wow/talent/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Talent', 
        'path': '/data/wow/pvp-talent/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Tech Talent', 
        'path': '/data/wow/tech-talent-tree/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Tech Talent', 
        'path': '/data/wow/tech-talent/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Title', 
        'path': '/data/wow/title/index', 
        'namespace': 'static', 
        'index': True
    },
    {
        'group': 'Title', 
        'path': '/data/wow/title/{titleId}', 
        'namespace': 'static', 
        'titleId': {
            'source': '/data/wow/title/index',
            'list': 'titles',
            'value': lambda item: item['id']
        }
    },
]
