from rest_framework import serializers
from apps.calls.models import TonyCall
import logging

from apps.companies.serializers import CompanyNamePhoneSerializer


logger = logging.getLogger(__name__)


class TonyCallListSerializer(serializers.ModelSerializer):
    company = CompanyNamePhoneSerializer(read_only=True)
    call_date_time = serializers.SerializerMethodField()

    def get_call_date_time(self, obj):
        return obj.call_date_time or obj.created_at

    class Meta:
        model = TonyCall
        fields = (
            "id",
            "call_id",
            "call_date_time",
            "called_number",
            "called_to",
            "intention",
            "status",
            "recording_url",
            "company",
            "rescheduled",
            "booking_datetime",
        )
        read_only_fields = fields

class TonyCallDetailSerializer(serializers.ModelSerializer):
    company = CompanyNamePhoneSerializer(read_only=True)

    class Meta:
        model = TonyCall
        fields = (
            "id",
            "company",
            "created_at",
            "end_reason",
            "call_id",
            "recording_url",
            "transcript",
            "call_date_time",
            "intention",
            "rescheduled",
            "booking_datetime",
            "status",
            "called_to",
            "called_number",
        )
