""" API models for the Airport Announcement System. """ from enum import Enum from pydantic import BaseModel, Field from typing import Optional, List class AnnouncementStates(Enum): IDLE: str = "Ready" TRANSLATING: str = "Translating" GENERATING_VOICE: str = "Generating voice synthesis" ROUTING: str = "Routing to endpoints" ACTIVE: str = "Broadcasting announcement" COMPLETE: str = "Complete" ERROR: str = "Error" class AnnouncementParameters(BaseModel): text: Optional[str] = None languages: List[str] = [] start_time: Optional[float] = None class AnnouncementProgress(BaseModel): current_state: str = AnnouncementStates.IDLE.value progress: float = Field(default=0.0, ge=0.0, le=1.0) error: Optional[str] = None class EndpointGroup(BaseModel): id: int name: str endpoints: List[str] languages: List[str] # Announcement parameters and progress as nested models parameters: AnnouncementParameters = Field(default_factory=AnnouncementParameters) progress: AnnouncementProgress = Field(default_factory=AnnouncementProgress)