<?php
header("Content-Type: application/json");
require_once "conexion-bd.php";

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(["mensaje" => "Método no permitido."]);
    exit();
}

$artista = $conn->real_escape_string($_POST['artista']);
$fecha = $conn->real_escape_string($_POST['fecha']);
$lugar_id = intval($_POST['lugar_id']);
$precio = isset($_POST['precio']) ? floatval($_POST['precio']) : 0;
$descripcion = isset($_POST['descripcion']) ? $conn->real_escape_string($_POST['descripcion']) : "";

// Validar precio
if ($precio <= 0) {
    echo json_encode(["mensaje" => "Error: El precio debe ser un número mayor a 0."]);
    exit();
}

// Obtener capacidad del lugar
$sql_capacidad = "SELECT capacidad FROM lugares WHERE id = ?";
$stmt = $conn->prepare($sql_capacidad);
$stmt->bind_param("i", $lugar_id);
$stmt->execute();
$result = $stmt->get_result();
$lugar = $result->fetch_assoc();

if (!$lugar) {
    echo json_encode(["mensaje" => "Error: El lugar seleccionado no existe."]);
    exit();
}

$capacidad = $lugar['capacidad'];

// 🔹 Manejar subida del archivo (imagen)
$imagen_path = "";
if (isset($_FILES['imagen']) && $_FILES['imagen']['error'] === UPLOAD_ERR_OK) {
    $imagen_nombre = basename($_FILES['imagen']['name']);
    $imagen_extension = strtolower(pathinfo($imagen_nombre, PATHINFO_EXTENSION));

    // Validar extensión permitida
    $extensiones_permitidas = ['jpg', 'jpeg', 'png', 'gif'];
    if (!in_array($imagen_extension, $extensiones_permitidas)) {
        echo json_encode(["mensaje" => "Error: Formato de imagen no permitido."]);
        exit();
    }

    // Carpeta destino para las imágenes subidas
    $carpeta_destino = "../img/eventos/";
    if (!is_dir($carpeta_destino)) {
        mkdir($carpeta_destino, 0777, true);
    }

    // Crear nombre único para evitar conflictos
    $nuevo_nombre = uniqid('evento_', true) . '.' . $imagen_extension;
    $imagen_path = $carpeta_destino . $nuevo_nombre;

    // Guardar archivo en servidor
    if (!move_uploaded_file($_FILES['imagen']['tmp_name'], $imagen_path)) {
        echo json_encode(["mensaje" => "Error al guardar la imagen."]);
        exit();
    }

    // Guardar ruta relativa para acceder desde HTML
    $imagen_path = "img/eventos/" . $nuevo_nombre;
}

// Insertar el evento incluyendo la imagen
$sql = "INSERT INTO conciertos (artista, fecha, lugar_id, precio, descripcion, imagen) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssidss", $artista, $fecha, $lugar_id, $precio, $descripcion, $imagen_path);

if ($stmt->execute()) {
    $evento_id = $conn->insert_id;

    // Generar asientos según capacidad
    $asientos_insert = $conn->prepare("INSERT INTO asientos (lugar_id, numero_asiento) VALUES (?, ?)");

    for ($i = 1; $i <= $capacidad; $i++) {
        $fila = chr(65 + floor(($i - 1) / 10));
        $numero_asiento = $fila . (($i % 10 == 0) ? 10 : $i % 10);
        $asientos_insert->bind_param("is", $lugar_id, $numero_asiento);
        $asientos_insert->execute();
    }

    echo json_encode(["mensaje" => "Evento creado exitosamente."]);
} else {
    echo json_encode(["mensaje" => "Error al crear el evento: " . $conn->error]);
}

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