Files
Ai/fertilization/serializers.py
T
2026-04-24 22:20:15 +03:30

29 lines
1.6 KiB
Python

from rest_framework import serializers
class FertilizationRecommendRequestSerializer(serializers.Serializer):
"""سریالایزر ورودی برای درخواست توصیه کودهی."""
farm_uuid = serializers.CharField(required=False, help_text="شناسه یکتای مزرعه (اجباری)")
sensor_uuid = serializers.CharField(required=False, help_text="نام قدیمی برای farm_uuid")
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="سوال اختیاری")
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
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="توضیح دقیق دلیل انتخاب برنامه کودهی")