Improve the dahboard with the weather info 2
This commit is contained in:
24
services/external/app/schemas/traffic.py
vendored
24
services/external/app/schemas/traffic.py
vendored
@@ -31,8 +31,8 @@ class TrafficDataUpdate(BaseModel):
|
||||
average_speed: Optional[float] = Field(None, ge=0, le=200)
|
||||
raw_data: Optional[str] = None
|
||||
|
||||
class TrafficDataResponse(TrafficDataBase):
|
||||
"""Schema for traffic data responses"""
|
||||
class TrafficDataResponseDB(TrafficDataBase):
|
||||
"""Schema for traffic data responses from database"""
|
||||
id: str = Field(..., description="Unique identifier")
|
||||
created_at: datetime = Field(..., description="Creation timestamp")
|
||||
updated_at: datetime = Field(..., description="Last update timestamp")
|
||||
@@ -52,7 +52,7 @@ class TrafficDataResponse(TrafficDataBase):
|
||||
|
||||
class TrafficDataList(BaseModel):
|
||||
"""Schema for paginated traffic data responses"""
|
||||
data: List[TrafficDataResponse]
|
||||
data: List[TrafficDataResponseDB]
|
||||
total: int = Field(..., description="Total number of records")
|
||||
page: int = Field(..., description="Current page number")
|
||||
per_page: int = Field(..., description="Records per page")
|
||||
@@ -72,12 +72,18 @@ class TrafficAnalytics(BaseModel):
|
||||
avg_speed: Optional[float] = None
|
||||
|
||||
class TrafficDataResponse(BaseModel):
|
||||
date: datetime
|
||||
traffic_volume: Optional[int]
|
||||
pedestrian_count: Optional[int]
|
||||
congestion_level: Optional[str]
|
||||
average_speed: Optional[float]
|
||||
source: str
|
||||
"""Schema for API traffic data responses"""
|
||||
date: datetime = Field(..., description="Date and time of traffic measurement")
|
||||
traffic_volume: Optional[int] = Field(None, ge=0, description="Vehicles per hour")
|
||||
pedestrian_count: Optional[int] = Field(None, ge=0, description="Pedestrians per hour")
|
||||
congestion_level: Optional[str] = Field(None, pattern="^(low|medium|high)$", description="Traffic congestion level")
|
||||
average_speed: Optional[float] = Field(None, ge=0, le=200, description="Average speed in km/h")
|
||||
source: str = Field(..., description="Data source")
|
||||
|
||||
class Config:
|
||||
json_encoders = {
|
||||
datetime: lambda v: v.isoformat()
|
||||
}
|
||||
|
||||
class LocationRequest(BaseModel):
|
||||
latitude: float
|
||||
|
||||
Reference in New Issue
Block a user