from typing import Optional from sqlmodel import SQLModel, Field from entity.base import TimestampMixin class DeviceBase(SQLModel): name: str code: str type: Optional[str] = None ip: str input_stream_url: Optional[str] = None output_stream_url: Optional[str] = None image_save_interval: Optional[int] = None class Device(DeviceBase, TimestampMixin, table=True): id: Optional[int] = Field(default=None, primary_key=True) class DeviceCreate(DeviceBase): pass class DeviceUpdate(DeviceBase): id: int name: Optional[str] = None code: Optional[str] = None ip: Optional[str] = None class DeviceInfo(DeviceBase, TimestampMixin): id: int