36 lines
792 B
Python
36 lines
792 B
Python
from dataclasses import dataclass, field
|
|
from datetime import datetime
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class BrokerageAccountPayload:
|
|
external_id: str
|
|
name: str
|
|
number: str
|
|
balance: int
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class BrokerageAssetPayload:
|
|
external_id: str
|
|
ticker: str
|
|
price: float
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class BrokerageHoldingPayload:
|
|
external_id: str
|
|
account_external_id: str
|
|
asset_external_id: str
|
|
ticker: str
|
|
amount: float
|
|
cost_basis: float
|
|
purchase_date: datetime
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class BrokerageSnapshot:
|
|
accounts: list[BrokerageAccountPayload] = field(default_factory=list)
|
|
assets: list[BrokerageAssetPayload] = field(default_factory=list)
|
|
holdings: list[BrokerageHoldingPayload] = field(default_factory=list)
|