40 lines
696 B
Python
40 lines
696 B
Python
from dataclasses import dataclass, field
|
|
from datetime import date
|
|
from typing import Optional, List, Any
|
|
|
|
|
|
@dataclass
|
|
class TaxLot:
|
|
id: str
|
|
acquisition_date: date
|
|
basis: float
|
|
quantity: float
|
|
market_value: Optional[float] = None
|
|
lot_status: str = "open"
|
|
|
|
|
|
@dataclass
|
|
class Account:
|
|
id: str
|
|
jurisdiction: str
|
|
tax_profile: str
|
|
|
|
|
|
@dataclass
|
|
class HarvestAction:
|
|
lot_id: str
|
|
sell_qty: float
|
|
date: date
|
|
expected_gain: float
|
|
|
|
|
|
@dataclass
|
|
class PlanDelta:
|
|
actions: List[HarvestAction] = field(default_factory=list)
|
|
metadata: dict = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class AuditLog:
|
|
entries: List[Any] = field(default_factory=list)
|