feat(models): tables MeteoStation + MeteoOpenMeteo (SQLModel)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 14:34:20 +01:00
parent 29e2f18e98
commit 17d2c5ac18
2 changed files with 43 additions and 1 deletions

View File

@@ -1,5 +1,11 @@
from app.models.garden import Garden, GardenCell, GardenImage, Measurement # noqa
from app.models.plant import PlantVariety, PlantImage # noqa
from app.models.plant import Plant, PlantImage # noqa
from app.models.planting import Planting, PlantingEvent # noqa
from app.models.task import Task # noqa
from app.models.settings import UserSettings, LunarCalendarEntry # noqa
from app.models.tool import Tool # noqa
from app.models.media import Media, Attachment # noqa
from app.models.dicton import Dicton # noqa
from app.models.astuce import Astuce # noqa
from app.models.recolte import Recolte, Observation # noqa
from app.models.meteo import MeteoStation, MeteoOpenMeteo # noqa

View File

@@ -0,0 +1,36 @@
from typing import Optional
from sqlmodel import Field, SQLModel
class MeteoStation(SQLModel, table=True):
"""Données collectées depuis la station WeeWX locale."""
__tablename__ = "meteostation"
date_heure: str = Field(primary_key=True) # "2026-02-22T14:00"
type: str = "current" # "current" | "veille"
temp_ext: Optional[float] = None # °C extérieur
temp_int: Optional[float] = None # °C intérieur (serre)
humidite: Optional[float] = None # %
pression: Optional[float] = None # hPa
pluie_mm: Optional[float] = None # précipitations
vent_kmh: Optional[float] = None
vent_dir: Optional[str] = None # N/NE/E/SE/S/SO/O/NO
uv: Optional[float] = None
solaire: Optional[float] = None # W/m²
class MeteoOpenMeteo(SQLModel, table=True):
"""Prévisions journalières Open-Meteo."""
__tablename__ = "meteoopenmeteo"
date: str = Field(primary_key=True) # "2026-02-22"
t_min: Optional[float] = None
t_max: Optional[float] = None
pluie_mm: Optional[float] = None
vent_kmh: Optional[float] = None
wmo: Optional[int] = None
label: Optional[str] = None
humidite_moy: Optional[float] = None
sol_0cm: Optional[float] = None # temp sol surface
etp_mm: Optional[float] = None # évapotranspiration
fetched_at: Optional[str] = None