<?php
// api/venta.php - API para procesar ventas
session_start();

require_once '../modelo/BaseDatos.php';
require_once '../modelo/Sala.php';
require_once '../modelo/Boleto.php';
require_once '../modelo/Venta.php';
require_once 'VendedorController.php';

header('Content-Type: application/json');

// Verificar método de solicitud
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'mensaje' => 'Método no permitido']);
    exit;
}

// Obtener datos JSON del cuerpo de la solicitud
$data = json_decode(file_get_contents('php://input'), true);

if (!$data || !isset($data['asientos']) || !isset($data['nombre_cliente'])) {
    echo json_encode(['success' => false, 'mensaje' => 'Datos incompletos']);
    exit;
}

// Extraer datos
$idsBoletos = $data['asientos'];
$nombreCliente = $data['nombre_cliente'];

// Validar que haya asientos seleccionados
if (empty($idsBoletos)) {
    echo json_encode(['success' => false, 'mensaje' => 'No se han seleccionado asientos']);
    exit;
}

// Conexión a base de datos
$db = new BaseDatos('localhost:3306', 'root', 'password', 'boletos_db');

// Inicializar el controlador
$vendedorController = new VendedorController($db);

// Cargar la sala (agregando esta línea)
$vendedorController->cargarSala(1); // O el ID de sala correspondiente

// Seleccionar boletos
$boletosSeleccionados = $vendedorController->seleccionarBoletos($idsBoletos);

if (count($boletosSeleccionados) == 0) {
    echo json_encode(['success' => false, 'mensaje' => 'No se han seleccionado asientos disponibles']);
    exit;
}

// Procesar venta
$comprobante = $vendedorController->procesarVenta($boletosSeleccionados, $nombreCliente);

if (!$comprobante) {
    echo json_encode(['success' => false, 'mensaje' => 'Error al procesar la venta. Intente nuevamente']);
    exit;
}

// Guardar comprobante en sesión
$_SESSION['comprobante'] = $comprobante;

// Respuesta exitosa
echo json_encode([
    'success' => true, 
    'mensaje' => 'Venta procesada con éxito',
    'redirect' => '../vista/comprobante.html',
    'comprobante' => $comprobante
]);