65 lines
1.5 KiB
Python
65 lines
1.5 KiB
Python
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]
|