diff options
| -rw-r--r-- | python/citco_ops/cash.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/python/citco_ops/cash.py b/python/citco_ops/cash.py new file mode 100644 index 00000000..21b693c2 --- /dev/null +++ b/python/citco_ops/cash.py @@ -0,0 +1,26 @@ +from dataclasses import field, dataclass +from serenitas.ops.trade_dataclasses import Deal, Fund +import datetime + + +@dataclass +class IAMDeal(Deal, deal_type=None, table_name="iam_tickets"): + trade_date: datetime.date = field(metadata={"globeop": "SettlementDate"}) + action: str = field(metadata={"globeop": "Action"}) + strategy: str = field(metadata={"globeop": "Folder"}) + counterparty: str = field(metadata={"globeop": "Counterparty"}) + maturity: datetime.date + start_money: float = field(metadata={"globeop": "StartMoney"}) + currency: str = field(metadata={"globeop": "Currency"}) + booked_offset: bool + uploaded: bool + fund: Fund + dealid: str = field(metadata={"insert": False}) + id: int = field(metadata={"insert": False}) + + def to_globeop(self, action): + obj = super().to_globeop(action) + obj["Deal Type"] = "IamDeal" + obj["ExpirationDate"] = self.trade_date if self.action == "UPDATE" else None + obj["CallNoticeIndicator"] = "24H" if self.action == "NEW" else None + return obj |
