Ejemplo n.º 1
0
class CommonAgreement(RentalAgreement):
    __tablename__ = 'common_agreement'
    __mapper_args__ = {
        'polymorphic_identity': 'common_agreement'
    }

    id = db.Column(db.Integer, db.ForeignKey('rental_agreement.id'), primary_key=True, nullable=False)
Ejemplo n.º 2
0
class RentBill(db.Model):
    __tablename__ = 'rent_bill'

    date_of_payment = db.Column(db.DATE)
    due_date = db.Column(db.DATE, nullable=False)
    tenant_id = db.Column(db.Integer,
                          db.ForeignKey('tenant.id'),
                          primary_key=True,
                          nullable=False)
    tenant = db.relationship("Tenant", back_populates='bills')
    rental_agreement = db.relationship("RentalAgreement",
                                       back_populates='bills')
    rental_agreement_id = db.Column(db.Integer,
                                    db.ForeignKey('rental_agreement.id'),
                                    primary_key=True,
                                    nullable=False)
Ejemplo n.º 3
0
class Opinion(db.Model):
    __tablename__ = 'opinion'

    _available_rates = ("0", "1", "2", "3", "4", "5")

    comment: str = db.Column(db.String(200))
    rate: float = db.Column(db.Float)
    author_id = db.Column(db.Integer,
                          db.ForeignKey('tenant.id'),
                          primary_key=True,
                          nullable=False)
    author = db.relationship("Tenant", back_populates='opinions')
    rental_object = db.relationship("RentalObject", back_populates='opinions')
    rental_object_id = db.Column(db.Integer,
                                 db.ForeignKey('rental_object.id'),
                                 primary_key=True,
                                 nullable=False)
Ejemplo n.º 4
0
class OccasionalAgreement(RentalAgreement):
    __tablename__ = 'occasional_agreement'
    __mapper_args__ = {'polymorphic_identity': 'occasional_agreement'}

    id = db.Column(db.Integer,
                   db.ForeignKey('rental_agreement.id'),
                   primary_key=True,
                   nullable=False)
    notary_confirmation = db.Column(db.String(100))
Ejemplo n.º 5
0
class LandLord(User):
    __tablename__ = 'landlord'
    __mapper_args__ = {
        'polymorphic_identity': 'landlord',
    }

    id: int = db.Column(db.Integer,
                        db.ForeignKey('user.id'),
                        primary_key=True,
                        nullable=False)
    bank_account_number: str = db.Column(db.String(16), unique=True)
Ejemplo n.º 6
0
class Flat(RentalObject):
    __tablename__ = 'flat'
    __mapper_args__ = {
        'polymorphic_identity': 'flat',
        'inherit_condition': id == RentalObject.id
    }

    id: int = db.Column(db.Integer,
                        db.ForeignKey('rental_object.id'),
                        primary_key=True,
                        nullable=False)
    rooms = db.relationship('Room')
Ejemplo n.º 7
0
class Tenant(User):
    __tablename__ = 'tenant'
    __mapper_args__ = {'polymorphic_identity': 'tenant'}

    id: int = db.Column(db.Integer,
                        db.ForeignKey('user.id'),
                        primary_key=True,
                        nullable=False)
    groups: list = db.relationship('Group',
                                   secondary=User_Group,
                                   backref='Tenant')
    opinions: list = db.relationship('Opinion', back_populates='author')
    bills: list = db.relationship('RentBill', back_populates='tenant')
Ejemplo n.º 8
0
class RentalAgreement(db.Model):
    __tablename__ = 'rental_agreement'
    __mapper_args = {
        'polymorphic_identity': 'rental_agreement',
        'polymorphic_on': type
    }

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    start_date = db.Column(db.DATE)
    end_date = db.Column(db.DATE)
    rules_of_use = db.Column(db.String(300))

    rental_object_id = db.Column(db.Integer, db.ForeignKey('rental_object.id'))
    rental_object = db.relationship('RentalObject')
    bills: list = db.relationship('RentBill',
                                  back_populates='rental_agreement')
Ejemplo n.º 9
0
from MAS.application import db

User_Group = db.Table(
    'user_group', db.Column('id', db.Integer, primary_key=True),
    db.Column('tenant_id',
              db.Integer,
              db.ForeignKey('tenant.id'),
              nullable=False),
    db.Column('group_id',
              db.Integer,
              db.ForeignKey('group.id'),
              nullable=False))