New_Dhan_UI / backend /models.py
kishan-1721
update UI
ce962b1
"""
Pydantic models for request/response validation
"""
from typing import Optional, List
from pydantic import BaseModel
class ClientDetails(BaseModel):
client_id: str
client_name: Optional[str] = None
access_token: str
availabel_balance: Optional[float] = 0.0
class OrderRequest(BaseModel):
clients: List[str] # List of client names or IDs
symbol: str
exchange: str
transaction_type: str # "BUY" or "SELL"
order_type: str # "MARKET" or "LIMIT"
product_type: str # "INTRA", "DELIVERY", "MTF", "NORMAL"
client_quantities: Optional[dict] = None # { "client_name": quantity }
quantity: Optional[int] = None
lot: Optional[int] = None
price: Optional[float] = 0.0
class HoldingData(BaseModel):
tradingSymbol: str
positionType: Optional[str] = None
exchangeSegment: str
productType: str
costPrice: float
netQty: int
pnl: float
account_holder: Optional[str] = None
class SquareOffRequest(BaseModel):
symbol: str
segment: str # "fno", "etf", "equity"
clients: List[dict] # [{"client": "name", "qty": 100}, ...]
order_type: Optional[str] = "MARKET" # "MARKET", "LIMIT"
price: Optional[float] = 0.0
transaction_type: Optional[str] = "SELL" # "BUY", "SELL"
product_type: Optional[str] = None # "CASH", "MTF", "INTRADAY", etc.
class OrderResponse(BaseModel):
client: str
success: bool
response: Optional[dict] = None
error: Optional[str] = None
class BalanceResponse(BaseModel):
name: str
balance_inr: float
class MetricsResponse(BaseModel):
total_pnl: float
active_scripts: int
profitable_scripts: int