from pydantic import BaseModel, Field
from typing import List, Optional, Dict

class RecommendationItem(BaseModel):
    code: str = Field(..., examples=["7203"])
    name: str = Field(..., examples=["トヨタ自動車"])
    per: Optional[float] = None
    roe: Optional[float] = None
    pbr: Optional[float] = None
    sales_growth: Optional[float] = None

class RecommendationListResponse(BaseModel):
    rule_set_id: str = "default"
    last_update: Optional[str] = None  # ISO8601文字列
    items: List[RecommendationItem] = []

class StockDetailResponse(BaseModel):
    code: str
    name: str
    indicators: Dict[str, Optional[float]]
    last_updated: Optional[str] = None

class ErrorResponse(BaseModel):
    error: Dict[str, str]
