from __future__ import annotations from pydantic import BaseModel from typing import Any class VersionUpgradeSchema(BaseModel): tag: str | None = None name: str | None = None description: str | None = None reason: str | None = None class VersionHighlightSchema(BaseModel): label: str | None = None text: str | None = None class VersionCompareSchema(BaseModel): headers: list[str] = [] rows: list[list[str]] = [] class TimelineChangeSchema(BaseModel): type: str # add, update, remove text: str class VersionTimelineSchema(BaseModel): version: str date: str | None = None title: str | None = None changes: list[TimelineChangeSchema] = [] reason: str | None = None class VersionTimelineResponse(VersionTimelineSchema): id: int sort_order: int = 0 class Config: from_attributes = True class VersionPhilosophySchema(BaseModel): label: str | None = None text: str | None = None class VersionConfigSchema(BaseModel): stats_iterations: int | None = None stats_years: int | None = None stats_guests: str | None = None quote_text: str | None = None quote_author: str | None = None