79 lines
2.8 KiB
Python
79 lines
2.8 KiB
Python
from datetime import date
|
|
from sqlmodel import Session, select
|
|
from app.database import engine
|
|
import app.models # noqa
|
|
|
|
|
|
def run_seed():
|
|
from app.models.garden import Garden, GardenCell, Measurement
|
|
from app.models.plant import PlantVariety
|
|
from app.models.planting import Planting, PlantingEvent
|
|
from app.models.task import Task
|
|
|
|
with Session(engine) as session:
|
|
if session.exec(select(Garden)).first():
|
|
return # déjà seedé
|
|
|
|
jardin = Garden(
|
|
nom="Mon potager",
|
|
description="Potager principal plein sud",
|
|
type="plein_air",
|
|
exposition="S",
|
|
ombre="plein_soleil",
|
|
sol_type="limoneux",
|
|
grille_largeur=6,
|
|
grille_hauteur=4,
|
|
)
|
|
session.add(jardin)
|
|
session.flush()
|
|
|
|
for row in range(4):
|
|
for col in range(6):
|
|
session.add(GardenCell(
|
|
garden_id=jardin.id,
|
|
col=col, row=row,
|
|
libelle=f"{chr(65 + row)}{col + 1}",
|
|
))
|
|
|
|
session.add(Measurement(garden_id=jardin.id, temp_air=18.0, humidite_air=65.0))
|
|
|
|
tomate = PlantVariety(
|
|
nom_commun="Tomate", variete="Andine Cornue",
|
|
famille="Solanacées", type_plante="legume",
|
|
besoin_eau="fort", espacement_cm=60,
|
|
plantation_mois="4,5", recolte_mois="7,8,9",
|
|
)
|
|
courgette = PlantVariety(
|
|
nom_commun="Courgette", variete="Verte",
|
|
famille="Cucurbitacées", type_plante="legume",
|
|
besoin_eau="moyen", espacement_cm=80,
|
|
plantation_mois="5,6", recolte_mois="7,8",
|
|
)
|
|
salade = PlantVariety(
|
|
nom_commun="Laitue", variete="Batavia",
|
|
famille="Astéracées", type_plante="legume",
|
|
besoin_eau="moyen", espacement_cm=25,
|
|
)
|
|
session.add_all([tomate, courgette, salade])
|
|
session.flush()
|
|
|
|
p1 = Planting(
|
|
garden_id=jardin.id, variety_id=tomate.id,
|
|
date_plantation=date(2026, 5, 1), quantite=6, statut="en_cours",
|
|
)
|
|
p2 = Planting(
|
|
garden_id=jardin.id, variety_id=courgette.id,
|
|
date_plantation=date(2026, 5, 15), quantite=3, statut="prevu",
|
|
)
|
|
session.add_all([p1, p2])
|
|
session.flush()
|
|
|
|
session.add(PlantingEvent(planting_id=p1.id, type="arrosage", note="Arrosage du matin"))
|
|
|
|
session.add(Task(titre="Arroser les tomates", priorite="haute",
|
|
statut="a_faire", garden_id=jardin.id))
|
|
session.add(Task(titre="Traiter contre les pucerons", priorite="normale", statut="a_faire"))
|
|
session.add(Task(titre="Préparer le compost", priorite="basse", statut="en_cours"))
|
|
|
|
session.commit()
|