from datetime import datetime from pydantic import BaseModel, Field class WeatherDataIn(BaseModel): """Payload accepted by POST /data.""" station_name: str = Field(..., description="Name of the weather station") temperature: float | None = Field(None, description="Temperature in Celsius") pressure: float | None = Field(None, description="Atmospheric pressure in hPa") relative_humidity: float | None = Field( None, description="Relative humidity in percent (0-100)" ) class WeatherRecordOut(BaseModel): """Record returned by the API (includes server-assigned fields).""" id: int station_name: str temperature: float | None pressure: float | None relative_humidity: float | None received_at: datetime class WeatherHistoryResponse(BaseModel): """Wrapper for history queries — always returns a list (empty if no data).""" station_name: str records: list[WeatherRecordOut]