"""Seed sample care schedules for the two existing activations."""
import sys, os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from datetime import date, timedelta
from app.database import SessionLocal
from app.models.plant_lifecycle import PlantCareSchedule
from app.models.plant_activation import PlantActivation

db = SessionLocal()


activations = db.query(PlantActivation.id).all()

if not activations:
    print("No activations found.")
    sys.exit(1)

schedules = [
    {"care_type": "watering", "frequency_days": 2, "notes": "Water deeply at base", "offset_days": -1},
    {"care_type": "fertilizing", "frequency_days": 14, "notes": "Apply balanced NPK fertilizer", "offset_days": -5},
    {"care_type": "pruning", "frequency_days": 21, "notes": "Remove dead leaves and suckers", "offset_days": -10},
    {"care_type": "spraying", "frequency_days": 7, "notes": "Neem oil spray for pest prevention", "offset_days": -3},
    {"care_type": "inspection", "frequency_days": 3, "notes": "Check for pests, disease, and growth progress", "offset_days": -1},
]

count = 0
today = date.today()
for act in activations:
    act_id = act[0] if isinstance(act, tuple) else act.id
    for s in schedules:
        next_due = today + timedelta(days=min(s["offset_days"], 0))
        if next_due < today:
            next_due = today

        schedule = PlantCareSchedule(
            activation_id=act_id,
            care_type=s["care_type"],
            frequency_days=s["frequency_days"],
            notes=s["notes"],
            is_active=True,
            next_due_date=next_due,
            last_completed=today + timedelta(days=s["offset_days"]) if s["offset_days"] < 0 else None,
        )
        db.add(schedule)
        count += 1

db.commit()
print(f"Created {count} care schedules for {len(activations)} activations.")
db.close()
