"""
Management command to seed initial irrigation methods.
Run: python manage.py seed_irrigation_methods
"""

from django.core.management.base import BaseCommand

from irrigation.models import IrrigationMethod


INITIAL_METHODS = [
    {
        "name": "آبیاری قطره‌ای",
        "category": "موضعی",
        "description": "آب با دبی کم و به‌صورت قطره‌ای مستقیماً به ریشه گیاه رسانده می‌شود. مناسب‌ترین روش برای مناطق خشک و کم‌آب.",
        "water_efficiency_percent": 90.0,
        "water_pressure_required": "۱-۲ اتمسفر",
        "flow_rate": "۲-۸ لیتر در ساعت",
        "coverage_area": "بسته به طراحی سیستم",
        "soil_type": "تمام انواع خاک",
        "climate_suitability": "گرم و خشک",
    },
    {
        "name": "آبیاری بارانی",
        "category": "تحت فشار",
        "description": "آب تحت فشار از طریق آبپاش‌ها به‌صورت قطرات ریز مانند باران پخش می‌شود.",
        "water_efficiency_percent": 75.0,
        "water_pressure_required": "۲-۴ اتمسفر",
        "flow_rate": "۵-۲۰ لیتر در دقیقه",
        "coverage_area": "۱۰-۳۰ متر شعاع پاشش",
        "soil_type": "لومی، لومی شنی",
        "climate_suitability": "معتدل، مرطوب",
    },
    {
        "name": "آبیاری سطحی (غرقابی)",
        "category": "سطحی",
        "description": "آب در سطح زمین جاری شده و به‌صورت ثقلی زمین را آبیاری می‌کند. ساده‌ترین و قدیمی‌ترین روش.",
        "water_efficiency_percent": 50.0,
        "water_pressure_required": "نیاز به فشار ندارد (ثقلی)",
        "flow_rate": "متغیر بر اساس شیب زمین",
        "coverage_area": "وابسته به اندازه کرت",
        "soil_type": "رسی، لومی رسی",
        "climate_suitability": "تمام اقلیم‌ها (مناطق پرآب)",
    },
    {
        "name": "آبیاری نشتی (تیپ)",
        "category": "موضعی",
        "description": "آب از طریق نوارهای تیپ با منافذ ریز به‌صورت نشتی به خاک رسانده می‌شود.",
        "water_efficiency_percent": 85.0,
        "water_pressure_required": "۰.۵-۱.۵ اتمسفر",
        "flow_rate": "۱-۴ لیتر در ساعت به ازای هر متر",
        "coverage_area": "ردیفی، مناسب زراعت",
        "soil_type": "لومی، لومی شنی",
        "climate_suitability": "گرم و خشک",
    },
    {
        "name": "آبیاری زیرسطحی",
        "category": "موضعی",
        "description": "لوله‌های آبیاری در زیر سطح خاک کار گذاشته شده و آب مستقیماً به منطقه ریشه می‌رسد.",
        "water_efficiency_percent": 95.0,
        "water_pressure_required": "۱-۲ اتمسفر",
        "flow_rate": "۱-۴ لیتر در ساعت",
        "coverage_area": "بسته به طراحی",
        "soil_type": "لومی، لومی رسی",
        "climate_suitability": "تمام اقلیم‌ها",
    },
    {
        "name": "آبیاری بابلر",
        "category": "موضعی",
        "description": "آب با دبی بیشتر از قطره‌ای ولی کمتر از بارانی، به‌صورت حبابی در پای درخت پخش می‌شود. مناسب درختان میوه.",
        "water_efficiency_percent": 80.0,
        "water_pressure_required": "۱-۲ اتمسفر",
        "flow_rate": "۸-۶۰ لیتر در ساعت",
        "coverage_area": "شعاع ۱-۲ متر اطراف درخت",
        "soil_type": "لومی، لومی رسی",
        "climate_suitability": "گرم و خشک",
    },
]


class Command(BaseCommand):
    help = "Seed initial irrigation methods (6 common methods)"

    def handle(self, *args, **options):
        created_count = 0
        for method_data in INITIAL_METHODS:
            _, created = IrrigationMethod.objects.get_or_create(
                name=method_data["name"],
                defaults=method_data,
            )
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(f"  Created: {method_data['name']}")
                )
        self.stdout.write(
            self.style.SUCCESS(
                f"\nDone. Created {created_count} new irrigation methods."
            )
        )
