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:
2026-09-19 19:30:32 +09:00
committed by GitHub
parent 567d662913
commit 996127f215
23 changed files with 768 additions and 35 deletions
+12
View File
@@ -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):