2025-08-13 18:05:26 +02:00

50 lines
1.2 KiB
Python

from typing import Optional, List, Dict, Any
from datetime import datetime
from pydantic import BaseModel, Field
# Shared properties
class DeviceBase(BaseModel):
name: str
description: Optional[str] = None
model: Optional[str] = "SIM7000E"
firmware_version: Optional[str] = None
# Properties to receive on device creation
class DeviceCreate(DeviceBase):
id: str
# Properties to receive on device update
class DeviceUpdate(DeviceBase):
name: Optional[str] = None
is_active: Optional[bool] = None
battery_level: Optional[float] = None
signal_strength: Optional[int] = None
latitude: Optional[float] = None
longitude: Optional[float] = None
altitude: Optional[float] = None
# Properties shared by models stored in DB
class DeviceInDBBase(DeviceBase):
id: str
is_active: bool
last_seen: Optional[datetime] = None
battery_level: Optional[float] = None
signal_strength: Optional[int] = None
latitude: Optional[float] = None
longitude: Optional[float] = None
altitude: Optional[float] = None
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
orm_mode = True
# Properties to return to client
class DeviceResponse(DeviceInDBBase):
pass