class ReceitaModel(db.Model): __tablename__ = 'receita' id = db.Column(db.Integer, autoincrement=True, primary_key=True) titulo = db.Column(db.String(100)) descricao = db.Column(db.Text) image_name = db.Column(db.String(50)) rendimento = db.Column(db.Integer) tempo = db.Column(db.Integer) modulo_id = db.Column(db.Integer, db.ForeignKey('modulo.id'), nullable=False) passos = db.relationship('PassoModel', backref='receita', lazy='dynamic') ingredientes = db.relationship('IngredienteModel', backref='receita', lazy='dynamic') def __init__(self, titulo, descricao, image_name, rendimento, tempo, modulo_id): self.titulo = titulo self.descricao = descricao self.image_name = image_name self.rendimento = rendimento self.tempo = tempo self.modulo_id = modulo_id def json(self): return { 'id': self.id, 'titulo': self.titulo, 'descricao': self.descricao, 'image_name': self.image_name, 'rendimento': self.rendimento, 'tempo': self.tempo, 'modulo_id': self.modulo_id } @classmethod def find_all(cls): return cls.query.all() @classmethod def find_by_id(cls, id): receita = cls.query.filter_by(id=id).first() if receita: return receita return None
class PassoModel(db.Model): __tablename__ = 'passo' id = db.Column(db.Integer, autoincrement=True, primary_key=True) descricao = db.Column(db.Text) image_name = db.Column(db.String(50)) cronometro = db.Column(db.Integer) receita_id = db.Column(db.Integer, db.ForeignKey('receita.id'), nullable=False) dica = db.Column(db.String(500)) # dicas = db.relationship('DicaModel', backref='passo', lazy='dynamic') tecnicas = db.relationship('TecnicaModel', secondary=tecnica_passo, backref=db.backref('passo', lazy='dynamic')) def __init__(self, descricao, image_name, cronometro, dica, receita_id): self.descricao = descricao self.image_name = image_name self.cronometro = cronometro self.dica = dica self.receita_id = receita_id def json(self): return { 'id': self.id, 'descricao': self.descricao, 'image_name': self.image_name, 'cronometro': self.cronometro, 'dica': self.dica, 'receita_id': self.receita_id } @classmethod def find_all(cls): return cls.query.all() @classmethod def find_by_id(cls, id): passo = cls.query.filter_by(id=id).first() if passo: return passo return None
class ItemModel(db.Model): __tablename__: 'item' id = db.Column(db.Integer, primary_key=True, autoincrement=True) titulo = db.Column(db.String(100)) descricao = db.Column(db.Text) image_name = db.Column(db.String(50)) tecnica_id = db.Column(db.Integer, db.ForeignKey('tecnica.id'), nullable=False) def get_id(self): return str(self.id) def __init__(self, titulo, descricao, image_name, tecnica_id): self.titulo = titulo self.descricao = descricao self.image_name = image_name self.tecnica_id = tecnica_id def json(self): return { 'id': self.id, 'titulo': self.titulo, 'descricao': self.descricao, 'image_name': self.image_name, 'tecnica_id': self.tecnica_id } @classmethod def find_by_id(cls, id): item = cls.query.filter_by(id=id).first() if item: return item return None @classmethod def find_all(cls): return cls.query.all()
class IngredienteModel(db.Model): __tablename__ = 'ingrediente' id = db.Column(db.Integer, autoincrement=True, primary_key=True) nome = db.Column(db.String(100)) quantidade = db.Column(db.Float(precision=1)) unidade = db.Column(db.String(15)) receita_id = db.Column(db.Integer, db.ForeignKey('receita.id'), nullable=False) def __init__(self, nome, quantidade, unidade, receita_id): self.nome = nome self.quantidade = quantidade self.unidade = unidade self.receita_id = receita_id def json(self): return { 'id': self.id, 'nome': self.nome, 'quantidade': self.quantidade, 'unidade': self.unidade, 'receita_id': self.receita_id } @classmethod def find_by_id(cls, id): ingrediente = cls.query.filter_by(id=id).first() if ingrediente: return ingrediente return None @classmethod def find_all(cls): return cls.query.all()
from app_justcook import db tecnica_passo = db.Table( 'tecnica_passo', db.Column('tecnica_id', db.Integer, db.ForeignKey('tecnica.id'), primary_key=True), db.Column('passo_id', db.Integer, db.ForeignKey('passo.id'), primary_key=True))