30 lines
544 B
Python
30 lines
544 B
Python
|
|
from datetime import datetime
|
||
|
|
from typing import Optional
|
||
|
|
from pydantic import BaseModel
|
||
|
|
|
||
|
|
|
||
|
|
class PositionBase(BaseModel):
|
||
|
|
lat: float
|
||
|
|
lon: float
|
||
|
|
speed: float = 0.0
|
||
|
|
heading: float = 0.0
|
||
|
|
|
||
|
|
|
||
|
|
class PositionCreate(PositionBase):
|
||
|
|
vehicle_id: int
|
||
|
|
timestamp: Optional[datetime] = None
|
||
|
|
|
||
|
|
|
||
|
|
class PositionIngest(PositionBase):
|
||
|
|
vehicle_id: int
|
||
|
|
timestamp: Optional[datetime] = None
|
||
|
|
|
||
|
|
|
||
|
|
class PositionResponse(PositionBase):
|
||
|
|
id: int
|
||
|
|
vehicle_id: int
|
||
|
|
timestamp: datetime
|
||
|
|
|
||
|
|
class Config:
|
||
|
|
from_attributes = True
|