<?php
header("Content-Type: application/json");
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once "conexion-bd.php";

if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    echo json_encode(["error" => "No se especificó una compra válida."]);
    exit();
}

$id_compra = intval($_GET['id']);

$sql = "SELECT ventas.id, conciertos.artista, conciertos.fecha, lugares.nombre AS lugar, 
               ventas.cantidad, ventas.total, conciertos.precio
        FROM ventas 
        JOIN conciertos ON ventas.evento_id = conciertos.id 
        JOIN lugares ON conciertos.lugar_id = lugares.id 
        WHERE ventas.id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id_compra);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows === 0) {
    echo json_encode(["error" => "La compra no existe."]);
    exit();
}

$compra = $result->fetch_assoc();

$check_table = $conn->query("SHOW TABLES LIKE 'ventas_asientos'");
if ($check_table->num_rows === 0) {
    echo json_encode(["error" => "Error: La tabla de asientos vendidos no está creada."]);
    exit();
}

$sql_asientos = "SELECT numero_asiento FROM asientos 
                 WHERE id IN (SELECT asiento_id FROM ventas_asientos WHERE venta_id = ?)";
$stmt_asientos = $conn->prepare($sql_asientos);
$stmt_asientos->bind_param("i", $id_compra);
$stmt_asientos->execute();
$result_asientos = $stmt_asientos->get_result();

$asientos = [];
while ($row = $result_asientos->fetch_assoc()) {
    $asientos[] = $row['numero_asiento'];
}

echo json_encode([
    "artista" => $compra['artista'],
    "fecha" => date("d M Y - H:i", strtotime($compra['fecha'])),
    "lugar" => $compra['lugar'],
    "cantidad" => $compra['cantidad'],
    "precio" => number_format($compra['precio'], 2), 
    "total" => number_format($compra['total'], 2),
    "asientos" => $asientos 
], JSON_UNESCAPED_UNICODE);

$stmt->close();
$stmt_asientos->close();
$conn->close();
?>