Files
2026-05-11 03:27:21 +03:30

101 lines
4.6 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
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."
)
)