"""Pydantic schemas for the 信息安全自评估 router.""" from __future__ import annotations from datetime import date from typing import Any from uuid import UUID from pydantic import BaseModel, Field class CycleCreateRequest(BaseModel): # None → the just-ended half-year. period_key: str | None = Field(default=None, max_length=16) class CycleUpdateRequest(BaseModel): title: str | None = Field(default=None, max_length=255) intro_narrative: str | None = None conclusion_narrative: str | None = None overall_conclusion: str | None = None report_date: date | None = None class SectionUpdateRequest(BaseModel): narrative: str | None = None conclusion: str | None = None data_table: list[dict[str, Any]] | None = None class MeasureCreateRequest(BaseModel): item: str = Field(min_length=1, max_length=255) content: str | None = None measures: str | None = None owner_person_id: UUID | None = None status: str = "pending" note: str | None = None sort_order: int = 0 class MeasureUpdateRequest(BaseModel): item: str | None = Field(default=None, max_length=255) content: str | None = None measures: str | None = None owner_person_id: UUID | None = None status: str | None = None note: str | None = None sort_order: int | None = None archived: bool | None = None