Files
jardin/backend/app/models/planting.py
2026-02-22 18:34:50 +01:00

55 lines
2.1 KiB
Python

from datetime import date, datetime, timezone
from typing import Optional
from sqlmodel import Field, SQLModel
class PlantingCreate(SQLModel):
garden_id: int
variety_id: int
cell_id: Optional[int] = None
date_semis: Optional[date] = None
date_plantation: Optional[date] = None
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
rendement_reel: Optional[float] = None
notes: Optional[str] = None
class Planting(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
garden_id: int = Field(foreign_key="garden.id", index=True)
variety_id: int = Field(foreign_key="plant.id", index=True)
cell_id: Optional[int] = Field(default=None, foreign_key="gardencell.id")
date_semis: Optional[date] = None
date_plantation: Optional[date] = None
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
rendement_reel: Optional[float] = None
notes: Optional[str] = None
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
class PlantingEvent(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
planting_id: int = Field(foreign_key="planting.id", index=True)
type: str # arrosage | taille | traitement | observation | autre
note: Optional[str] = None
ts: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))