from datetime import datetime from pydantic import BaseModel class PriceHistoryResponse(BaseModel): """Response model for a price history record.""" id: int source: str pair: str price: float timestamp: datetime created_at: datetime class ExchangeConfigResponse(BaseModel): """Exchange configuration for the frontend.""" eur_min: int eur_max: int eur_increment: int premium_percentage: int class PriceResponse(BaseModel): """Current BTC/EUR price for trading. Note: The actual agreed price depends on trade direction (buy/sell) and is calculated by the frontend using market_price and premium_percentage. """ market_price: float # Raw price from exchange premium_percentage: int timestamp: datetime is_stale: bool class ExchangePriceResponse(BaseModel): """Combined price and configuration response.""" price: PriceResponse | None # None if price fetch failed config: ExchangeConfigResponse error: str | None = None