<?php
require 'db.php';

// Asegúrate de que la conexión a la base de datos use UTF-8
if (isset($conn)) {
    mysqli_set_charset($conn, "utf8mb4");
}

$consulta_hotel = mysqli_query($conn, "SELECT * FROM reservas_empleados");

if (mysqli_num_rows($consulta_hotel) > 0) {
    while ($row = mysqli_fetch_assoc($consulta_hotel)) {
        // --- LIMPIEZA DE DATOS PARA JAVASCRIPT ---
        // Fechas: Si es '0000-00-00' o nula, convertir a cadena vacía para el input type="date"
        $fecha_entrada_js = ($row['fecha_entrada'] == '0000-00-00' || is_null($row['fecha_entrada'])) ? '' : $row['fecha_entrada'];
        $fecha_salida_js = ($row['fecha_salida'] == '0000-00-00' || is_null($row['fecha_salida'])) ? '' : $row['fecha_salida'];

        // Precio: Eliminar separadores de miles (si los hay) y asegurar punto decimal para JavaScript parseFloat
        // Si tu base de datos usa ',' como decimal, cámbiala a '.' antes de pasarla a JS
        $precio_limpio = str_replace(',', '.', str_replace('.', '', $row['precio']));
        // Asegurarse de que sea un número flotante para la validación JS
        $precio_js = (float)$precio_limpio; 

        // --- PREPARAR DATOS PARA PASAR A JAVASCRIPT DE FORMA SEGURA CON json_encode ---
        // json_encode es crucial para escapar comillas y otros caracteres especiales
        $nombre_js = json_encode($row['nombre']);
        $apellido_js = json_encode($row['apellido']);
        $telefono_js = json_encode($row['telefono']);
        $habitacion_js = json_encode($row['habitacion']);
        // Las fechas ya están limpias, solo las codificamos para seguridad
        $fecha_entrada_js_encoded = json_encode($fecha_entrada_js);
        $fecha_salida_js_encoded = json_encode($fecha_salida_js);
        // El precio ya está formateado como float, json_encode lo manejará bien
        $precio_js_encoded = json_encode($precio_js);

        // --- CONSTRUIR LA LLAMADA A LA FUNCIÓN JAVASCRIPT ---
        $js_function_call = "mostrarFormularioActualizar(" .
             "{$row['id']}, " . // ID como número, no necesita json_encode si es int
             "{$nombre_js}, " .
             "{$apellido_js}, " .
             "{$telefono_js}, " .
             "{$habitacion_js}, " .
             "{$fecha_entrada_js_encoded}, " .
             "{$fecha_salida_js_encoded}, " .
             "{$precio_js_encoded}" .
             ")";
        
        // --- ESCAPAR LA LLAMADA COMPLETA PARA EL ATRIBUTO HTML ONCLICK ---
        // Esto es CRUCIAL para evitar SyntaxError si los datos contienen comillas o otros caracteres especiales
        $escaped_js_function_call = htmlspecialchars($js_function_call, ENT_QUOTES, 'UTF-8');

        echo "<tr>";
        echo "<td>" . htmlspecialchars($row['id']) . "</td>"; // ID de la fila
        echo "<td>" . htmlspecialchars($row['nombre']) . "</td>";
        echo "<td>" . htmlspecialchars($row['apellido']) . "</td>";
        echo "<td>" . htmlspecialchars($row['telefono']) . "</td>";
        echo "<td>" . htmlspecialchars($row['habitacion']) . "</td>";
        echo "<td>" . htmlspecialchars($row['fecha_entrada']) . "</td>";
        echo "<td>" . htmlspecialchars($row['fecha_salida']) . "</td>";
        echo "<td>" . htmlspecialchars(number_format($row['precio'], 2, ',', '.')) . "</td>"; // Para mostrar en la tabla con formato local
        echo "<td>";
        echo "<button onclick='eliminarReservacion({$row['id']})'>Eliminar</button>";
        // Botón Actualizar: Usando la cadena JavaScript ya HTML-escapada
        echo "<button onclick=\"{$escaped_js_function_call}\">Actualizar</button>";
        echo "</td>";
        echo "</tr>";
    }
} else {
    echo "<tr><td colspan='9'>No hay reservaciones registradas.</td></tr>";
}
// Asegúrate de cerrar la conexión aquí o al final del script si db.php no lo hace automáticamente
if (isset($conn)) {
    $conn->close();
}
?>
