from rest_framework import serializers

from .models import Call


class CallSerializer(serializers.ModelSerializer):
    class Meta:
        model = Call
        fields = [
            "id",
            "provider",
            "direction",
            "bot",
            "custnumber",
            "exenumber",
            "gid",
            "provider_call_id",
            "status",
            "metadata",
            "last_error",
            "created_at",
            "updated_at",
        ]
        read_only_fields = [
            "id",
            "provider_call_id",
            "status",
            "metadata",
            "last_error",
            "created_at",
            "updated_at",
        ]


class CallCreateSerializer(serializers.Serializer):
    business_id = serializers.IntegerField(required=False, allow_null=True)
    bot_id = serializers.IntegerField(required=False, allow_null=True)
    custnumber = serializers.CharField()
    exenumber = serializers.CharField(required=False, allow_blank=True)
    gid = serializers.CharField(required=False, allow_blank=True)

    # Optional runtime overrides
    first_message = serializers.CharField(required=False, allow_blank=True)
    system_prompt = serializers.CharField(required=False, allow_blank=True)
    llm_model = serializers.CharField(required=False, allow_blank=True)
    stt_provider = serializers.CharField(required=False, allow_blank=True)
    tts_provider = serializers.CharField(required=False, allow_blank=True)
    tts_model = serializers.CharField(required=False, allow_blank=True)
    tts_voice_id = serializers.CharField(required=False, allow_blank=True)
    tts_encoding = serializers.CharField(required=False, allow_blank=True)

