+class PokemonFormGroup(TableBase):
+ __tablename__ = 'pokemon_form_groups'
+ pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False)
+ is_battle_only = Column(Boolean, nullable=False)
+ description = Column(markdown.MarkdownColumn(1024), nullable=False)
+
+class PokemonFormSprite(TableBase):
+ __tablename__ = 'pokemon_form_sprites'
+ id = Column(Integer, primary_key=True, nullable=False)
+ pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False)
+ introduced_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False, autoincrement=False)
+ name = Column(Unicode(16), nullable=True)
+ is_default = Column(Boolean, nullable=True)
+
+class PokemonHabitat(TableBase):
+ __tablename__ = 'pokemon_habitats'
+ id = Column(Integer, primary_key=True, nullable=False, autoincrement=False)
+ name = Column(Unicode(16), nullable=False)
+
+class PokemonInternalID(TableBase):
+ __tablename__ = 'pokemon_internal_ids'
+ pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, autoincrement=False, nullable=False)
+ generation_id = Column(Integer, ForeignKey('generations.id'), primary_key=True, autoincrement=False, nullable=False)
+ internal_id = Column(Integer, nullable=False)
+
+class PokemonItem(TableBase):
+ __tablename__ = 'pokemon_items'
+ pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False)
+ version_id = Column(Integer, ForeignKey('versions.id'), primary_key=True, nullable=False, autoincrement=False)
+ 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, index=True)
+ order = Column(Integer, nullable=True, index=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)
+