class Funcionario(Usuario): __tablename__ = 'Funcionario' id = db.Column(db.Integer, db.ForeignKey(Usuario.id), db.Sequence('Funcionario_seq'), primary_key=True) cargo = db.Column(db.String(50), nullable=False) __mapper_args__ = {'polymorphic_identity': 'Funcionario'}
class Reserva(db.Model): __tablename__ = 'Reserva' id = db.Column(db.Integer, db.Sequence('reserva_seq'), primary_key=True) data_reserva = db.Column(db.Date, nullable=False) data_retirada = db.Column(db.Date, nullable=False) ativo = db.Column(db.Boolean, default=True) id_cliente = db.Column(db.Integer, db.ForeignKey('Cliente.id'), nullable=False) id_livro = db.Column(db.Integer, db.ForeignKey('Livro.id'), nullable=False)
class Conta(db.Model): __tablename__ = 'Conta' id = db.Column(db.Integer, db.Sequence('conta_seq'), primary_key=True) data_efetuada = db.Column(db.Date, nullable=False) data_pagamento = db.Column(db.Date, nullable=False) data_paga = db.Column(db.Date) multa = db.Column(db.Float, default=0.0) valor_total = db.Column(db.Float) ativo = db.Column(db.Boolean, default=True) id_aluga = db.Column(db.Integer, db.ForeignKey('Aluga.id'), nullable=False)
class Livro(db.Model): __tablename__ = 'Livro' id = db.Column(db.Integer, db.Sequence('livro_seq'), primary_key=True) autor = db.Column(db.String(50), nullable=False) titulo = db.Column(db.String(50), nullable=False) ano = db.Column(db.Integer, nullable=False) editora = db.Column(db.String(50), nullable=False) codigo = db.Column(db.String(50), unique=True, nullable=False) quantidade = db.Column(db.Integer, nullable=False) disponivel = db.Column(db.Integer, nullable=False) ativo = db.Column(db.Boolean, default=True)
class Cliente(Usuario): __tablename__ = 'Cliente' id = db.Column(db.Integer, db.ForeignKey(Usuario.id), db.Sequence('cliente_seq'), primary_key=True) cpf = db.Column(db.String(50), unique=True, nullable=False) telefone = db.Column(db.String(50), nullable=False) __mapper_args__ = { 'polymorphic_identity': 'Cliente', # 'polymorphic_map': 'Cliente' }
class Aluga(db.Model): __tablename__ = 'Aluga' id = db.Column(db.Integer, db.Sequence('aluga_seq'), primary_key=True) data_locacao = db.Column(db.Date, nullable=False) data_devolucao = db.Column(db.Date, nullable=False) data_devolvido = db.Column(db.Date) diaria = db.Column(db.Float, nullable=False) ativo = db.Column(db.Boolean, default=True) id_funcionario = db.Column(db.Integer, db.ForeignKey('Funcionario.id'), nullable=False) id_cliente = db.Column(db.Integer, db.ForeignKey('Cliente.id'), nullable=False) id_livro = db.Column(db.Integer, db.ForeignKey('Livro.id'), nullable=False)
class Usuario(db.Model): __tablename__ = 'Usuario' # __abstract__ = True __table_args__ = {'extend_existing': True} id = db.Column(db.Integer, db.Sequence('usuario_seq'), primary_key=True) nome = db.Column(db.String(50), nullable=False) login = db.Column(db.String(50), unique=True, nullable=False) senha = db.Column(db.String(100), nullable=False) email = db.Column(db.String(50), unique=True, nullable=False) ativo = db.Column(db.Boolean, default=True) tipo = db.Column(db.String(50)) __mapper_args__ = { 'polymorphic_identity': 'Usuario', 'polymorphic_on': tipo, }