diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index a0ccd9a..7392db3 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -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 diff --git a/backend/app/models/meteo.py b/backend/app/models/meteo.py new file mode 100644 index 0000000..82bba65 --- /dev/null +++ b/backend/app/models/meteo.py @@ -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