Files
Ai/fertilization/serializers.py
T

29 lines
1.6 KiB
Python
Raw Normal View History

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="توضیح دقیق دلیل انتخاب برنامه کودهی")