from sqlmodel import Field, Session, SQLModel, create_engine, select from netbrite import Colors, Fonts, Message, Priorities, ScrollSpeeds class BaseZone(SQLModel, table=True, echo=True): id: int | None = Field(default=None, primary_key=True) x: int y: int width: int height: int scroll_speed: ScrollSpeeds pause_duration: int volume: int default_font: Fonts default_color: Colors default_message: int | None = Field(foreign_key="apimessages.id") netbrite_device_id: int = Field(foreign_key="apinetbritedevice.id") class APIGetZone(SQLModel, table=True, echo=True): id: int | None = Field(default=None, primary_key=True) x: int y: int width: int height: int scroll_speed: ScrollSpeeds pause_duration: int volume: int default_font: Fonts default_color: Colors default_message: Message | None class APIMessages(SQLModel, table=True, echo=True): id: int | None = Field(default=None, primary_key=True) activation_delay: int display_delay: int display_repeat: int priority: Priorities text: str ttl: int class BaseNetBriteDevice(SQLModel, table=True, echo=True): id: int | None = Field(default=None, primary_key=True) address: str = Field(unique=True) port: int = 700 class APIAddNetBriteDevice(SQLModel, table=False): address: str port: int = 700 class APIGetNetBriteDevice(SQLModel, table=False): address: str port: int = 700 connected: bool zones: dict[str, APIGetZone]