modify: sophon 视频文件上传、告警接口

This commit is contained in:
2026-07-28 14:16:00 +08:00
parent 79eb7fe5cc
commit 320f6c19a2
17 changed files with 575 additions and 52 deletions
+19 -1
View File
@@ -11,7 +11,7 @@ from sqlmodel import Field, SQLModel
class BoardHeartbeat(SQLModel, table=True):
"""设备心跳记录表"""
__tablename__ = "board_heartbeat"
__tablename__ = "board_heartbeat" # type: ignore
id: Optional[int] = Field(default=None, primary_key=True)
board_id: str = Field(index=True, unique=True, description="设备唯一标识 (BoardId)")
@@ -29,3 +29,21 @@ class BoardHeartbeat(SQLModel, table=True):
is_online: bool = Field(default=True, description="是否在线")
created_at: datetime = Field(default_factory=datetime.now, description="首次上报时间")
updated_at: datetime = Field(default_factory=datetime.now, description="最后更新时间")
class AlarmRecord(SQLModel, table=True):
"""告警记录表 — 存储盒子上报的完整告警报文"""
__tablename__ = "alarm_record" # type: ignore
id: Optional[int] = Field(default=None, primary_key=True)
board_id: str = Field(index=True, description="设备唯一标识 (BoardId)")
board_ip: str = Field(default="", description="设备 IP")
alarm_id: str = Field(index=True, unique=True, description="告警唯一标识 (AlarmId/UniqueId)")
summary: str = Field(default="", description="违规类型 (Summary)")
task_session: str = Field(default="", description="任务编号 (TaskSession)")
media_name: str = Field(default="", description="通道名称")
video_file: str = Field(default="", description="关联视频标识 (VideoFile)")
alarm_time: str = Field(default="", description="告警时间 (Time)")
alarm_timestamp: int = Field(default=0, description="告警时间戳-微秒 (TimeStamp)")
alarm_data: str = Field(default="{}", description="完整告警报文 JSON 字符串")
created_at: datetime = Field(default_factory=datetime.now, description="上报时间")