| from pydantic import BaseModel | |
| from typing import List, Optional, Dict, Any | |
| class CompanyMeta(BaseModel): | |
| company_name: str | |
| fiscal_year: int | |
| currency: str = "JPY" | |
| ticker: Optional[str] = None | |
| report_title: str = "Integrated Report" | |
| ceo_name: Optional[str] = None | |
| material_topics: List[str] = [] | |
| targets: Dict[str, Any] = {} | |
| class ReportSections(BaseModel): | |
| ceo_message: str = "" | |
| risk_opportunity: str = "" | |
| class RenderPayload(BaseModel): | |
| meta: CompanyMeta | |
| esg_table: List[Dict[str, Any]] | |
| kpi: Dict[str, float] | |
| sections: ReportSections | |
| generated_at: str | |
| lang: str = "ja" | |