<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ==== CORS / HEADERS ====
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    header("HTTP/1.1 200 OK");
    exit;
}

header('Content-Type: application/json');
ob_start(); // limpia cualquier salida previa oculta

// ==== PARSEO DE RUTA Y QUERY ====
$request_uri = $_SERVER['REQUEST_URI'];
$script_name = $_SERVER['SCRIPT_NAME'];
$path = str_replace($script_name, '', $request_uri);
$segments = explode('/', trim($path, '/'));

// Esperamos /ApiInfo.php/prompt/{prompt}
if (count($segments) < 2 || $segments[0] !== 'prompt') {
    echo json_encode(["error" => "Formato de URL incorrecto. Usa: /ApiInfo.php/prompt/{tu_prompt}"]);
    exit;
}

// Prompt original
$original_prompt = urldecode($segments[1]);

// telefono y slug_tienda por QUERY STRING preferentemente
$telefono_qs = isset($_GET['telefono']) ? $_GET['telefono'] : '';
$slug_qs     = isset($_GET['slug_tienda']) ? $_GET['slug_tienda'] : '';

// fallback a segmento 2 como telefono si no vino por query
$telefono_seg = isset($segments[2]) ? $segments[2] : '';

// sanitizar
$telefono = preg_replace('/\D/', '', ($telefono_qs !== '' ? $telefono_qs : $telefono_seg));
if ($telefono === '') $telefono = 'generico'; // fallback

$slug_tienda = preg_replace('/[^a-zA-Z0-9_\-]/', '', $slug_qs);
if ($slug_tienda === '') $slug_tienda = 'default';

// ==== PROMPT FINAL ====
$instruccion_asistente = "Eres un Asesor Virtual de Compras con tono enérgico, amigable y cercano.
 Tu misión es dar la bienvenida al cliente, mostrar la esencia de la tienda , la escencia solo se mostrara una sola vez, no es necesario mostrarlo en todos los mensajes, al igual que la informacion de contacto
  guiarlo en la elección de productos. 
 Usa siempre mensajes cortos, claros y con emojis que hagan la experiencia más visual (ej: 💎, 📍, 💌, 📱, 🛍️, ✨).
 Presenta la información de forma ordenada en un solo bloque: nombre de la tienda productos destacados (máx. tres). Escribe los números en formato numero y cierra siempre con una invitación cálida a interactuar.";
$prompt = $original_prompt . " " . $instruccion_asistente;
file_put_contents('debug_prompt_TIENDA.log', "Prompt final: " . $prompt . "\n", FILE_APPEND);

// ==== CONEXIÓN A BD ====
$servername = "server40.vps.webdock.cloud";
$username   = "thank";
$password   = "1541100Luis";
$dbname     = "shop_than";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    ob_clean();
    echo json_encode(["error" => "Conexión fallida: " . $conn->connect_error]);
    exit;
}

// ==== SQL (usa slug_tienda dinámico) ====
$sql = "
SELECT
  CONCAT_WS(CHAR(10),
    CONCAT('nombre_tienda:', us.nombre_tienda),
    CONCAT('titulo:',        COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.esencia,'$.titulo')),'')),
    CONCAT('subtitulo:',     COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.esencia,'$.subtitulo')),'')),
    CONCAT('texto:',         COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.esencia,'$.texto')),'')),
    CONCAT('footer_texto:',  COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.footer,'$.texto')),'')),
    CONCAT('correo:',        COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.footer,'$.email')),'')),
    CONCAT('whatsapp:',      COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.footer,'$.whatsapp')),'')),
    CONCAT('direccion:',     COALESCE(JSON_UNQUOTE(JSON_EXTRACT(us.footer,'$.direccion')),'')),
    CONCAT('inventario:', CHAR(10),
      '[',
        GROUP_CONCAT(
          CONCAT(
            '{',
              '\"titulo\":\"', COALESCE(art.titulo,''), '\",',
              '\"stock\":\"',  COALESCE(art.stock,''), '\",',
              '\"precio\":\"', COALESCE(JSON_UNQUOTE(JSON_EXTRACT(art.pesos,'$[0].precio')),''), '\"',
            '}'
          )
          SEPARATOR ','
        ),
      ']'
    )
  ) AS INFORMACION_EMPRESA
FROM usuarios_tienda us
JOIN articulos art ON us.slug_tienda = art.slug_tienda
WHERE us.slug_tienda = ?
GROUP BY us.nombre_tienda, us.esencia, us.footer
";

$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $slug_tienda);
$stmt->execute();
$res = $stmt->get_result();

$data = [];
if ($res && $res->num_rows > 0) {
    while ($row = $res->fetch_assoc()) $data[] = $row;
} else {
    $conn->close();
    ob_clean();
    echo json_encode(["error" => "0 resultados para slug_tienda={$slug_tienda}"]);
    exit;
}
$conn->close();

// ==== ENVIAR A ProcesarInfo.php ====
$payload = json_encode([
    "data"        => $data,
    "prompt"      => $prompt,
    "telefono"    => $telefono,
    "slug_tienda" => $slug_tienda
], JSON_UNESCAPED_UNICODE);

file_put_contents('debug_consultaTIENDA.log', $payload . "\n", FILE_APPEND);

if (json_last_error() !== JSON_ERROR_NONE) {
    ob_clean();
    echo json_encode(["error" => "Error al codificar los datos a JSON: " . json_last_error_msg()]);
    exit;
}


$ch = curl_init("https://server40.vps.webdock.cloud/api_shop/ProcesarInfo.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($ch);
file_put_contents('debug_response.log', $response . "\n", FILE_APPEND);

if (curl_errno($ch)) {
    ob_clean();
    echo json_encode(["error" => "Error al enviar datos: " . curl_error($ch)]);
    curl_close($ch);
    exit;
}
curl_close($ch);

// ==== RESPUESTA ====
ob_clean();
echo $response;
exit;
