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()