2026-02-09 15:49:50 +05:30
|
|
|
"""Schemas for gateway passthrough API request and response payloads."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from sqlmodel import SQLModel
|
|
|
|
|
|
2026-02-09 17:24:21 +05:30
|
|
|
from app.schemas.common import NonEmptyStr
|
|
|
|
|
|
|
|
|
|
RUNTIME_ANNOTATION_TYPES = (NonEmptyStr,)
|
2026-02-06 16:12:04 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewaySessionMessageRequest(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Request payload for sending a message into a gateway session."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
content: NonEmptyStr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewayResolveQuery(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Query parameters used to resolve which gateway to target."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
board_id: str | None = None
|
|
|
|
|
gateway_url: str | None = None
|
|
|
|
|
gateway_token: str | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewaysStatusResponse(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Aggregated gateway status response including session metadata."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
connected: bool
|
|
|
|
|
gateway_url: str
|
|
|
|
|
sessions_count: int | None = None
|
|
|
|
|
sessions: list[object] | None = None
|
|
|
|
|
main_session: object | None = None
|
|
|
|
|
main_session_error: str | None = None
|
|
|
|
|
error: str | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewaySessionsResponse(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Gateway sessions list response payload."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
sessions: list[object]
|
|
|
|
|
main_session: object | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewaySessionResponse(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Single gateway session response payload."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
session: object
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewaySessionHistoryResponse(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Gateway session history response payload."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
history: list[object]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GatewayCommandsResponse(SQLModel):
|
2026-02-09 15:49:50 +05:30
|
|
|
"""Gateway command catalog and protocol metadata."""
|
|
|
|
|
|
2026-02-06 16:12:04 +05:30
|
|
|
protocol_version: int
|
|
|
|
|
methods: list[str]
|
|
|
|
|
events: list[str]
|