class Gw2BackstoryAnswer(Base): """Map the backstory/answers endpoint This module gives access to v2/backstory/answers enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/backstory/answers - https://github.com/arenanet/api-cdi/blob/master/v2/backstory/answers.js This endpoint shows information about backstory answers """ __tablename__ = "gw2_sto_backstory_answer" __table_args__ = endpoint_def('backstory/answers', locale=True, workers=1) # Columns pkid = Column(Integer, primary_key=True) id = Column(String, unique=True, nullable=False) title = Column(String, nullable=False) journal = Column(String, nullable=False) description = Column(String, nullable=False) question_id = Column(Integer, ForeignKey("gw2_sto_backstory_question.id"), nullable=False, info=col_json(keys='question')) races = Column(String, nullable=True) professions = Column(String, nullable=True) # Relations question = relationship("Gw2BackstoryQuestion", uselist=False)
class Gw2Story(Base): """Map the stories endpoint This class gives access to v2/stories enpoint and subendpoints. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/stories - https://github.com/arenanet/api-cdi/blob/master/v2/stories/index.js This endpoint shows information about stories """ __tablename__ = "gw2_sto_story" __table_args__ = endpoint_def('stories', locale=True, workers=1) # Columns id = Column(Integer, primary_key=True) season = Column(String, ForeignKey("gw2_sto_season.id"), nullable=False) name = Column(String, nullable=False) description = Column(String, nullable=False) timeline = Column(String, nullable=False) level = Column(Integer, nullable=False) order = Column(Integer, nullable=False) races = Column(Integer, nullable=True, default='') flags = Column(Integer, nullable=True, default='') # Relations chapters = relationship( "_Gw2StoryChapter", uselist=True, info=rel_json(_Gw2StoryChapter, fn=lambda j, pj: [dict(id=pj['id'], **x) for x in j]))
class Gw2Mastery(Base): """Map the masteries endpoint This class gives access to v2/masteries enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/masteries - https://github.com/arenanet/api-cdi/blob/master/v2/masteries.js This endpoint shows information about masteries """ __tablename__ = "gw2_pro_mastery" __table_args__ = endpoint_def('masteries', locale=True, workers=1) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) requirement = Column(String, nullable=False) order = Column(Integer, nullable=False) background = Column(String, nullable=False) region = Column(String, nullable=False) levels = relationship( "_Gw2MasteryLevel", uselist=True, info=rel_json( _Gw2MasteryLevel, fn=lambda j, pj: [dict(mastery_id=pj['id'], **x) for x in j]))
class Gw2BackstoryQuestion(Base): """Map the backstory/questions endpoint This module gives access to v2/backstory/questions enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/backstory/questions - https://github.com/arenanet/api-cdi/blob/master/v2/backstory/questions.js This endpoint shows information about backstory questions """ __tablename__ = "gw2_sto_backstory_question" __table_args__ = endpoint_def('backstory/questions', locale=True, workers=1) # Columns id = Column(Integer, primary_key=True) title = Column(String, nullable=False) description = Column(String, nullable=False) order = Column(Integer, nullable=False) races = Column(String, nullable=True) professions = Column(String, nullable=True) # Relations answers = relationship("Gw2BackstoryAnswer", uselist=True)
class Gw2Finisher(Base): """Map the finishers endpoint This class gives access to v2/finishers enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/finishers - https://github.com/arenanet/api-cdi/blob/master/v2/finishers.js This endpoint shows information about finishers """ __tablename__ = "gw2_misc_finisher" __table_args__ = endpoint_def('finishers', locale=True, workers=1) # Columns id = Column(Integer, primary_key=True) name = Column(String, nullable=False) unlock_details = Column(String, nullable=False) order = Column(Integer, nullable=False) icon = Column(String, nullable=False) # Relations unlock_items = relationship("Gw2Item", secondary="gw2_misc_finisher_item_rel", uselist=True, info=rel_json(_Gw2FinisherUnlock, fn=lambda j, pj: [{'id': pj['id'], 'item_id': x} for x in j]))
class Gw2MiniPet(Base): """Map the minis endpoint This class gives access to v2/minis enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/minis - https://github.com/arenanet/api-cdi/blob/master/v2/minis.js This endpoint shows information about minipets """ __tablename__ = "gw2_item_minipet" __table_args__ = endpoint_def('minis', locale=True, workers=3) # Columns id = Column(Integer, primary_key=True) name = Column(String, nullable=False) icon = Column(String, nullable=False) order = Column(Integer, nullable=False) unlock = Column(String, nullable=True, default='') item_id = Column(Integer, ForeignKey("gw2_item_item_miniature.id"), nullable=False) # Relations item = relationship("Gw2MiniatureItem", foreign_keys=[item_id], uselist=False)
class Gw2Skin(Base): """Map the skins endpoint This class gives access to v2/skins enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/skins - https://github.com/arenanet/api-cdi/blob/master/v2/skins.js This endpoint shows information about skins """ __tablename__ = "gw2_item_skin" __table_args__ = endpoint_def('skins', locale=True) # Columns id = Column(Integer, primary_key=True) name = Column(String, nullable=False) type = Column(String, nullable=False) flags = Column(String, nullable=True) restrictions = Column(String, nullable=True) icon = Column(String, nullable=True) rarity = Column(String, nullable=False) description = Column(String, nullable=True) slot = Column(String, nullable=True, info=col_json(keys=['details', 'type'])) weight_class = Column(String, nullable=True, info=col_json(keys=['details', 'weight_class'])) damage_type = Column(String, nullable=True, info=col_json(keys=['details', 'damage_type']))
class Gw2AchievementGroup(Base): """Map the achievements/groups endpoint This class gives access to v2/achievements/groups endpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/achievements/groups - https://github.com/arenanet/api-cdi/blob/master/v2/achievements/groups.js This endpoint shows information about achievements groups """ __tablename__ = "gw2_misc_achievement_group" __table_args__ = endpoint_def('achievements/groups', locale=True, workers=1) # Columns pkid = Column(Integer, primary_key=True) id = Column(String, unique=True, nullable=False) name = Column(String, nullable=False) description = Column(String, nullable=False) order = Column(Integer, nullable=False) # Relations categories = relationship( "Gw2AchievementCategory", secondary="gw2_misc_achievement_group_rel", uselist=True, info=rel_json(_Gw2AchievementGrouping, fn=lambda j, pj: [dict(group_id=pj['id'], category_id=x) for x in j]))
class Gw2Itemstat(Base): """Map the itemstats endpoint This class gives access to v2/itemstats enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/itemstats - https://github.com/arenanet/api-cdi/blob/master/v2/itemstats.js This endpoint shows information about items stats """ __tablename__ = "gw2_item_item_stat" __table_args__ = endpoint_def('itemstats', locale=True, workers=3) # Columns id = Column(Integer, primary_key=True) name = Column(String, nullable=False) agony_resistance = Column( Float, nullable=False, default=0, info=col_json(keys=['attributes', 'AgonyResistance'])) boon_duration = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'BoonDuration'])) condition_damage = Column( Float, nullable=False, default=0, info=col_json(keys=['attributes', 'ConditionDamage'])) condition_duration = Column( Float, nullable=False, default=0, info=col_json(keys=['attributes', 'ConditionDuration'])) crit_damage = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'CritDamage'])) healing = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'Healing'])) power = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'Power'])) precision = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'Precision'])) thoughness = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'Thoughness'])) vitality = Column(Float, nullable=False, default=0, info=col_json(keys=['attributes', 'Vitality']))
class Gw2Achievement(Base): """Map the achievements endpoint This class gives access to v2/achievements enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/achievements - https://github.com/arenanet/api-cdi/blob/master/v2/achievements/index.js This endpoint shows information about achievements """ __tablename__ = "gw2_misc_achievement" __table_args__ = endpoint_def('achievements', locale=True) # Columns id = Column(Integer, primary_key=True) name = Column(String, nullable=False) description = Column(String, nullable=False) icon = Column(String, default=None) requirement = Column(String, nullable=False) locked_text = Column(String, nullable=False) type = Column(String, nullable=False) flags = Column(String, nullable=True) point_cap = Column(Integer, nullable=True) # Relations tiers = relationship( "_Gw2AchievementTier", uselist=True, info=rel_json(_Gw2AchievementTier, fn=lambda j, pj: [dict(ach_id=pj['id'], **x) for x in j])) rewards = relationship( "_Gw2AchievementReward", uselist=True, info=rel_json(_Gw2AchievementReward, fn=lambda j, pj: [dict(ach_id=pj['id'], **x) for x in j])) bits = relationship( "_Gw2AchievementBit", uselist=True, info=rel_json(_Gw2AchievementBit, fn=lambda j, pj: [dict(ach_id=pj['id'], **x) for x in j])) prerequisites = relationship( "Gw2Achievement", secondary="gw2_misc_achievement_req_rel", primaryjoin="_Gw2AchievementRequires.ach_id == Gw2Achievement.id", secondaryjoin="_Gw2AchievementRequires.req_id == Gw2Achievement.id", uselist=True, info=rel_json(_Gw2AchievementRequires, fn=lambda j, pj: [{ 'ach_id': pj['id'], 'req_id': x } for x in j]))
class Gw2Recipe(Base): """Map the recipes endpoint This class gives access to v2/recipes enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/recipes - https://github.com/arenanet/api-cdi/blob/master/v2/recipes.js This endpoint shows information about recipes """ __tablename__ = "gw2_item_recipe" __table_args__ = endpoint_def('recipes', workers=10) # Columns id = Column(Integer, primary_key=True) type = Column(String, nullable=False) output_item_id = Column(Integer, ForeignKey("gw2_item_item.id"), nullable=False) output_item_count = Column(Integer, nullable=False) output_upgrade_id = Column(Integer, ForeignKey("gw2_item_guild_upgrade.id")) time_to_craft_ms = Column(Integer, nullable=False) disciplines = Column(String) min_rating = Column(Integer, nullable=False) flags = Column(String) chat_link = Column(String, nullable=False) # Relations output_items = relationship("Gw2Item", uselist=False) output_upgrade = relationship("Gw2GuildUpgrade", uselist=False) ingredients = relationship( "_Gw2RecipeIngredient", uselist=True, info=rel_json( _Gw2RecipeIngredient, fn=lambda j, pj: [dict(recipe_id=pj['id'], **x) for x in j])) guild_ingredients = relationship( "_Gw2RecipeGUIngredient", uselist=True, info=rel_json( _Gw2RecipeGUIngredient, fn=lambda j, pj: [dict(recipe_id=pj['id'], **x) for x in j])) unlocker = relationship( "Gw2ConsumableItem", primaryjoin="Gw2ConsumableItem.recipe_id == Gw2Recipe.id", uselist=False)
class Gw2World(Base): """Map the worlds endpoint This class gives access to v2/worlds enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/worlds - https://github.com/arenanet/api-cdi/blob/master/v2/worlds.js This endpoint shows information about server worlds """ __tablename__ = "gw2_misc_world" __table_args__ = endpoint_def('worlds', locale=True, workers=2) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) population = Column(String, nullable=False)
class _Gw2AccountTitle(Base): """Map the account/titles endpoint This endpoint shows the informations about unlocked titles of an account """ __tablename__ = "gw2_auth_account_title" __table_args__ = endpoint_def('account/titles', ep_type=EPType.sac, workers=1, rights=['account', 'unlocks'], parent='Gw2Token') id = Column(Integer, ForeignKey("gw2_misc_title.id"), primary_key=True) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), primary_key=True)
class Gw2Trait(Base): """Map the traits endpoint This class gives access to v2/traits enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/traits - https://github.com/arenanet/api-cdi/blob/master/v2/traits/traits.md This endpoint shows information about traits """ __tablename__ = "gw2_pro_trait" __table_args__ = endpoint_def('traits', locale=True) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) description = Column(String, nullable=False) icon = Column(String, nullable=False) specialization = Column(Integer, ForeignKey("gw2_pro_specialization.id"), nullable=False) tier = Column(Integer, nullable=False) order = Column(Integer, nullable=False) slot = Column(String, nullable=False) facts = relationship( "Gw2Fact", primaryjoin= "Gw2Trait.id == Gw2Fact.trait_id and Gw2Fact.requires_trait == None", uselist=True, info=rel_json(Gw2Fact, fn=lambda j, pj: [ dict(trait_id=pj['id'], is_traited=False, ord=i, **x) for i, x in enumerate(j) ])) traited_facts = relationship( "Gw2Fact", primaryjoin= "Gw2Trait.id == Gw2Fact.trait_id and Gw2Fact.requires_trait != None", uselist=True, info=rel_json(Gw2Fact, fn=lambda j, pj: [ dict(trait_id=pj['id'], is_traited=True, ord=i, **x) for i, x in enumerate(j) ])) Gw2Fact.trait_id.append_foreign_key(ForeignKey("gw2_pro_trait.id"))
class Gw2Legend(Base): """Map the Revenant's legends endpoint This class gives access to v2/legends enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/legends - https://github.com/arenanet/api-cdi/blob/master/v2/legends.js This endpoint shows information about legends """ __tablename__ = "gw2_pro_legend" __table_args__ = endpoint_def('legends', workers=1) pkid = Column(Integer, primary_key=True) id = Column(String, unique=True, nullable=False) swap_id = Column(Integer, ForeignKey("gw2_pro_skill.id"), nullable=False, info=col_json(keys='swap')) heal_id = Column(Integer, ForeignKey("gw2_pro_skill.id"), nullable=False, info=col_json(keys='heal')) elite_id = Column(Integer, ForeignKey("gw2_pro_skill.id"), nullable=False, info=col_json(keys='elite')) util0_id = Column(Integer, ForeignKey("gw2_pro_skill.id"), nullable=False, info=col_json(keys='utilities', fn=lambda j, pj: j[0])) util1_id = Column(Integer, ForeignKey("gw2_pro_skill.id"), nullable=False, info=col_json(keys='utilities', fn=lambda j, pj: j[1])) util2_id = Column(Integer, ForeignKey("gw2_pro_skill.id"), nullable=False, info=col_json(keys='utilities', fn=lambda j, pj: j[2])) swap = relationship("Gw2Skill", foreign_keys=[swap_id], uselist=False) heal = relationship("Gw2Skill", foreign_keys=[heal_id], uselist=False) elite = relationship("Gw2Skill", foreign_keys=[elite_id], uselist=False) util0 = relationship("Gw2Skill", foreign_keys=[util0_id], uselist=False) util1 = relationship("Gw2Skill", foreign_keys=[util1_id], uselist=False) util2 = relationship("Gw2Skill", foreign_keys=[util2_id], uselist=False)
class Gw2Pet(Base): """Map the Ranger's pets endpoint This class gives access to v2/pets enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/pets - https://github.com/arenanet/api-cdi/blob/master/v2/pets.js This endpoint shows information about pets """ __tablename__ = "gw2_pro_pet" __table_args__ = endpoint_def('pets', locale=True, workers=2) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) description = Column(String, nullable=False) icon = Column(String, nullable=False)
class Gw2Currency(Base): """Map the currencies endpoint This class gives access to v2/currencies enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/currencies - https://github.com/arenanet/api-cdi/blob/master/v2/currencies.js This endpoint shows information about currencies """ __tablename__ = "gw2_misc_currencies" __table_args__ = endpoint_def('currencies', locale=True, workers=1) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) description = Column(String, nullable=False) icon = Column(String, nullable=False) order = Column(Integer, nullable=False)
class _Gw2AccountBank(Base): """Map the account/bank endpoint This endpoint shows the stored items in the account bank """ __tablename__ = "gw2_auth_account_bank" __table_args__ = endpoint_def('account/bank', ep_type=EPType.sac, workers=1, rights=['account', 'inventories'], parent='Gw2Token') pkid = Column(Integer, primary_key=True) id = Column(Integer, ForeignKey("gw2_item_item.id"), nullable=False) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), nullable=False) count = Column(Integer, nullable=False) skin_id = Column(Integer, ForeignKey("gw2_item_skin.id"), nullable=True, info=col_json(fn='skin')) binding = Column(String) bound_to = Column(String) charges = Column(Integer) item = relationship("Gw2Item", uselist=False) skin = relationship("Gw2Skin", uselist=False) upgrades = relationship( "Gw2UpgradeItem", secondary="gw2_auth_account_bank_upgrade", uselist=True, info=rel_json( _Gw2AccountBankUpgrade, fn=lambda j, pj: [dict(id=pj['pkid'], upgrade_id=x) for x in j])) infusions = relationship( "Gw2UpgradeItem", secondary="gw2_auth_account_bank_infusion", uselist=True, info=rel_json( _Gw2AccountBankUpgrade, fn=lambda j, pj: [dict(id=pj['pkid'], infusion_id=x) for x in j]))
class Gw2GuildUpgrade(Base): """Map the guild upgrades endpoint This class gives access to v2/guild/upgrades enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/guild/upgrades - https://github.com/arenanet/api-cdi/blob/master/v2/guild/upgrades.js This endpoint shows information about guild upgrades """ __tablename__ = "gw2_item_guild_upgrade" __table_args__ = endpoint_def('guild/upgrades', locale=True) # Columns id = Column(Integer, primary_key=True) name = Column(String, nullable=False) description = Column(String, nullable=False) type = Column(String, nullable=False) icon = Column(String, nullable=False) bag_max_items = Column(Integer, nullable=True) bag_max_coins = Column(Integer, nullable=True) build_time = Column(Integer, nullable=False) required_level = Column(Integer, nullable=False) experience = Column(Integer, nullable=False) # Relations prerequisites = relationship( "Gw2GuildUpgrade", secondary="gw2_item_guild_upgrade_req_rel", primaryjoin="_Gw2GuildUpgradeReq.id == Gw2GuildUpgrade.id", secondaryjoin="_Gw2GuildUpgradeReq.req_id == Gw2GuildUpgrade.id", uselist=True, info=rel_json( _Gw2GuildUpgradeReq, fn=lambda j, pj: [dict(id=pj['id'], req_id=x) for x in j])) costs = relationship( "_Gw2GuildUpgradeCost", uselist=True, info=rel_json(_Gw2GuildUpgradeCost, fn=lambda j, pj: [dict(id=pj['id'], **x) for x in j]))
class Gw2Title(Base): """Map the titles endpoint This class gives access to v2/titles enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/titles - https://github.com/arenanet/api-cdi/blob/master/v2/titles.js This endpoint shows information about titles """ __tablename__ = "gw2_misc_title" __table_args__ = endpoint_def('titles', locale=True, workers=1) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) ap_required = Column(Integer, nullable=True) achievement_id = Column(Integer, ForeignKey("gw2_misc_achievement.id"), nullable=True, info=col_json(keys='achievement')) achievement = relationship("Gw2Achievement", uselist=False)
class _Gw2AccountMastery(Base): """Map the account/masteries endpoint This endpoint shows the informations about unlocked mastery points of an account """ __tablename__ = "gw2_auth_account_mastery" __table_args__ = endpoint_def('account/masteries', ep_type=EPType.sac, workers=1, rights=['account', 'progression'], parent='Gw2Token') id = Column(Integer, ForeignKey("gw2_pro_mastery.id"), primary_key=True) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), primary_key=True) level = Column(Integer, nullable=False) mastery = relationship("Gw2Mastery", uselist=False)
class _Gw2AccountFinisher(Base): """Map the account/finishers endpoint This endpoint shows the informations about unlocked finishers of an account """ __tablename__ = "gw2_auth_account_finisher" __table_args__ = endpoint_def('account/finishers', ep_type=EPType.sac, workers=1, rights=['account', 'unlocks'], parent='Gw2Token') id = Column(Integer, ForeignKey("gw2_misc_finisher.id"), primary_key=True) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), primary_key=True) permanent = Column(Boolean, nullable=False) quantity = Column(Integer, nullable=True) finisher = relationship("Gw2Finisher", uselist=False)
class _Gw2AccountInventory(Base): """Map the account/inventory endpoint This endpoint shows the stored items in the account shared inventory """ __tablename__ = "gw2_auth_account_inventory" __table_args__ = endpoint_def('account/inventory', ep_type=EPType.sac, workers=1, rights=['account', 'inventories'], parent='Gw2Token') id = Column(Integer, ForeignKey("gw2_item_item.id"), primary_key=True) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), primary_key=True) count = Column(Integer, nullable=False) binding = Column(String) item = relationship("Gw2Item", uselist=False)
class Gw2Specialization(Base): """Map the specializations endpoint This class gives access to v2/specializations enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/specializations - https://github.com/arenanet/api-cdi/blob/master/v2/specializations/specializations.js This endpoint shows information about specializations """ __tablename__ = "gw2_pro_specialization" __table_args__ = endpoint_def('specializations', locale=True, workers=3) id = Column(Integer, primary_key=True) name = Column(String, nullable=False) profession = Column(String, ForeignKey("gw2_pro_profession.id"), nullable=False) elite = Column(Boolean, nullable=False, default=False) icon = Column(String, nullable=False) background = Column(String, nullable=False) profession_icon = Column(String, nullable=True, default='') profession_icon_big = Column(String, nullable=True, default='') weapon_trait = Column(Integer, ForeignKey("gw2_pro_trait.id"), nullable=True) elite_trait = relationship("Gw2Trait", foreign_keys=[weapon_trait], uselist=False) minors = relationship( "Gw2Trait", primaryjoin= "Gw2Trait.specialization == Gw2Specialization.id and Gw2Trait.slot == 'Minor'", uselist=True) majors = relationship( "Gw2Trait", primaryjoin= "Gw2Trait.specialization == Gw2Specialization.id and Gw2Trait.slot == 'Major'", uselist=True)
class Gw2Season(Base): """Map the stories/seasons endpoint This class gives access to v2/stories/seasons enpoint and subendpoints. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/stories/seasons - https://github.com/arenanet/api-cdi/blob/master/v2/stories/seasons.js This endpoint shows information about stories seasons """ __tablename__ = "gw2_sto_season" __table_args__ = endpoint_def('stories/seasons', locale=True, workers=1) # Columns pkid = Column(Integer, primary_key=True) id = Column(String, unique=True, nullable=False) name = Column(String, nullable=True) order = Column(Integer, nullable=True) # Relations stories = relationship("Gw2Story", uselist=True)
class _Gw2AccountWallet(Base): """Map the account/materials endpoint This endpoint shows the amount of each currency owned by an account """ __tablename__ = "gw2_auth_account_wallet" __table_args__ = endpoint_def('account/wallet', ep_type=EPType.sac, workers=1, rights=['account', 'wallet'], parent='Gw2Token') id = Column(Integer, ForeignKey("gw2_misc_currencies.id"), primary_key=True) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), primary_key=True) value = Column(Integer, nullable=False) currency = relationship("Gw2Currency", uselist=False)
class Gw2Token(Base): """Map the tokeninfo endpoint This class gives access to v2/tokeninfo enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/tokeninfo - https://github.com/arenanet/api-cdi/blob/master/v2/tokeninfo/tokeninfo.js This endpoint shows the READ permissions given by an access token """ __tablename__ = "gw2_auth_token" __table_args__ = endpoint_def('tokeninfo', ep_type=EPType.sa, workers=1) pkid = Column(Integer, primary_key=True) api_key = Column(String, unique=True, nullable=False) permissions = Column(String, nullable=False) @staticmethod def to_child(ch, key, _json): if len(set(ch.rights).intersection(_json['permissions'])) == len( ch.rights): ch.set_params(key, _json)
class _Gw2AccountAchievement(Base): """Map the account/achievements endpoint This endpoint shows the informations about achievements of an account """ __tablename__ = "gw2_auth_account_achievement" __table_args__ = endpoint_def('account/achievements', ep_type=EPType.sac, workers=1, rights=['account', 'progression'], parent='Gw2Token') id = Column(Integer, ForeignKey("gw2_misc_achievement.id"), primary_key=True) api_key = Column(String, ForeignKey("gw2_auth_account.api_key"), primary_key=True) current = Column(Integer, nullable=True) max = Column(Integer, nullable=True) done = Column(Boolean, nullable=False) repeated = Column(Integer, nullable=True)
class Gw2Profession(Base): """Map the professions endpoint This class gives access to v2/professions enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/professions - https://github.com/arenanet/api-cdi/blob/master/v2/professions.js This endpoint shows information about professions """ __tablename__ = "gw2_pro_profession" __table_args__ = endpoint_def('professions', locale=True, workers=1) pkid = Column(Integer, primary_key=True) id = Column(String, unique=True, nullable=False) name = Column(String, nullable=False) icon = Column(String, nullable=False) icon_big = Column(String, nullable=False) specializations = relationship("Gw2Specialization", uselist=True) training = relationship( "_Gw2Training", uselist=True, info=rel_json( _Gw2Training, fn=lambda j, pj: [dict(profession=pj['id'], **x) for x in j])) weapons = relationship( "_Gw2ProfWeapon", uselist=True, info=rel_json( _Gw2ProfWeapon, fn=lambda j, pj: [dict(prof_id=pj['id'], name=k, **v) for k, v in j.items()])) skills = relationship("Gw2Skill", secondary="gw2_pro_profession_skill_rel", uselist=True)
class Gw2EmblemBackground(Base): """Map the emblem/backgrounds endpoint This class gives access to v2/emblem/backgrounds enpoint. For more informations about this endpoint, see: - https://wiki.guildwars2.com/wiki/API:2/emblem - https://github.com/arenanet/api-cdi/blob/master/v2/emblems/emblems.js This endpoint shows information about emblems backgrounds """ __tablename__ = "gw2_misc_emblem_back" __table_args__ = endpoint_def('emblem/backgrounds', workers=1) # Columns id = Column(Integer, primary_key=True) # Relations layers = relationship( "_Gw2EmblemBackgroundLayer", uselist=True, info=rel_json( _Gw2EmblemBackgroundLayer, fn=lambda j, pj: [dict(emblem_id=pj['id'], layer=x) for x in j]))