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