from rest_framework import serializers
from .models import Conversacion, Mensaje
from Models.Usuario import Usuario

class UsuarioSerializer(serializers.ModelSerializer):
    class Meta:
        model = Usuario
        fields = ['id', 'nombre', 'email']

class MensajeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Mensaje
        fields = ['id', 'sender_type', 'content', 'media_url', 'message_type', 'timestamp', 'whatsapp_id']

class ConversacionSerializer(serializers.ModelSerializer):
    usuario = UsuarioSerializer(read_only=True)
    last_message = serializers.SerializerMethodField()

    class Meta:
        model = Conversacion
        fields = ['id', 'cliente_phone', 'cliente_id', 'usuario', 'fecha_inicio', 'estado', 'ultima_actividad', 'last_message']

    def get_last_message(self, obj):
        last_msg = obj.mensajes.order_by('-timestamp').first()
        if last_msg:
            return MensajeSerializer(last_msg).data
        return None
