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