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