maj via codex

This commit is contained in:
2026-02-22 18:34:50 +01:00
parent 20af00d653
commit 55387f4b0e
90 changed files with 9902 additions and 1251 deletions

View File

@@ -16,4 +16,6 @@ class Astuce(SQLModel, table=True):
categorie: Optional[str] = None # "plante"|"jardin"|"tache"|"general"|"ravageur"|"maladie"
tags: Optional[str] = None # JSON array string: '["tomate","semis"]'
mois: Optional[str] = None # JSON array string: '[3,4,5]' ou null = toute l'année
photos: Optional[str] = None # JSON array string: '["/uploads/a.webp"]'
videos: Optional[str] = None # JSON array string: '["/uploads/b.mp4"]'
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))

View File

@@ -16,7 +16,13 @@ class Garden(SQLModel, table=True):
ombre: Optional[str] = None # ombre | mi-ombre | plein_soleil
sol_type: Optional[str] = None
sol_ph: Optional[float] = None
longueur_m: Optional[float] = None
largeur_m: Optional[float] = None
surface_m2: Optional[float] = None
carre_potager: bool = False
carre_x_cm: Optional[int] = None
carre_y_cm: Optional[int] = None
photo_parcelle: Optional[str] = None
ensoleillement: Optional[str] = None
grille_largeur: int = 6
grille_hauteur: int = 4

View File

@@ -5,7 +5,7 @@ from sqlmodel import Field, SQLModel
class Media(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
entity_type: str # jardin|plante|outil|plantation
entity_type: str # jardin|plante|adventice|outil|plantation|bibliotheque
entity_id: int
url: str
thumbnail_url: Optional[str] = None

View File

@@ -9,6 +9,8 @@ class MeteoStation(SQLModel, table=True):
date_heure: str = Field(primary_key=True) # "2026-02-22T14:00"
type: str = "current" # "current" | "veille"
temp_ext: Optional[float] = None # °C extérieur
t_min: Optional[float] = None # résumé journée (NOAA)
t_max: Optional[float] = None # résumé journée (NOAA)
temp_int: Optional[float] = None # °C intérieur (serre)
humidite: Optional[float] = None # %
pression: Optional[float] = None # hPa

View File

@@ -12,6 +12,10 @@ class PlantingCreate(SQLModel):
date_repiquage: Optional[date] = None
quantite: int = 1
statut: str = "prevu"
boutique_nom: Optional[str] = None
boutique_url: Optional[str] = None
tarif_achat: Optional[float] = None
date_achat: Optional[date] = None
date_recolte_debut: Optional[date] = None
date_recolte_fin: Optional[date] = None
rendement_estime: Optional[float] = None
@@ -29,6 +33,10 @@ class Planting(SQLModel, table=True):
date_repiquage: Optional[date] = None
quantite: int = 1
statut: str = "prevu" # prevu | en_cours | termine | echoue
boutique_nom: Optional[str] = None
boutique_url: Optional[str] = None
tarif_achat: Optional[float] = None
date_achat: Optional[date] = None
date_recolte_debut: Optional[date] = None
date_recolte_fin: Optional[date] = None
rendement_estime: Optional[float] = None

View File

@@ -9,4 +9,9 @@ class Tool(SQLModel, table=True):
description: Optional[str] = None
categorie: Optional[str] = None # beche|fourche|griffe|arrosage|taille|autre
photo_url: Optional[str] = None
video_url: Optional[str] = None
notice_fichier_url: Optional[str] = None
boutique_nom: Optional[str] = None
boutique_url: Optional[str] = None
prix_achat: Optional[float] = None
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))