class factiva_keywords(Base): __tablename__ = "factiva_keyword" keyword_id = db.Column(db.Integer, primary_key=True) keyword = db.Column(db.String(256), nullable=False) im_id = db.Column(db.Integer, db.ForeignKey('investmentManager.im_id'), nullable=False) im = db.relationship('InvestmentManager') def __init__(self, keyword, im_id): self.keyword = keyword self.im_id = im_id def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit() @classmethod def get_all_from_db(cls): return cls.query.order_by(cls.keyword).all() @classmethod def find_by_id(cls, keyword_id): return cls.query.filter_by(keyword_id=keyword_id).first()
class Deal_group(Base): __tablename__ = "deal_group" group_id = db.Column(db.Integer, primary_key=True) group_name = db.Column(db.String(128), nullable=False) def __init__(self, group_name): self.group_name = group_name def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit() @classmethod def get_all_from_db(cls): return cls.query.order_by(cls.group_name).all() @classmethod def find_by_id(cls, _id): return cls.query.filter_by(group_id=_id).first() @classmethod def find_by_group_name(cls, _name): return cls.query.filter_by(group_name=_name).first()
class Asso_deal_to_im(Base): __tablename__ = "asso_deal_to_im" asso_id = db.Column(db.Integer, primary_key=True) deal_id = db.Column(db.Integer, db.ForeignKey('deal.deal_id')) im_id = db.Column(db.Integer, db.ForeignKey('investmentManager.im_id')) im_role = db.Column(db.String(32)) # {'main', 'support'} deal = db.relationship('Deal', back_populates='investmentManager') investmentManager = db.relationship('InvestmentManager', back_populates='deal') def __init__(self, im_role): self.im_role = im_role @classmethod def get_all_from_db(cls): return cls.query.all() def delete_from_db(self): db.session.delete(self) db.session.commit() @classmethod def find_by_id(cls, deal_id): return cls.query.filter_by(deal_id=deal_id).first() @classmethod def find_main_im(cls): return cls.query.filter_by(im_role='main').all()
class Project_update(Base): __tablename__ = "project_update" update_id = db.Column(db.Integer, primary_key=True) deal_id = db.Column(db.Integer, db.ForeignKey('deal.deal_id')) deal = db.relationship("Deal") update_content = db.Column(db.String(2048), nullable=False) isSent = db.Column(db.String(1)) def __init__(self, deal_id, update_content, isSent): self.deal_id = deal_id self.update_content = update_content self.isSent = isSent def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit() @classmethod def get_all_from_db(cls): return cls.query.all() @classmethod def find_by_id(cls, _id): return cls.query.filter_by(update_id=_id).first() @classmethod def find_by_deal_id(cls, _id): return cls.query.filter_by(deal_id=_id).first()
class Deal(Base): __tablename__ = "deal" deal_id = db.Column(db.Integer, primary_key=True) group_id = db.Column(db.Integer, db.ForeignKey('deal_group.group_id')) deal_group = db.relationship("Deal_group") investmentManager = db.relationship("Asso_deal_to_im", back_populates='deal') name = db.Column(db.String(128), nullable=False) description = db.Column(db.String(256)) dealSize = db.Column(db.Float) status = db.Column(db.String(32), nullable=False) startDate = db.Column(db.DateTime) exitDate = db.Column(db.DateTime) def __init__(self, group_id, name, description, dealSize, status, startDate, exitDate): self.group_id = group_id self.name = name self.description = description self.dealSize = dealSize self.status = status self.startDate = startDate self.exitDate = exitDate def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit() @classmethod def get_all_from_db(cls): return cls.query.all() @classmethod def find_by_id(cls, deal_id): return cls.query.filter_by(deal_id=deal_id).first()
class Base(db.Model): __abstract__ = True date_created = db.Column(db.DateTime, default=db.func.current_timestamp()) date_modified = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
class InvestmentManager(Base): __tablename__ = "investmentManager" im_id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(128), nullable=False) display_name = db.Column(db.String(256)) dn = db.Column(db.String(128)) email = db.Column(db.String(128)) member_of = db.Column(db.String(512)) isActive = db.Column(db.Boolean, default=True) authenticated = db.Column(db.Boolean, default=False) deal = db.relationship('Asso_deal_to_im', back_populates='investmentManager') def __init__(self, name, dn): self.name = name self.dn = dn def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit() def is_active(self): """True, as all users are active.""" return True def get_id(self): """Return the email address to satisfy Flask-Login's requirements.""" return self.dn def is_authenticated(self): """Return True if the user is authenticated.""" return self.authenticated def is_anonymous(self): """False, as anonymous users aren't supported.""" return False def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit() @classmethod def get_all_from_db(cls): return cls.query.order_by(cls.name).all() @classmethod def get_all_active(cls): return cls.query.filter_by(isActive=True).order_by(cls.name).all() @classmethod def find_by_id(cls, _id): return cls.query.filter_by(im_id=_id).first() @classmethod def find_by_dn(cls, _dn): return cls.query.filter_by(dn=_dn).first()