Preserve ledger venue provenance (#39)
* feat: preserve ledger venue provenance * fix: satisfy ledger test lint ratchet * fix: advance image migration inventory
This commit is contained in:
@@ -37,6 +37,8 @@ class LedgerEntryResponse(BaseModel):
|
||||
profit_buffer_after: float = 0.0
|
||||
strategy_set_id: str = "manual"
|
||||
note: str = ""
|
||||
execution_venue: Literal["KRX", "NXT"] | None = None
|
||||
order_venue: Literal["KRX", "NXT", "SOR"] | None = None
|
||||
|
||||
|
||||
class PortfolioBase(BaseModel):
|
||||
|
||||
@@ -108,6 +108,8 @@ class UserInfoResponse(BaseModel):
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
class LedgerTradeRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
order_id: str = Field(..., min_length=1)
|
||||
execution_id: str = Field(..., min_length=1)
|
||||
side: Literal["buy", "sell"]
|
||||
@@ -116,6 +118,8 @@ class LedgerTradeRequest(BaseModel):
|
||||
fee_amount: Decimal = Field(default=Decimal(0), ge=0)
|
||||
tax_amount: Decimal = Field(default=Decimal(0), ge=0)
|
||||
executed_at: datetime
|
||||
execution_venue: Literal["KRX", "NXT"] | None = None
|
||||
order_venue: Literal["KRX", "NXT", "SOR"] | None = None
|
||||
|
||||
|
||||
class LedgerTradeResponse(BaseModel):
|
||||
@@ -129,6 +133,8 @@ class LedgerTradeResponse(BaseModel):
|
||||
fee_amount: float
|
||||
tax_amount: float
|
||||
executed_at: datetime
|
||||
execution_venue: Literal["KRX", "NXT"] | None = None
|
||||
order_venue: Literal["KRX", "NXT", "SOR"] | None = None
|
||||
recorded_at: datetime | None = None
|
||||
cash_balance_after: float = 0.0
|
||||
asset_quantity_after: float = 0.0
|
||||
@@ -286,6 +292,8 @@ class LedgerHistoryItem(BaseModel):
|
||||
total_value_after: float | None = None
|
||||
target_ledger_entry_id: int | None = None
|
||||
confirmation_evidence: str | None = None
|
||||
execution_venue: Literal["KRX", "NXT"] | None = None
|
||||
order_venue: Literal["KRX", "NXT", "SOR"] | None = None
|
||||
|
||||
|
||||
class DividendLedgerHistoryItem(BaseModel):
|
||||
@@ -311,6 +319,8 @@ class DividendLedgerHistoryItem(BaseModel):
|
||||
total_value_after: float | None = None
|
||||
target_ledger_entry_id: int | None = None
|
||||
confirmation_evidence: str | None = None
|
||||
execution_venue: Literal["KRX", "NXT"] | None = None
|
||||
order_venue: Literal["KRX", "NXT", "SOR"] | None = None
|
||||
|
||||
|
||||
class CorporateActionLedgerHistoryItem(BaseModel):
|
||||
@@ -331,6 +341,8 @@ class CorporateActionLedgerHistoryItem(BaseModel):
|
||||
evidence_ref: str
|
||||
actor_user_id: str | None = None
|
||||
recorded_at: datetime
|
||||
execution_venue: Literal["KRX", "NXT"] | None = None
|
||||
order_venue: Literal["KRX", "NXT", "SOR"] | None = None
|
||||
|
||||
|
||||
class LedgerHistoryResponse(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user