from rest_framework import serializers class TranscriptionRequestSerializer(serializers.Serializer): url = serializers.URLField(required=False, allow_null=True) media = serializers.FileField(required=False, allow_null=True) def validate(self, attrs): url = attrs.get('url') media = attrs.get('media') if not url and not media: raise serializers.ValidationError("Either 'url' or 'media' must be provided.") return attrs def validate_media(self, file): if file is None: return file allowed_types = ['audio/', 'video/'] content_type = getattr(file, 'content_type', '') if not any(content_type.startswith(t) for t in allowed_types): raise serializers.ValidationError("Only audio or video files are allowed.") return file class ClassificationRequestSerializer(serializers.Serializer): claim = serializers.CharField()