from pydantic import BaseModel, Field from datetime import datetime from typing import Optional, List class CityBase(BaseModel): name: str country: str latitude: float longitude: float class CityCreate(CityBase): pass class City(CityBase): id: int created_at: datetime class Config: orm_mode = True class WeatherDataBase(BaseModel): temperature: float feels_like: float humidity: int pressure: int wind_speed: float wind_direction: int description: str weather_main: str weather_icon: str class WeatherDataCreate(WeatherDataBase): city_id: int class WeatherData(WeatherDataBase): id: int city_id: int timestamp: datetime class Config: orm_mode = True class WeatherResponse(BaseModel): city: City current_weather: WeatherData class CityWeather(BaseModel): city: City weather_data: List[WeatherData] class CityQuery(BaseModel): city: str = Field(..., description="City name") country: Optional[str] = Field(None, description="Country code (ISO 3166-1 alpha-2)")