feat(models): tables MeteoStation + MeteoOpenMeteo (SQLModel)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
from app.models.garden import Garden, GardenCell, GardenImage, Measurement # noqa
|
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.planting import Planting, PlantingEvent # noqa
|
||||||
from app.models.task import Task # noqa
|
from app.models.task import Task # noqa
|
||||||
from app.models.settings import UserSettings, LunarCalendarEntry # 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
|
||||||
|
|||||||
36
backend/app/models/meteo.py
Normal file
36
backend/app/models/meteo.py
Normal 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
|
||||||
Reference in New Issue
Block a user