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
