diff options
Diffstat (limited to 'python/Dawn/models.py')
| -rw-r--r-- | python/Dawn/models.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/python/Dawn/models.py b/python/Dawn/models.py index 4bda22d7..fd33926b 100644 --- a/python/Dawn/models.py +++ b/python/Dawn/models.py @@ -29,6 +29,14 @@ class Counterparties(db.Model): notes = db.Column(db.String) instructions = db.Column(db.String, info={'form_field_class': FileField}) +class Accounts(db.Model): + __tablename__ = 'accounts' + code = db.Column(db.String(5), primary_key=True) + name = db.Column(db.String) + custodian = db.Column(db.String) + cash_account = db.Column(db.String) + counterpaty = db.Column(db.String, db.ForeignKey('counterparties.code')) + BOND_STRAT = ENUM('M_STR_MAV', 'M_STR_MEZZ', 'CSO_TRANCH', 'M_CLO_BB20', 'M_CLO_AAA', 'M_CLO_BBB', 'M_MTG_IO', 'M_MTG_THRU', 'M_MTG_GOOD', 'M_MTG_B4PR', 'M_MTG_RW', 'M_MTG_FP', 'M_MTG_LMG', @@ -45,6 +53,10 @@ SWAPTION_STRAT = ENUM('IGPAYER', 'IGREC', 'HYPAYER', 'HYREC', FUTURE_STRAT = ENUM('M_STR_MAV', 'M_MTG_IO', 'M_STR_MEZZ', 'M_MTG_RW', 'SER_ITRXCURVE', name='future_strat') +CASH_STRAT = ENUM('M_CSH_CASH', 'MBSCDSCSH', 'SER_IGCVECSH', 'SER_ITRXCVCSH', 'CSOCDSCSH', + 'IGCDSCSH', 'HYCDSCSH', 'CLOCDSCSH', 'IGTCDSCSH', 'MACCDSCSH', + name='cash_strat') + SWAPTION_TYPE = ENUM('PAYER', 'RECEIVER', name='swaption_type') @@ -83,10 +95,10 @@ class BondDeal(db.Model): cashaccount = db.Column(db.String(10), default='V0NSCLMAMB', nullable=False) cp_code = db.Column(db.String(12), db.ForeignKey('counterparties.code'), info={'choices': [(None, '')], - 'label': 'counterparty'}, nullable = False) + 'label': 'counterparty'}, nullable=False) trade_date = db.Column(db.Date, nullable = False) settle_date = db.Column(db.Date, nullable = False) - cusip = db.Column(db.String(9), info={'validators': Length(9,9), + cusip = db.Column(db.String(9), info={'validators': Length(9, 9), 'filters': [lambda x: x or None,], 'trim': True}) isin = db.Column(db.String(12), info={'validators': Length(12, 12), @@ -197,7 +209,7 @@ class SwaptionDeal(db.Model): trade_date = db.Column(db.Date, nullable=False) settle_date = db.Column(db.Date, nullable=False) buysell = db.Column(db.Boolean, nullable=False, info={'choices':[(0, 'sell'), (1, 'buy')], - 'coerce': lambda x: bool(int(x)) \ + 'coerce': lambda x: bool(int(x)) \ if x is not None else x}) notional = db.Column(db.Float, nullable=False) swaption_type = db.Column(SWAPTION_TYPE, nullable=False) @@ -241,6 +253,21 @@ class FutureDeal(db.Model): exchange = db.Column(db.String(3), default='CME', nullable=False) counterparty = db.relationship(Counterparties) +class CashFlowDeal(db.Model): + __tablename__ = 'wires' + id = db.Column('id', db.Integer, primary_key=True) + dealid = db.Column(db.String(28)) + lastupdate = db.Column(db.DateTime, server_default=db.func.now(), onupdate=db.func.now()) + action = db.Column(ACTION) + folder = db.Column(CASH_STRAT, nullable=False) + code = db.Column(db.String(5), db.ForeignKey('accounts.code'), + info={'choices': [('IB', 'pomme')], + 'label': 'account'}, nullable=False) + amount = db.Column(db.Float, nullable=False) + trade_date = db.Column(db.Date, nullable=False) + settle_date = db.Column(db.Date, nullable=False) + account = db.relationship(Accounts) + BaseModelForm = model_form_factory(FlaskForm) class ModelForm(BaseModelForm): @classmethod |
