false, 'message' => 'Parámetros incompletos' ]); exit; } try { // Obtener la cantidad total de canchas del tipo especificado $t = mysqli_real_escape_string($conexion, $tipo); $sqlCanchas = "SELECT Cant_Canchas as cantidad_canchas, Duracion as duracion_cancha FROM canchas WHERE Tipo = '$t'"; $resCanchas = mysqli_query($conexion, $sqlCanchas); if (!$resCanchas) { throw new Exception("Error al obtener información de canchas: " . mysqli_error($conexion)); } $cancha = mysqli_fetch_assoc($resCanchas); $cantidadCanchas = $cancha['cantidad_canchas']; $duracionCancha = $cancha['duracion_cancha']; // Convertir horario $horaInicioArr = explode(':', $horario_inicio); $horaInicioMin = intval($horaInicioArr[0]) * 60 + intval($horaInicioArr[1]); $horaFinMin = $horaInicioMin + intval($duracion); $horaInicio = $horario_inicio . ':00'; $horaFin = sprintf("%02d:%02d", intval($horaFinMin / 60), intval($horaFinMin % 60)) . ':00'; // Obtener las canchas reservadas para este horario $f = mysqli_real_escape_string($conexion, $fecha); $sqlReservadasPorNumero = "SELECT r.Numero as numero_cancha FROM reservas r INNER JOIN canchas c ON r.ID_Cancha = c.ID_Cancha WHERE c.Tipo = '$t' AND DATE(r.Fecha_Hora) = '$f' AND r.Estado != 2 AND ( (TIME(r.Fecha_Hora) < '$horaFin' AND ADDTIME(TIME(r.Fecha_Hora), SEC_TO_TIME($duracionCancha * 60)) > '$horaInicio') ) GROUP BY r.Numero"; $resReservadasPorNumero = mysqli_query($conexion, $sqlReservadasPorNumero); if (!$resReservadasPorNumero) { throw new Exception("Error al obtener canchas reservadas: " . mysqli_error($conexion)); } $canchasReservadas = []; while ($row = mysqli_fetch_assoc($resReservadasPorNumero)) { $canchasReservadas[] = intval($row['numero_cancha']); } // Construir lista de todas las canchas con su disponibilidad $canchas = []; for ($i = 1; $i <= $cantidadCanchas; $i++) { $canchas[] = [ 'numero' => $i, 'disponible' => !in_array($i, $canchasReservadas) ]; } echo json_encode([ 'success' => true, 'cantidad_total' => $cantidadCanchas, 'canchas' => $canchas, 'tipo' => $tipo ]); } catch (Exception $e) { echo json_encode([ 'success' => false, 'message' => $e->getMessage() ]); } ?>