from rest_framework import serializers class PestDiseaseDetectionRequestSerializer(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="نام گیاه") query = serializers.CharField(required=False, allow_blank=True, help_text="توضیح اختیاری") image_urls = serializers.JSONField(required=False, help_text="آرایه URL تصاویر") 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 PestDiseaseRiskRequestSerializer(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 PestDiseaseRiskSummaryRequestSerializer(serializers.Serializer): farm_uuid = serializers.CharField(required=False, help_text="شناسه یکتای مزرعه") sensor_uuid = serializers.CharField(required=False, help_text="نام قدیمی برای farm_uuid") 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 PestDiseaseRiskSummaryResponseSerializer(serializers.Serializer): farm_uuid = serializers.CharField() diseaseRisk = serializers.JSONField() pestRisk = serializers.JSONField() drivers = serializers.JSONField()