"""月报相关 Pydantic schema。""" from datetime import datetime from pydantic import BaseModel, Field class MonthlyReportCreate(BaseModel): """创建月报请求。""" company_id: str period_year: int = Field(..., ge=2020, le=2100) period_month: int = Field(..., ge=1, le=12) raw_content: str | None = None class MonthlyReportUpdate(BaseModel): """更新月报请求。""" raw_content: str | None = None status: str | None = Field(default=None, description="draft/submitted/ai_parsed/reviewed") structured_data: dict | None = None ai_summary: str | None = None ai_concerns: dict | None = None class MonthlyReportResponse(BaseModel): """月报信息响应。""" id: str company_id: str period_year: int period_month: int status: str raw_content: str | None = None structured_data: dict | None = None ai_summary: str | None = None ai_concerns: dict | None = None submitted_by: str | None = None submitted_at: datetime | None = None reviewed_by: str | None = None reviewed_at: datetime | None = None created_at: datetime updated_at: datetime class MonthlyReportListResponse(BaseModel): """月报列表响应。""" items: list[MonthlyReportResponse] total: int page: int page_size: int