<?php
// config_openai.php
// Pone acá tu API key real
define('OPENAI_API_KEY', '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');

// Modelo a usar
define('OPENAI_MODEL', 'gpt-3.5-turbo');

// Función helper para llamar a la API de Chat Completions
function openai_clasificar_estado($mensaje_prev) {
    $url = "https://api.openai.com/v1/chat/completions";

    $systemPrompt = <<<TXT
Eres un asistente experto en ventas por WhatsApp.
Tu tarea es CLASIFICAR el estado de un lead en base a un breve fragmento de chat llamado `mensaje_prev`.
Solo puedes responder con UNA de estas tres palabras, en minúsculas:
- "cerrado"
- "ignorado"
- "pendiente"

Definiciones:
- "cerrado": cuando la conversación parece terminada, el contenido suena a despedida, agradecimiento final, negativa o ya no requiere seguimiento.
- "ignorado": cuando el último mensaje parece enviado por el vendedor (por ejemplo mensajes que empiezan con "Buenas, te saluda...", "Que emprendimiento tenes?", "Te dejo una carpeta de drive...", "Te explico cómo funciona...", etc.) y no se ve respuesta del cliente.
- "pendiente": cuando el último mensaje parece enviado por el cliente (por ejemplo: responde cómo se llama su negocio, dice que le interesa, envía datos, hace una pregunta o deja algo abierto para seguir hablando) y no se ve respuesta del vendedor.

IMPORTANTE:
- No expliques nada.
- No agregues texto adicional.
- Devuelve SOLO una palabra: "cerrado", "ignorado" o "pendiente".
TXT;

    $userPrompt = "Clasifica el siguiente mensaje:\nmensaje_prev: \"".$mensaje_prev."\"";

    $postData = [
        "model" => OPENAI_MODEL,
        "messages" => [
            ["role" => "system", "content" => $systemPrompt],
            ["role" => "user",   "content" => $userPrompt],
        ],
        "temperature" => 0.0,
        "max_tokens"  => 5,
    ];

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_HTTPHEADER     => [
            "Content-Type: application/json",
            "Authorization: Bearer " . OPENAI_API_KEY
        ],
        CURLOPT_POSTFIELDS     => json_encode($postData),
        CURLOPT_TIMEOUT        => 30,
    ]);

    $response = curl_exec($ch);
    if ($response === false) {
        $error = curl_error($ch);
        curl_close($ch);
        throw new Exception("Error cURL al llamar OpenAI: " . $error);
    }
    curl_close($ch);

    $data = json_decode($response, true);

    if (!isset($data['choices'][0]['message']['content'])) {
        // Debug simple
        throw new Exception("Respuesta inesperada de OpenAI: " . $response);
    }

    $raw = trim($data['choices'][0]['message']['content']);

    // Normalizamos un poco por las dudas
    $raw = strtolower($raw);
    $raw = preg_replace('/[^a-záéíóúñ]/u', '', $raw); // dejamos letras

    // Aseguramos que sea una de las 3 palabras
    if (!in_array($raw, ['cerrado', 'ignorado', 'pendiente'])) {
        // Si devuelve cualquier cosa rara, por defecto lo marcamos como "pendiente"
        $raw = 'pendiente';
    }

    return $raw;
}
