from rest_framework import serializers
from .models import Denuncia

class DenunciaSerializer(serializers.ModelSerializer):
    usuario = serializers.HiddenField(default=serializers.CurrentUserDefault())

    class Meta:
        model = Denuncia
        fields = '__all__'

        read_only_fields = ['id', 'data_criacao']
    
    def validate(self, attrs):
        artigo = attrs.get('artigo')
        comentario = attrs.get('comentario')

        # Denunciar exatamente um alvo
        if not artigo and not comentario:
            raise serializers.ValidationError('Você deve denunciar um artigo ou um comentário')
        
        if artigo and comentario:
            raise serializers.ValidationError('Você não pode denunciar um artigo e um comentário ao mesmo tempo')
        
        return attrs
