init
This commit is contained in:
38
transport/backend/app/schemas/vehicle.py
Normal file
38
transport/backend/app/schemas/vehicle.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class VehicleBase(BaseModel):
|
||||
name: str
|
||||
type: str = "car"
|
||||
|
||||
|
||||
class VehicleCreate(VehicleBase):
|
||||
pass
|
||||
|
||||
|
||||
class VehicleUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
|
||||
|
||||
class VehicleResponse(VehicleBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class LastPosition(BaseModel):
|
||||
lat: float
|
||||
lon: float
|
||||
speed: float
|
||||
heading: float
|
||||
timestamp: datetime
|
||||
|
||||
|
||||
class VehicleWithPosition(VehicleResponse):
|
||||
last_position: Optional[LastPosition] = None
|
||||
status: str = "unknown" # moving, stopped, offline
|
||||
Reference in New Issue
Block a user