2026-03-21 23:50:36 +03:30
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FertilizationRecommendRequestSerializer(serializers.Serializer):
|
|
|
|
|
"""سریالایزر ورودی برای درخواست توصیه کودهی."""
|
|
|
|
|
|
2026-04-24 22:20:15 +03:30
|
|
|
farm_uuid = serializers.CharField(required=False, help_text="شناسه یکتای مزرعه (اجباری)")
|
|
|
|
|
sensor_uuid = serializers.CharField(required=False, help_text="نام قدیمی برای farm_uuid")
|
2026-03-21 23:50:36 +03:30
|
|
|
plant_name = serializers.CharField(required=False, allow_blank=True, help_text="نام گیاه")
|
|
|
|
|
growth_stage = serializers.CharField(required=False, allow_blank=True, help_text="مرحله رشد گیاه")
|
|
|
|
|
query = serializers.CharField(required=False, allow_blank=True, help_text="سوال اختیاری")
|
|
|
|
|
|
2026-04-24 22:20:15 +03:30
|
|
|
def validate(self, attrs):
|
|
|
|
|
farm_uuid = attrs.get("farm_uuid") or attrs.get("sensor_uuid")
|
|
|
|
|
if not farm_uuid:
|
|
|
|
|
raise serializers.ValidationError({"farm_uuid": "farm_uuid الزامی است."})
|
|
|
|
|
attrs["farm_uuid"] = farm_uuid
|
|
|
|
|
return attrs
|
|
|
|
|
|
2026-03-21 23:50:36 +03:30
|
|
|
|
|
|
|
|
class FertilizationPlanSerializer(serializers.Serializer):
|
|
|
|
|
"""سریالایزر خروجی برای پلن توصیه کودهی."""
|
|
|
|
|
|
|
|
|
|
npkRatio = serializers.CharField(help_text="نسبت NPK مثل 20-20-20 (NPK)")
|
|
|
|
|
amountPerHectare = serializers.CharField(help_text="مقدار مصرف در هکتار مثل 150 kg/ha")
|
|
|
|
|
applicationMethod = serializers.CharField(help_text="روش مصرف کود")
|
|
|
|
|
applicationInterval = serializers.CharField(help_text="فاصله زمانی مصرف")
|
|
|
|
|
reasoning = serializers.CharField(help_text="توضیح دقیق دلیل انتخاب برنامه کودهی")
|