from __future__ import annotations from pydantic import BaseModel from typing import Any class SeasonalConfigSchema(BaseModel): narrative: str | None = None style: str | None = None brand_name: str | None = None version_label: str | None = None season_label: str | None = None class SeasonalVersionSchema(BaseModel): version_id: str name: str days: int nights: int tag: str | None = None line: str | None = None route: str | None = None audience: str | None = None description: str | None = None highlights: list[str] = [] itinerary: list[str] = [] class SeasonalVersionResponse(SeasonalVersionSchema): id: int sort_order: int = 0 class Config: from_attributes = True class SeasonalHighlightSchema(BaseModel): category: str # shared, south, north title: str description: str | None = None class SeasonalHighlightResponse(SeasonalHighlightSchema): id: int sort_order: int = 0 class Config: from_attributes = True class SeasonalTimelineSchema(BaseModel): version: str | None = None date: str | None = None title: str | None = None changes: list[dict] = [] reason: str | None = None class SeasonalTimelineResponse(SeasonalTimelineSchema): id: int sort_order: int = 0 class Config: from_attributes = True