first commit

This commit is contained in:
2026-06-19 13:38:17 +08:00
commit f38814e9bd
11 changed files with 915 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
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]