from rest_framework import serializers
from Models.origen import Origen

class OrigenSerializer(serializers.ModelSerializer):
    class Meta:
        model = Origen
        fields = '__all__'  # Todos los campos del modelo

class CreateOrigenSerializer(serializers.ModelSerializer):
    nombre = serializers.CharField(
        required=True, 
        help_text="Nombre del origen"
    )
    id_usuario = serializers.IntegerField(
        required=True, 
        help_text="ID del usuario que crea el origen"
    )
    
    class Meta:
        model = Origen
        fields = [
            'nombre',
            'id_usuario',
        ]
        

class EditOrigenSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField(
        required=True, 
        help_text="ID del origen a editar"
    )
    nombre = serializers.CharField(
        required=False, 
        help_text="Nombre del origen"
    )
    
    class Meta:
        model = Origen
        fields = [
            'id',
            'nombre',
        ]
    
    def validate_id(self, value):
        try:
            origen = Origen.objects.get(id=value, deleted_at__isnull=True)
            return value
        except Origen.DoesNotExist:
            raise serializers.ValidationError(f"El origen con ID {value} no existe o ya fue eliminado")
            
class DeleteOrigenSerializer(serializers.Serializer):
    id = serializers.IntegerField(
        required=True, 
        help_text="ID del origen a eliminar"
    )
