X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/ef580770c5935192a261e4d0e5a27f2d95def396..b05234befde3bcd0f2cd9b389edf2e0f54b26607:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 4d542e9..d2a0e77 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -127,10 +127,11 @@ class Generation(TableBase): main_region = Column(Unicode(16), nullable=False) class GrowthRate(TableBase): + """`formula` is written in LaTeX math notation.""" __tablename__ = 'growth_rates' id = Column(Integer, primary_key=True, nullable=False) - name = Column(Unicode(16), nullable=False) - formula = Column(Unicode(255), nullable=False) + name = Column(Unicode(20), nullable=False) + formula = Column(Unicode(500), nullable=False) class Item(TableBase): __tablename__ = 'items' @@ -290,6 +291,21 @@ class PokemonItem(TableBase): item_id = Column(Integer, ForeignKey('items.id'), primary_key=True, nullable=False, autoincrement=False) rarity = Column(Integer, nullable=False) +class PokemonMove(TableBase): + __tablename__ = 'pokemon_moves' + pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False) + version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False, autoincrement=False) + move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False, autoincrement=False, index=True) + pokemon_move_method_id = Column(Integer, ForeignKey('pokemon_move_methods.id'), primary_key=True, nullable=False, autoincrement=False) + level = Column(Integer, primary_key=True, nullable=True, autoincrement=False) + order = Column(Integer, nullable=True) + +class PokemonMoveMethod(TableBase): + __tablename__ = 'pokemon_move_methods' + id = Column(Integer, primary_key=True, nullable=False, autoincrement=False) + name = Column(Unicode(64), nullable=False) + description = Column(Unicode(255), nullable=False) + class PokemonName(TableBase): __tablename__ = 'pokemon_names' pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False) @@ -360,6 +376,9 @@ EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains') LocationArea.location = relation(Location, backref='areas') +Move.type = relation(Type, backref='moves') +Move.effect = relation(MoveEffect, backref='moves') + Pokemon.abilities = relation(Ability, secondary=PokemonAbility.__table__, order_by=PokemonAbility.slot, backref='pokemon') @@ -394,6 +413,11 @@ PokemonFormGroup.pokemon = relation(Pokemon, backref=backref('form_group', uselist=False)) PokemonFormSprite.pokemon = relation(Pokemon, backref='form_sprites') +PokemonMove.pokemon = relation(Pokemon, backref='pokemon_moves') +PokemonMove.version_group = relation(VersionGroup) +PokemonMove.move = relation(Move, backref='pokemon_moves') +PokemonMove.method = relation(PokemonMoveMethod) + PokemonName.language = relation(Language) PokemonStat.stat = relation(Stat) @@ -409,3 +433,6 @@ Type.target_efficacies = relation(TypeEfficacy, Version.generation = relation(Generation, secondary=VersionGroup.__table__, backref='versions') +Version.version_group = relation(VersionGroup, backref='versions') + +VersionGroup.generation = relation(Generation, backref='version_groups')