class Fund(db.Model): # db.Model for the Fund Table FundID = db.Column(db.Integer, primary_key=True) FundName = db.Column(db.String(50), unique=True, nullable=False) UnitPrice = db.Column(db.Float) def __repr__(self): return f"Fund('{self.FundName}', '{self.UnitPrice}')"
class Investment(db.Model): # db.Model for the Investment Table InvestmentID = db.Column(db.Integer, primary_key=True) Fund_ID = db.Column(db.Integer, db.ForeignKey('fund.FundID'), nullable=False) Investor_ID = db.Column(db.Integer, db.ForeignKey('investor.InvestorID'), nullable=False) Units = db.Column(db.Integer, nullable=False) Investment_Value = db.Column(db.Integer) def __repr__(self): return f'{self.Investment_Value}'
class Investor(db.Model): # db.Model for the Investor Table InvestorID = db.Column(db.Integer, primary_key=True) FirstName = db.Column(db.String(20), nullable=False) LastName = db.Column(db.String(20), nullable=False) email = db.Column(db.String(100), unique=True, nullable=False) fund_value = db.relationship('Investment', backref='Investor') def __repr__(self): return f"Investor('{self.InvestorID}','{self.FirstName}')"
class User(db.Model): """ Class that represents a user of the application The following attributes of a user are stored in this table: email address password (hashed using Bcrypt) authenticated flag (indicates if a user is logged in or not) date that the user registered on """ __tablename__ = 'users' uid = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String, unique=True, nullable=False) password = db.Column(db.String, nullable=False) is_active = True is_anonymous = False authenticated = db.Column(db.Boolean, default=False) def __init__(self, username, unhashed_password): self.username = username self.password = generate_password_hash(unhashed_password) """The following are required settings for Flask-login ; we're not using them in this instance""" self.is_active = True self.is_anonymous = False def set_password(self, unhashed_password): self.hashed_password = generate_password_hash(unhashed_password) def check_password(self, unhashed_password): return check_password_hash(self.password, unhashed_password) def is_authenticated(self): return self.authenticated def set_authenticated(self): self._authenticated = True return self._authenticated def get_id(self): return str(self.uid)
class Users(db.Model, UserMixin): # db.Model for the Users Table id = db.Column(db.Integer, primary_key=True) public_id = db.Column(db.Integer) Name = db.Column(db.String(50)) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(50)) admin = db.Column(db.Boolean)
class ToDo(db.Model): __tablename__ = 'todo' uid = db.Column(db.Integer, primary_key=True, autoincrement=True) description = db.Column(db.String, default=0) user = db.Column(db.Integer) created = db.Column(db.Integer, default=0) updated = db.Column(db.Integer, default=int(time.time())) status = db.Column(db.Integer, nullable=False, default=0) def render(self): return ({ 'uid': self.uid, 'description': self.description, 'status': self.status, 'created': self.created, 'updated': self.updated, 'user': self.user })