backend-sxrb8t/schemas/weather_forecast.py

50 lines
1.4 KiB
Python

from pydantic import BaseModel
from typing import Optional
from datetime import datetime
class WeatherForecastBase(BaseModel):
location: str
date: datetime
temperature: float
humidity: float
wind_speed: float
precipitation_probability: float
description: str
class WeatherForecastCreate(WeatherForecastBase):
pass
class WeatherForecastUpdate(WeatherForecastBase):
location: Optional[str] = None
date: Optional[datetime] = None
temperature: Optional[float] = None
humidity: Optional[float] = None
wind_speed: Optional[float] = None
precipitation_probability: Optional[float] = None
description: Optional[str] = None
class WeatherForecastSchema(BaseModel):
forecasts: list[WeatherForecastBase] = [
WeatherForecastBase(
location="United States",
date=datetime(2023, 6, 1),
temperature=25.0,
humidity=60.0,
wind_speed=10.0,
precipitation_probability=0.2,
description="Partly cloudy"
),
WeatherForecastBase(
location="Canada",
date=datetime(2023, 6, 1),
temperature=18.0,
humidity=70.0,
wind_speed=8.0,
precipitation_probability=0.4,
description="Rainy"
),
# Add 8 more forecasts for different countries
]
class Config:
orm_mode = True