class Recipe(db.Model): __tablename__ = 'recipes' __table_args__ = (db.UniqueConstraint('name', 'version', name='uix_1'), ) id = db.Column(db.Integer, primary_key=True) userid = db.Column(db.Integer, db.ForeignKey('users.id')) name = db.Column("name", db.String) public = db.Column("public", db.Boolean) version = db.Column("version", db.Integer) batchvolume = db.Column("batchvolume", db.Integer) batchnic = db.Column("batchnic", db.Integer) batchratio = db.Column("batchratio", db.Integer) basenic = db.Column("basenic", db.Integer) baseratio = db.Column("baseratio", db.Integer) flavours = db.relationship("Flavour", cascade="all, delete-orphan") def __eq__(self, other): return (self.name == other.name and int(self.public) == int(other.public) and int(self.batchvolume) == int(other.batchvolume) and int(self.batchnic) == int(other.batchnic) and int(self.batchratio) == int(other.batchratio) and int(self.basenic) == int(other.basenic) and int(self.baseratio) == int(other.baseratio) and self.flavours == other.flavours) def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class Time(db.Model): __tablename__ = "times" id = db.Column(db.Integer, primary_key=True) time = db.Column(db.String, nullable=False) is_free = db.Column(db.Boolean, nullable=False) day_id = db.Column(db.Integer, db.ForeignKey("days.id")) day = db.relationship("Day")
class Booking(db.Model): __tablename__ = "bookings" id = db.Column(db.Integer, primary_key=True) day = db.Column(db.String, nullable=False) time = db.Column(db.String, nullable=False) name = db.Column(db.String, nullable=False) phone = db.Column(db.String, nullable=False) teacher_id = db.Column(db.Integer, db.ForeignKey("teachers.id")) teacher = db.relationship("Teacher")
class Flavour(db.Model): __tablename__ = 'flavours' id = db.Column(db.Integer, primary_key=True) name = db.Column("name", db.String) percentage = db.Column("percentage", db.Integer) recipeid = db.Column(db.Integer, db.ForeignKey('recipes.id')) def __eq__(self, other): return (self.name == other.name and int(self.percentage) == int(other.percentage)) def __ne__(self, other): return (self.name != other.name or self.percentage != other.percentage) def __hash__(self): return hash(self.name + str(self.percentage)) def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
from app_setup import db goals_relations_association = db.Table( 'goals_relations', db.Column('teacher_id', db.Integer(), db.ForeignKey('teachers.id')), db.Column('goal_id', db.Integer(), db.ForeignKey('goals.id'))) days_relations_association = db.Table( 'days_relations', db.Column('teacher_id', db.Integer(), db.ForeignKey('teachers.id')), db.Column('day_id', db.Integer(), db.ForeignKey('days.id'))) class Teacher(db.Model): __tablename__ = "teachers" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) about = db.Column(db.String, nullable=False) rating = db.Column(db.Float, nullable=False) picture = db.Column(db.String, nullable=False) price = db.Column(db.Float, nullable=False) bookings = db.relationship("Booking") goals = db.relationship("Goal", secondary=goals_relations_association, back_populates='teachers') days = db.relationship("Day", secondary=days_relations_association,