""" Drawdown related Pydantic schemas. """ from datetime import date from decimal import Decimal from typing import List, Optional from pydantic import BaseModel, Field from app.schemas.portfolio import FloatDecimal class DrawdownDataPoint(BaseModel): date: date total_value: FloatDecimal peak: FloatDecimal drawdown_pct: FloatDecimal class DrawdownResponse(BaseModel): portfolio_id: int current_drawdown_pct: FloatDecimal max_drawdown_pct: FloatDecimal max_drawdown_date: date | None = None peak_value: FloatDecimal | None = None peak_date: date | None = None trough_value: FloatDecimal | None = None trough_date: date | None = None alert_threshold_pct: FloatDecimal = Decimal("20") class DrawdownHistoryResponse(BaseModel): portfolio_id: int data: List[DrawdownDataPoint] = [] max_drawdown_pct: FloatDecimal current_drawdown_pct: FloatDecimal class DrawdownSettingsUpdate(BaseModel): alert_threshold_pct: FloatDecimal = Field(..., gt=0, le=100)