<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Forzamos que si hay cualquier mínimo detalle, lo podamos ver
error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: application/json; charset=utf-8');

// Incluimos tu conexión centralizada a la base de datos
require_once 'db.php';

$respuesta = "";
$accion = "ninguna";

if (isset($_POST['mensaje'])) {
    $mensaje_usuario = trim($_POST['mensaje']);
    $mensaje_usuario = mb_strtolower($mensaje_usuario, 'UTF-8');

    $query = "SELECT respuesta, keywords FROM bot_preguntas";
    $result = $conexion->query($query);
    
    $encontrado = false;

    if ($result && $result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $keywords = explode(',', $row['keywords']);
            
            foreach ($keywords as $keyword) {
                $keyword_limpia = trim(mb_strtolower($keyword, 'UTF-8'));
                
                if (!empty($keyword_limpia) && strpos($mensaje_usuario, $keyword_limpia) !== false) {
                    $respuesta = $row['respuesta'];
                    $encontrado = true;
                    
                    if (in_array($keyword_limpia, ['ubicacion', 'ubicación', 'direccion', 'dirección', 'donde', 'dónde'])) {
                        $accion = "abrir_mapa";
                    } elseif (in_array($keyword_limpia, ['horario', 'horarios'])) {
                        $accion = "abrir_horarios";
                    } elseif (in_array($keyword_limpia, ['novedad', 'novedades'])) {
                        $accion = "abrir_novedades";
                    } elseif (in_array($keyword_limpia, ['telefono', 'teléfono', 'llamar', 'numero', 'número'])) {
                        $accion = "mostrar_telefonos";
                    } elseif ($keyword_limpia === 'contacto') {
                        $accion = "mostrar_contacto";
                    } elseif (in_array($keyword_limpia, ['redes', 'instagram'])) {
                        $accion = "mostrar_redes";
                    } elseif (in_array($keyword_limpia, ['pago', 'pagos', 'transferencia', 'efectivo'])) {
                        $accion = "mostrar_pagos";
                    } elseif (in_array($keyword_limpia, ['promo', 'promos', 'promocion', 'promoción', 'promociones', 'oferta', 'ofertas', 'menu', 'menú'])) {
                        // ▼ Promos: consulta dinámica a la BD (últimas 24hs)
                        $accion = "ninguna";
                        $res_promos = $conexion->query(
                            "SELECT mensaje FROM promociones 
                             WHERE fecha_publicacion >= NOW() - INTERVAL 24 HOUR 
                             ORDER BY fecha_publicacion DESC 
                             LIMIT 5"
                        );
                        if ($res_promos && $res_promos->num_rows > 0) {
                            $lista = [];
                            while ($p = $res_promos->fetch_assoc()) {
                                $lista[] = "• " . $p['mensaje'];
                            }
                            $respuesta = "📢 <b>¡Promociones vigentes!</b><br>" . implode("<br>", $lista);
                        } else {
                            $respuesta = "Por el momento no hay promociones activas. ¡Volvé a consultar más tarde! 😊";
                        }
                    }

                    break 2;
                }
            }
        }
    }

    // 2. Si no se encontró coincidencia, armamos la respuesta dinámica desde la BD
    if (!$encontrado) {
        // Texto base limpio directamente definido sin necesidad de consultar otra tabla
        $texto_base = "No entendí tu consulta. Podés preguntarme sobre:";

        // ▼ CONSULTA DINÁMICA: Traemos todas las categorías cargadas que no estén vacías
        $res_cats = $conexion->query("SELECT DISTINCT categoria FROM bot_preguntas WHERE categoria IS NOT NULL AND categoria != '' ORDER BY categoria ASC");
        
        if ($res_cats && $res_cats->num_rows > 0) {
            $cats_lista = [];
            while ($c = $res_cats->fetch_assoc()) {
                // Las agregamos formateadas limpiamente con un puntito estético
                $cats_lista[] = "• " . htmlspecialchars($c['categoria']);
            }
            // Unimos todo el array con saltos de línea <br>
            $respuesta = $texto_base . "<br>" . implode("<br>", $cats_lista);
        } else {
            // Fallback secundario estático por si la tabla llegara a estar completamente vacía
            $respuesta = $texto_base . "<br>• promo<br>• horarios<br>• nosotros<br>• ubicación";
        }

        $accion = "forzar_cierre";
    }
} else {
    $respuesta = "Error: No se recibió ninguna consulta.";
}

// Devolvemos el JSON estructurado
echo json_encode([
    'respuesta' => $respuesta,
    'accion' => $accion
]);