from rest_framework import serializers
from Models.contacto_model import Contacto
from Models.Empresa import Empresa
from datetime import datetime
class ContactoSerializer(serializers.ModelSerializer):
    empresa = serializers.PrimaryKeyRelatedField(queryset=Empresa.objects.all(), required=False)
    fecha_creacion = serializers.DateTimeField(default=datetime.now)
    empresa_id = serializers.SerializerMethodField()
    empresa_nombre = serializers.ReadOnlyField(source='empresa.nombre')
    nombre_comercial = serializers.ReadOnlyField(source='empresa.nombre_comercial')

    class Meta:
        model = Contacto
        fields = ['id', 'nombre', 'email', 'telefono', 'cargo', 'empresa', 'empresa_id', 'empresa_nombre', 'nombre_comercial', 'fecha_creacion', 'deleted_at']

    def get_empresa_id(self, obj):
        empresa = getattr(obj, 'empresa', None)
        if empresa:
            return getattr(empresa, 'id', None)
        return getattr(obj, 'empresa_id', None)


class ContactoUpdateSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField()
    empresa_id = serializers.IntegerField(required=False, allow_null=True)
    empresa_nombre = serializers.ReadOnlyField(source='empresa.nombre')

    class Meta:
        model = Contacto
        fields = ['id', 'nombre', 'email', 'telefono', 'cargo', 'empresa', 'empresa_id', 'empresa_nombre', 'fecha_creacion', 'deleted_at']


class ContactoDeleteSerializer(serializers.Serializer):
    id = serializers.IntegerField()

