class Role(db.Model): __tablename__ = 'Role' id = db.Column(db.Integer, primary_key=True) movie_id = db.Column(db.Integer, db.ForeignKey('Movie.id'), nullable=False) actor_id = db.Column(db.Integer, db.ForeignKey('Actor.id'), nullable=False) role = db.Column(db.String(80), nullable=False) actor = db.relationship('Actor', back_populates='movies') movie = db.relationship('Movie', back_populates='actors')
class Movie(db.Model): __tablename__ = 'Movie' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80)) year = db.Column(db.Integer) description = db.Column(db.String()) actors = db.relationship('Role', back_populates='movie')
class Events(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100)) location = db.Column(db.String(30)) #starttime = db.Column(db.Time) #date = db.Column(db.Date) secret_code = db.String(6) registered_users = db.relationship("Registered", backref="event") society = db.Column(db.Integer, db.ForeignKey("societies.id"))
class Actor(db.Model): __tablename__ = 'Actor' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) birthdate = db.Column(db.String(30)) movies = db.relationship('Role', back_populates='actor') def __str__(self): return self.name
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class Unit(db.Model): __tablename__ = 'units' unit_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) block_id = db.Column(db.Integer, db.ForeignKey('blocks.block_id'), nullable=True) unit_number = db.Column(db.String(25), nullable=False, unique=True) unit_status = db.Column(db.String(75), nullable=False) # Relationships # rentals = db.relationship('Rental', backref='units', lazy=True) complaints = db.relationship('Complaint', backref='units', lazy=True) leases = db.relationship('Lease', backref='units', lazy=True) def __init__(self, block_id, unit_number, unit_status, public_id): self.public_id = public_id self.unit_number = unit_number self.block_id = block_id self.unit_status = unit_status
class Complaint(db.Model): __tablename__ = 'complaints' complaint_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) date_posted = db.Column(db.Date, nullable=False) message = db.Column(db.Text, nullable=False) due_date = db.Column(db.Date, nullable=True) fixed_date = db.Column(db.Date, nullable=True) unit_id = db.Column(db.Integer, db.ForeignKey('units.unit_id'), nullable=False) #Relationship with images table services = db.relationship('Services', backref='complaints', lazy=True) images = db.relationship('Image', backref='complaints', lazy=True) def __init__(self, message, fixed_date, unit_id, public_id): self.public_id = public_id self.date_posted = datetime.now().date() self.message = message self.due_date = None self.fixed_date = fixed_date self.unit_id = unit_id
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) password = db.Column(db.String(64), index=True, unique=False) email = db.relationship('Email', backref='user', lazy=False, uselist=False) songs = db.relationship("Song", secondary=association_table) @property def is_authenticated(self): return True @property def is_active(self): return True @property def is_anonymous(self): return False def get_id(self): return str(self.id) def __repr__(self): return '<User %r>' % (self.username)
class Debt(db.Model): __tablename__ = 'debts' debt_id = db.Column(db.Integer, nullable=False, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) bill_amount = db.Column(db.Float, nullable=False) paid_amount = db.Column(db.Float, nullable=False, default=0) debt_status = db.Column(db.String(75), nullable=False) debt_date = db.Column(db.Date, nullable=False) #Relationships payments = db.relationship('Payment', backref='debts', lazy=True) def __init__(self, bill_amount, paid_amount, debt_status, public_id): self.public_id = public_id self.bill_amount = bill_amount self.paid_amount = paid_amount self.debt_status = debt_status self.debt_date = datetime.utcnow()
class ServiceProviders(db.Model): __tablename__ = 'service_providers' provider_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) provider_name = db.Column(db.String(75), nullable=False) provider_contact = db.Column(db.String(15), nullable=False, unique=True) #Relationships services = db.relationship('Services', backref='service_providers', lazy=True) def __init__(self, provider_name, provider_contact, public_id): self.public_id = public_id self.provider_name = provider_name self.provider_contact = provider_contact
class Block(db.Model): __tablename__ = 'blocks' block_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) property_id = db.Column(db.Integer, db.ForeignKey('property.property_id'), nullable=False) block_name = db.Column(db.String(35), nullable=False) number_of_units = db.Column(db.Integer, nullable=False) # Relationships units = db.relationship('Unit', backref='blocks', lazy=True) def __init__(self, property_id, block_name, number_of_units, public_id): self.number_of_units = number_of_units self.public_id = public_id self.property_id = property_id self.block_name = block_name
class Tenant(db.Model): __tablename__ = 'tenants' tenant_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) first_name = db.Column(db.String(75), nullable=False) last_name = db.Column(db.String(75), nullable=False) email = db.Column(db.String(100), nullable=False, unique=True) phone = db.Column(db.String(15), nullable=False, unique=True) #Relationships leases = db.relationship('Lease', backref='tenants', lazy=True) def __init__(self, first_name, last_name, email, phone, public_id): self.public_id = public_id self.first_name = first_name self.last_name = last_name self.email = email self.phone = phone
class Landlord(db.Model): __tablename__ = 'landlords' landlord_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) first_name = db.Column(db.String(75), nullable=False) last_name = db.Column(db.String(75), nullable=False) email = db.Column(db.String(100), nullable=False, unique=True) phone = db.Column(db.String(15), nullable=False, unique=True) # Relationships properties = db.relationship('Property', backref='landlords', lazy=True) def __init__(self, first_name, last_name, email, phone, public_id): self.public_id = public_id self.first_name = first_name self.last_name = last_name self.email = email self.phone = phone
class Company(db.Model): __tablename__ = 'companies' company_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) company_name = db.Column(db.String(50), nullable=False, unique=True) company_code = db.Column(db.String(70), nullable=False, unique=True) company_head = db.Column(db.String(70), nullable=False) company_size = db.Column(db.Integer, nullable=False) created_at = db.Column(db.Date, nullable=False) # Relationships surveys = db.relationship('Survey', backref='companies', lazy=True) def __init__(self, public_id, company_name, company_code, company_head, company_size): self.company_name = company_name self.public_id = public_id self.company_code = company_code self.company_head = company_head self.company_size = company_size self.created_at = datetime.datetime.today()
class Property(db.Model): __tablename__ = 'property' property_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) property_name = db.Column(db.String(75), nullable=False) manager_id = db.Column(db.Integer, db.ForeignKey('property_managers.manager_id'), nullable=False) landlord_id = db.Column(db.Integer, db.ForeignKey('landlords.landlord_id'), nullable=False) # Relationships blocks = db.relationship('Block', backref='property', lazy=True) def __init__(self, property_name, manager_id, landlord_id, public_id): self.public_id = public_id self.manager_id = manager_id self.property_name = property_name self.landlord_id = landlord_id
class Lease(db.Model): __tablename__ = 'leases' lease_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) lease_begin_date = db.Column(db.Date, nullable=False) lease_end_date = db.Column(db.Date, nullable=False) lease_amount = db.Column(db.Float(12), nullable=False) promises = db.Column(db.Text, nullable=False) service_charges = db.Column(db.Float(12), nullable=True) notes = db.Column(db.Text, nullable=True) lease_status = db.Column(db.String(75), nullable=False) payment_interval = db.Column(db.Integer, nullable=False) tenant_id = db.Column(db.Integer, db.ForeignKey('tenants.tenant_id'), nullable=False) unit_id = db.Column(db.Integer, db.ForeignKey('units.unit_id'), nullable=False) # Relationships debts = db.relationship('Debt', backref='leases', lazy=True) def __init__(self, tenant_id, unit_id, lease_begin_date, lease_end_date, lease_amount, promises, service_charges, notes, lease_status, payment_interval, public_id): self.tenant_id = tenant_id self.unit_id = unit_id self.public_id = public_id self.lease_begin_date = lease_begin_date self.lease_end_date = lease_end_date self.lease_amount = lease_amount self.promises = promises self.service_charges = service_charges self.notes = notes self.lease_status = lease_status self.payment_interval = payment_interval
class Survey(db.Model): __tablename__ = 'surveys' survey_id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.String(70), nullable=False, unique=True) name = db.Column(db.String(50), nullable=False) description = db.Column(db.String(150), nullable=False) question_0 = db.Column(db.String(255), nullable=False) question_1 = db.Column(db.String(255), nullable=False) question_2 = db.Column(db.String(255), nullable=False) question_3 = db.Column(db.String(255), nullable=False) question_4 = db.Column(db.String(255), nullable=False) question_5 = db.Column(db.String(255), nullable=False) created_at = db.Column(db.Date, nullable=False) company_id = db.Column(db.Integer, db.ForeignKey('companies.company_id'), nullable=False) # Relationships survey_responses = db.relationship('SurveyResponse', backref='surveys', lazy=True) def __init__(self, public_id, name, description, company_id, question_0, question_1, question_2, question_3, question_4, question_5): self.created_at = datetime.date.today() self.public_id = public_id self.name = name self.description = description self.company_id = company_id self.question_0 = question_0 self.question_1 = question_1 self.question_2 = question_2 self.question_3 = question_3 self.question_4 = question_4 self.question_5 = question_5
class Registered(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.relationship("Users", backref="registered_user") event_id = db.Column(db.Integer, db.ForeignKey("events.id"))
class Societies(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) username = db.Column(db.String(15)) password = db.Column(db.String(20)) events = db.relationship("Events", backref="eventOwner")