<?php
/**
 * SAC 2025 - SAVE RESERVATION PRO
 * Asegura el vínculo con el usuario y la integridad del nombre del solicitante.
 */
require_once 'config.php';

if (!isset($_SESSION['user_id'])) {
    response(["error" => "No autorizado"], 401);
}

$data = json_decode(file_get_contents("php://input"), true);
$userId = $_SESSION['user_id'];
$userName = $_SESSION['user_name'];

if (!$data || !isset($data['facility']) || !isset($data['propertyId'])) {
    response(["error" => "Datos de reserva incompletos"], 400);
}

// Fallback crítico: Si el nombre llega vacío desde el frontend, usamos el de la sesión
$finalResidentName = !empty($data['residentName']) ? $data['residentName'] : $userName;

try {
    $stmt = $pdo->prepare("INSERT INTO reservations 
        (facility, property_id, user_id, resident_name, date, whatsapp, status) 
        VALUES (?, ?, ?, ?, ?, ?, ?)");
    
    $stmt->execute([
        $data['facility'],
        $data['propertyId'],
        $userId,
        $finalResidentName,
        $data['date'],
        $data['whatsapp'],
        $data['status'] ?? 'Pendiente'
    ]);

    logSystemAction("Solicitó reserva: " . $data['facility'] . " para fecha " . $data['date'], "RESERVAS");

    response(["success" => true]);

} catch (PDOException $e) {
    response(["error" => "Error al procesar reserva: " . $e->getMessage()], 500);
}
?>