""" 数据相关的Pydantic模式 """ from pydantic import BaseModel, Field from typing import Dict, Any, Optional, List from datetime import datetime class FinancialDataRequest(BaseModel): """财务数据请求模式""" symbol: str = Field(..., description="证券代码") market: str = Field(..., description="交易市场") data_type: str = Field("all", description="数据类型") period: Optional[str] = Field("annual", description="数据周期") class MarketDataRequest(BaseModel): """市场数据请求模式""" symbol: str = Field(..., description="证券代码") market: str = Field(..., description="交易市场") start_date: Optional[datetime] = Field(None, description="开始日期") end_date: Optional[datetime] = Field(None, description="结束日期") class FinancialDataResponse(BaseModel): """财务数据响应模式""" symbol: str market: str data_source: str last_updated: datetime balance_sheet: Optional[Dict[str, Any]] = None income_statement: Optional[Dict[str, Any]] = None cash_flow: Optional[Dict[str, Any]] = None key_metrics: Optional[Dict[str, Any]] = None class MarketDataResponse(BaseModel): """市场数据响应模式""" symbol: str market: str data_source: str last_updated: datetime price_data: Optional[Dict[str, Any]] = None volume_data: Optional[Dict[str, Any]] = None technical_indicators: Optional[Dict[str, Any]] = None class SymbolValidationRequest(BaseModel): """证券代码验证请求模式""" symbol: str = Field(..., description="证券代码") market: str = Field(..., description="交易市场") class SymbolValidationResponse(BaseModel): """证券代码验证响应模式""" symbol: str market: str is_valid: bool company_name: Optional[str] = None sector: Optional[str] = None industry: Optional[str] = None message: Optional[str] = None class DataSourceStatus(BaseModel): """数据源状态模式""" name: str is_available: bool last_check: datetime response_time_ms: Optional[int] = None error_message: Optional[str] = None class DataSourcesStatusResponse(BaseModel): """数据源状态响应模式""" sources: List[DataSourceStatus] overall_status: str # "healthy", "degraded", "down"