+ id = Column(Integer, primary_key=True, nullable=False,
+ info=dict(description="A numeric ID"))
+ pocket_id = Column(Integer, ForeignKey('item_pockets.id'), nullable=False,
+ info=dict(description="ID of the pocket these items go to"))
+ name = Column(Unicode(16), nullable=False,
+ info=dict(description="English name of the category", format='plaintext'))
+
+class ItemFlag(TableBase):
+ """An item attribute such as "consumable" or "holdable"."""
+ __tablename__ = 'item_flags'
+ id = Column(Integer, primary_key=True, nullable=False,
+ info=dict(description="A numeric ID"))
+ identifier = Column(Unicode(24), nullable=False,
+ info=dict(description="Identifier of the flag", format='identifier'))
+ name = Column(Unicode(64), nullable=False,
+ info=dict(description="Short English description of the flag", format='plaintext'))
+
+class ItemFlagMap(TableBase):
+ """Maps an item flag to its item."""
+ __tablename__ = 'item_flag_map'
+ item_id = Column(Integer, ForeignKey('items.id'), primary_key=True, autoincrement=False, nullable=False,
+ info=dict(description="The ID of the item"))
+ item_flag_id = Column(Integer, ForeignKey('item_flags.id'), primary_key=True, autoincrement=False, nullable=False,
+ info=dict(description="The ID of the item flag"))
+
+class ItemFlavorText(TableBase):
+ """An in-game description of an item"""
+ __tablename__ = 'item_flavor_text'
+ item_id = Column(Integer, ForeignKey('items.id'), primary_key=True, autoincrement=False, nullable=False,
+ info=dict(description="The ID of the item"))
+ version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, autoincrement=False, nullable=False,
+ info=dict(description="ID of the version group that sports this text"))
+ flavor_text = Column(Unicode(255), nullable=False,
+ info=dict(description="The flavor text itself", official=True, format='gametext'))