houdini/houdini/data/ninja.py

36 lines
1.6 KiB
Python

from houdini.data import db, BaseCrumbsCollection
class Card(db.Model):
__tablename__ = 'card'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
set_id = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
power_id = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
element = db.Column(db.CHAR(1), nullable=False, server_default=db.text("'s'::bpchar"))
color = db.Column(db.CHAR(1), nullable=False, server_default=db.text("'b'::bpchar"))
value = db.Column(db.SmallInteger, nullable=False, server_default=db.text("2"))
description = db.Column(db.String(255), nullable=False, server_default=db.text("''::character varying"))
class PenguinCard(db.Model):
__tablename__ = 'penguin_card'
penguin_id = db.Column(db.ForeignKey('penguin.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
nullable=False, index=True)
card_id = db.Column(db.ForeignKey('card.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
nullable=False)
quantity = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
class CardCrumbsCollection(BaseCrumbsCollection):
def __init__(self, inventory_id=None):
super().__init__(model=Card,
key='id',
inventory_key='penguin_id',
inventory_value='card_id',
inventory_model=PenguinCard,
inventory_id=inventory_id)