class ProdutoPromocao(db.Model): __tablename__ = 'produtopromocao' id = db.Column(db.Integer, primary_key=True) id_produto = db.Column(db.Integer, db.ForeignKey('produto.id')) id_promocao = db.Column(db.Integer, db.ForeignKey('promocao.id')) produtos = db.relationship('Produto', backref=db.backref('produtopromocao', cascade="all, delete-orphan")) promocoes = db.relationship('Promocao', backref=db.backref('produtopromocao', cascade="all, delete-orphan"))
class Promocao(db.Model): __tablename__ = 'promocao' id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(80), index=True, unique=False, nullable=False) descricao = db.Column(db.String(200), index=False, unique=False, nullable=False) data_criacao = db.Column(db.DateTime, index=False, unique=False, nullable=False, default=datetime.utcnow) data_inicio = db.Column(db.DateTime, index=False, unique=False, nullable=False) data_fim = db.Column(db.DateTime, index=False, unique=False, nullable=False) status = db.Column(db.Boolean, nullable=False, default=False) produtos = db.relationship('Produto', secondary='produtopromocao')
class Endereco(db.Model): __tablename__ = 'endereco' id = db.Column(db.Integer, primary_key=True) logradouro = db.Column(db.String(80), index=False, unique=False, nullable=False) numero = db.Column(db.String(20), index=False, unique=False, nullable=False) complemento = db.Column(db.String(80), index=False, unique=False, nullable=True) bairro = db.Column(db.String(80), index=False, unique=False, nullable=False) cep = db.Column(db.String(10), index=False, unique=False, nullable=False) id_cidade = db.Column(db.Integer, db.ForeignKey('cidade.id')) pessoa = db.relationship('Pessoa', uselist=False, backref='endereco')
class Produto(db.Model): __tablename__ = 'produto' id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(80), index=True, unique=False, nullable=False) descricao = db.Column(db.String(200), index=False, unique=False, nullable=False) preco = db.Column(db.Float, nullable=False) quantidade = db.Column(db.Integer, nullable=False) img = db.Column(db.LargeBinary(50000), nullable=False) data_criacao = db.Column(db.DateTime, index=False, unique=False, nullable=False, default=datetime.utcnow) id_categoria = db.Column(db.Integer, db.ForeignKey('categoria.id')) id_fornecedor = db.Column(db.Integer, db.ForeignKey('fornecedor.id')) promocoes = db.relationship('Promocao', secondary='produtopromocao') def fornecedor_as_str(self): try: return Fornecedor.query.get(self.id_fornecedor).nome_fantasia except AttributeError: return '-' def categoria_as_str(self): try: return Categoria.query.get(self.id_categoria).nome except AttributeError: return '-'
class Categoria(db.Model): __tablename__ = 'categoria' id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(80), index=True, unique=True, nullable=False) descricao = db.Column(db.String(200), index=False, unique=False, nullable=False) data_criacao = db.Column(db.DateTime, index=False, unique=False, nullable=False, default=datetime.utcnow) produtos = db.relationship('Produto', backref='categoria', lazy='dynamic') # 1-*
class Cidade(db.Model): __tablename__ = 'cidade' id = db.Column(db.Integer, primary_key=True) codigo = db.Column(db.Integer, unique=True, nullable=False) estado = db.Column(db.String(20), index=False, unique=False, nullable=False) endereco = db.relationship('Endereco', uselist=False, backref='cidade')
class Pessoa(db.Model): __tablename__ = 'pessoa' id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(100), index=True, unique=False, nullable=False) cpf = db.Column(db.String(11), index=True, unique=True, nullable=False) data_nascimento = db.Column(db.DateTime, index=False, unique=False, nullable=False) sexo = db.Column(db.String(1), index=False, unique=False, nullable=False) id_endereco = db.Column(db.Integer, db.ForeignKey('endereco.id')) usuario = db.relationship('Usuario', uselist=False, backref='pessoa')
class Fornecedor(db.Model): __tablename__ = 'fornecedor' id = db.Column(db.Integer, primary_key=True) nome_fantasia = db.Column(db.String(80), index=True, unique=False, nullable=False) cnpj = db.Column(db.String(14), index=True, unique=True, nullable=False) url = db.Column(db.String(100), index=False, unique=False, nullable=False) data_criacao = db.Column(db.DateTime, index=False, unique=False, nullable=False, default=datetime.utcnow) ativo = db.Column(db.Boolean, default=True) produtos = db.relationship('Produto', backref='fornecedor', lazy='dynamic')