<?php
// config.php - CON CODIFICACIÓN CORREGIDA Y NOMBRE PASAJERO
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

// Configuración de la base de datos
define('DB_HOST', 'localhost');
define('DB_USER', 'cma112915_hotel');
define('DB_PASS', 'HotelCasablancaChile');
define('DB_NAME', 'cma112915_desayuno');

// Número de WhatsApp
define('WHATSAPP_NUMBER', '56945759032');

// Capacidad máxima por horario
define('CAPACIDAD_MAXIMA', 15);

// Fecha actual
define('FECHA_ACTUAL', date('Y-m-d'));

// URL base de la aplicación
define('BASE_URL', 'https://masapp.cl/hotel/desayuno/');

// Estados posibles de cocina
define('ESTADOS_COCINA', [
    'nuevo' => '🆕 Nuevo',
    'preparacion' => '👨‍🍳 En preparación',
    'listo' => '✅ Listo para servir',
    'completado' => '✔️ Entregado'
]);

// Conexión a la base de datos
function getDB() {
    try {
        $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
        if ($conn->connect_error) {
            error_log("Error de conexión: " . $conn->connect_error);
            return null;
        }
        $conn->set_charset("utf8mb4");
        return $conn;
    } catch (Exception $e) {
        error_log("Excepción en conexión: " . $e->getMessage());
        return null;
    }
}

// Función para verificar y crear tablas si no existen
function verificarTablas() {
    $conn = getDB();
    if (!$conn) return false;
    
    // Crear tabla de pedidos si no existe (AHORA INCLUYE nombre_pasajero)
    $sql = "CREATE TABLE IF NOT EXISTS pedidos (
        id INT AUTO_INCREMENT PRIMARY KEY,
        habitacion INT NOT NULL,
        nombre_pasajero VARCHAR(100) DEFAULT '',
        horario VARCHAR(20) NOT NULL,
        desayunos JSON NOT NULL,
        variaciones JSON NOT NULL,
        nota TEXT,
        total_pasajeros INT NOT NULL,
        idioma VARCHAR(2) DEFAULT 'es',
        fecha_pedido TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        fecha_desayuno DATE NOT NULL,
        INDEX idx_horario (horario),
        INDEX idx_fecha (fecha_desayuno),
        INDEX idx_habitacion (habitacion)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
    $conn->query($sql);
    
    // Verificar si la columna nombre_pasajero existe (por si ya existe la tabla sin ella)
    $result = $conn->query("SHOW COLUMNS FROM pedidos LIKE 'nombre_pasajero'");
    if ($result && $result->num_rows == 0) {
        $conn->query("ALTER TABLE pedidos ADD COLUMN nombre_pasajero VARCHAR(100) DEFAULT '' AFTER habitacion");
    }
    
    // Verificar si la columna estado_cocina existe
    $result = $conn->query("SHOW COLUMNS FROM pedidos LIKE 'estado_cocina'");
    if ($result && $result->num_rows == 0) {
        $conn->query("ALTER TABLE pedidos ADD COLUMN estado_cocina VARCHAR(20) DEFAULT 'nuevo' AFTER idioma");
        $conn->query("ALTER TABLE pedidos ADD INDEX idx_estado (estado_cocina)");
    }
    
    // Verificar si la columna fecha_estado existe
    $result = $conn->query("SHOW COLUMNS FROM pedidos LIKE 'fecha_estado'");
    if ($result && $result->num_rows == 0) {
        $conn->query("ALTER TABLE pedidos ADD COLUMN fecha_estado TIMESTAMP NULL DEFAULT NULL AFTER estado_cocina");
    }
    
    // Crear tabla de disponibilidad si no existe
    $sql = "CREATE TABLE IF NOT EXISTS disponibilidad (
        id INT AUTO_INCREMENT PRIMARY KEY,
        fecha DATE NOT NULL,
        horario VARCHAR(20) NOT NULL,
        reservados INT DEFAULT 0,
        max_capacidad INT DEFAULT 15,
        UNIQUE KEY unique_fecha_horario (fecha, horario)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
    $conn->query($sql);
    
    // Insertar disponibilidad para hoy si no existe
    $horarios = [
        '8:00 – 8:30',
        '8:30 – 9:00', 
        '9:00 – 9:30',
        '9:30 – 10:00',
        '10:00 – 10:30'
    ];
    
    $fecha = FECHA_ACTUAL;
    foreach ($horarios as $horario) {
        $stmt = $conn->prepare("INSERT IGNORE INTO disponibilidad (fecha, horario, reservados, max_capacidad) VALUES (?, ?, 0, ?)");
        if ($stmt) {
            $max = CAPACIDAD_MAXIMA;
            $stmt->bind_param("ssi", $fecha, $horario, $max);
            $stmt->execute();
            $stmt->close();
        }
    }
    
    $conn->close();
    return true;
}

// Verificar tablas al iniciar
verificarTablas();
?>