2026-02-01 13:06:44 +00:00

38 lines
843 B
Python

from pydantic import BaseModel, validator
from typing import Literal, Optional
class SipFrequency(BaseModel):
value: int
unit: Literal["days", "minutes"]
class StrategyStartRequest(BaseModel):
strategy_name: str
initial_cash: Optional[float] = None
sip_amount: float
sip_frequency: SipFrequency
mode: Literal["PAPER"]
@validator("initial_cash")
def validate_cash(cls, v):
if v is None:
return v
if v < 10000:
raise ValueError("Initial cash must be at least 10,000")
return v
class AuthPayload(BaseModel):
email: Optional[str] = None
username: Optional[str] = None
password: Optional[str] = None
class PasswordResetRequest(BaseModel):
email: str
class PasswordResetConfirm(BaseModel):
email: str
otp: str
new_password: str