feat(portfolio): add atomic corporate action persistence

This commit is contained in:
2026-09-13 13:43:21 +09:00
parent dc755889b3
commit 7a45bec3cb
3 changed files with 72 additions and 3 deletions
+24 -1
View File
@@ -3,7 +3,7 @@
from __future__ import annotations
from dataclasses import dataclass, field
from datetime import datetime
from datetime import date, datetime
from decimal import Decimal
from enum import Enum
from typing import Any, Protocol, runtime_checkable
@@ -132,6 +132,29 @@ class Portfolio:
managed_by_daemon_id: str | None = None
@dataclass
class CorporateAction:
corporate_action_id: str
portfolio_id: str
asset_id: str | None
action_type: str
effective_date: date
quantity_before: Decimal
quantity_after: Decimal
average_price_before: Decimal
average_price_after: Decimal
total_cost_basis: Decimal
cash_balance: Decimal
profit_buffer: Decimal
evidence_ref: str
idempotency_key: str
payload_hash: str
ledger_entry_id: int
actor_user_id: str | None = None
recorded_at: datetime | None = None
idempotent_replay: bool = False
@dataclass
class LedgerEntry:
portfolio_id: str