"""Pydantic schemas for trade setup endpoints.""" from __future__ import annotations from datetime import datetime from pydantic import BaseModel, Field class TradeTargetResponse(BaseModel): price: float distance_from_entry: float distance_atr_multiple: float rr_ratio: float probability: float classification: str sr_level_id: int sr_strength: float class RecommendationSummaryResponse(BaseModel): action: str reasoning: str | None risk_level: str | None composite_score: float class TradeSetupResponse(BaseModel): """A single trade setup detected by the R:R scanner.""" id: int symbol: str direction: str entry_price: float stop_loss: float target: float rr_ratio: float composite_score: float detected_at: datetime confidence_score: float | None = None targets: list[TradeTargetResponse] = Field(default_factory=list) conflict_flags: list[str] = Field(default_factory=list) recommended_action: str | None = None reasoning: str | None = None risk_level: str | None = None actual_outcome: str | None = None recommendation_summary: RecommendationSummaryResponse | None = None