REFACTOR external service and improve websocket training
This commit is contained in:
38
services/external/app/schemas/weather.py
vendored
38
services/external/app/schemas/weather.py
vendored
@@ -120,26 +120,6 @@ class WeatherAnalytics(BaseModel):
|
||||
rainy_days: int = 0
|
||||
sunny_days: int = 0
|
||||
|
||||
class WeatherDataResponse(BaseModel):
|
||||
date: datetime
|
||||
temperature: Optional[float]
|
||||
precipitation: Optional[float]
|
||||
humidity: Optional[float]
|
||||
wind_speed: Optional[float]
|
||||
pressure: Optional[float]
|
||||
description: Optional[str]
|
||||
source: str
|
||||
|
||||
class WeatherForecastResponse(BaseModel):
|
||||
forecast_date: datetime
|
||||
generated_at: datetime
|
||||
temperature: Optional[float]
|
||||
precipitation: Optional[float]
|
||||
humidity: Optional[float]
|
||||
wind_speed: Optional[float]
|
||||
description: Optional[str]
|
||||
source: str
|
||||
|
||||
class LocationRequest(BaseModel):
|
||||
latitude: float
|
||||
longitude: float
|
||||
@@ -174,4 +154,20 @@ class HourlyForecastResponse(BaseModel):
|
||||
wind_speed: Optional[float]
|
||||
description: Optional[str]
|
||||
source: str
|
||||
hour: int
|
||||
hour: int
|
||||
|
||||
class WeatherForecastAPIResponse(BaseModel):
|
||||
"""Simplified schema for API weather forecast responses (without database fields)"""
|
||||
forecast_date: datetime = Field(..., description="Date for forecast")
|
||||
generated_at: datetime = Field(..., description="When forecast was generated")
|
||||
temperature: Optional[float] = Field(None, ge=-50, le=60, description="Forecasted temperature")
|
||||
precipitation: Optional[float] = Field(None, ge=0, description="Forecasted precipitation")
|
||||
humidity: Optional[float] = Field(None, ge=0, le=100, description="Forecasted humidity")
|
||||
wind_speed: Optional[float] = Field(None, ge=0, le=200, description="Forecasted wind speed")
|
||||
description: Optional[str] = Field(None, max_length=200, description="Forecast description")
|
||||
source: str = Field("aemet", max_length=50, description="Data source")
|
||||
|
||||
class Config:
|
||||
json_encoders = {
|
||||
datetime: lambda v: v.isoformat()
|
||||
}
|
||||
Reference in New Issue
Block a user