Files
sibuti/transport/backend/app/schemas/vehicle.py
2025-12-18 21:13:49 +03:00

39 lines
697 B
Python

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