aboutsummaryrefslogtreecommitdiffstats
path: root/python/Dawn/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/Dawn/models.py')
-rw-r--r--python/Dawn/models.py33
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