small layout changes, refractoring
This commit is contained in:
35
api_models.py
Normal file
35
api_models.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""
|
||||
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)
|
||||
Reference in New Issue
Block a user