46 lines
No EOL
2.9 KiB
Python
46 lines
No EOL
2.9 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import List, Optional, Dict, Any
|
|
|
|
class CoinInfo(BaseModel):
|
|
availableToBorrow: Optional[str] = Field(None, description="Amount available to borrow")
|
|
bonus: Optional[str] = Field(None, description="Bonus amount")
|
|
accruedInterest: Optional[str] = Field(None, description="Accrued interest")
|
|
availableToWithdraw: Optional[str] = Field(None, description="Amount available to withdraw")
|
|
totalOrderIM: Optional[str] = Field(None, description="Initial margin for orders")
|
|
equity: Optional[str] = Field(None, description="Total coin equity")
|
|
totalPositionMM: Optional[str] = Field(None, description="Maintenance margin for positions")
|
|
usdValue: Optional[str] = Field(None, description="USD value of the coin")
|
|
unrealisedPnl: Optional[str] = Field(None, description="Unrealized PnL")
|
|
collateralSwitch: Optional[bool] = Field(None, description="Is used as collateral")
|
|
spotHedgingQty: Optional[str] = Field(None, description="Spot hedging quantity")
|
|
borrowAmount: Optional[str] = Field(None, description="Borrowed amount")
|
|
totalPositionIM: Optional[str] = Field(None, description="Initial margin for positions")
|
|
walletBalance: Optional[str] = Field(None, description="Coin wallet balance")
|
|
cumRealisedPnl: Optional[str] = Field(None, description="Cumulative realized PnL")
|
|
locked: Optional[str] = Field(None, description="Locked amount")
|
|
marginCollateral: Optional[bool] = Field(None, description="Is used as margin collateral")
|
|
coin: str = Field(..., description="Coin symbol")
|
|
|
|
class AccountInfo(BaseModel):
|
|
totalEquity: str = Field(..., description="Total equity in USD")
|
|
accountIMRate: str = Field(..., description="Initial margin rate")
|
|
totalMarginBalance: str = Field(..., description="Total margin balance")
|
|
totalInitialMargin: str = Field(..., description="Total initial margin")
|
|
accountType: str = Field(..., description="Account type (e.g. UNIFIED)")
|
|
totalAvailableBalance: str = Field(..., description="Total available balance")
|
|
accountMMRate: str = Field(..., description="Maintenance margin rate")
|
|
totalPerpUPL: str = Field(..., description="Unrealized PnL of perpetual positions")
|
|
totalWalletBalance: str = Field(..., description="Total wallet balance")
|
|
accountLTV: str = Field(..., description="Loan to value")
|
|
totalMaintenanceMargin: str = Field(..., description="Total maintenance margin")
|
|
coin: List[CoinInfo] = Field(..., description="List of coins")
|
|
|
|
class ResultInfo(BaseModel):
|
|
list: List[AccountInfo] = Field(..., description="List of accounts")
|
|
|
|
class AccountResponseSchema(BaseModel):
|
|
retCode: int = Field(..., description="Return code (0 means success)")
|
|
retMsg: str = Field(..., description="Return message")
|
|
result: ResultInfo = Field(..., description="Detailed result")
|
|
retExtInfo: Dict[str, Any] = Field(..., description="Extra information")
|
|
time: int = Field(..., description="Response timestamp") |