<?php
/**
 * instalar_tablas.php
 * - NO lee schema.sql (el dump va embebido acá).
 * - Crea TABLA POR TABLA solo si NO existe.
 * - Para cada tabla nueva, ejecuta su CREATE y luego sus ALTER (índices + auto_increment) asociados.
 * - EXTRA: Ejecuta ALTERs de tablas existentes SOLO si faltan columnas (ADD `col`)
 *
 * Requiere: db.php (ideal) o concha.php, que deje una conexión lista:
 *   - $conn (mysqli)  o  $pdo (PDO)
 */

error_reporting(E_ALL);
ini_set('display_errors', '1');
set_time_limit(0);
header('Content-Type: text/plain; charset=utf-8');

// ------------------------------------------------------------
// 1) Cargar conexión
// ------------------------------------------------------------
$loaded = false;
$paths = [
  __DIR__ . '/db.php',
  __DIR__ . '/concha.php',
  __DIR__ . '/config.php',
];

foreach ($paths as $p) {
  if (file_exists($p)) {
    require_once $p;
    $loaded = true;
    break;
  }
}

if (!$loaded) {
  echo "ERROR: No encuentro db.php / concha.php / config.php en el mismo directorio.\n";
  exit;
}

// Detectar conexión
$dbType = null;
$db = null;

if (isset($pdo) && is_object($pdo) && (class_exists('PDO', false) || class_exists('PDO'))) {
  if ($pdo instanceof PDO) { $dbType = 'pdo'; $db = $pdo; }
}

if (!$dbType && isset($conn) && is_object($conn) && (class_exists('mysqli', false) || class_exists('mysqli'))) {
  if ($conn instanceof mysqli) { $dbType = 'mysqli'; $db = $conn; }
}

if (!$dbType) {
  echo "ERROR: No pude detectar conexión. Necesito \$conn (mysqli) o \$pdo (PDO).\n";
  exit;
}

// Charset (solo sesión)
if ($dbType === 'mysqli') {
  @mysqli_set_charset($db, 'utf8');
} else {
  $db->exec("SET NAMES utf8");
}

// ------------------------------------------------------------
// 2) Dump embebido (pegá/dejá acá tu SQL)
//    Nota: el script SOLO usa CREATE TABLE y ALTER TABLE.
// ------------------------------------------------------------
$SQL_DUMP = <<<'SQL'
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Servidor: localhost:3306
-- Tiempo de generación: 10-02-2026 a las 01:09:04
-- Versión del servidor: 5.7.44
-- Versión de PHP: 8.1.34

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

-- Base de datos: `nuevaori_base`

CREATE TABLE `agenda` (
  `ID` int(10) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `nota` int(37) NOT NULL,
  `fecha` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `albumes` (
  `ID` int(10) NOT NULL,
  `nombre` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `arbitros` (
  `ID_arbitros` int(99) NOT NULL,
  `nombre` varchar(255) CHARACTER SET utf8 NOT NULL,
  `orden` varchar(255) CHARACTER SET utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `archivos` (
  `ID` int(10) NOT NULL,
  `ruta` varchar(255) NOT NULL,
  `ID_nota` int(10) NOT NULL,
  `tipo` varchar(22) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `audios` (
  `ID` int(10) NOT NULL,
  `mp3` varchar(233) NOT NULL,
  `titulo` varchar(233) NOT NULL,
  `nota` varchar(233) NOT NULL,
  `carpetafoto` varchar(255) NOT NULL DEFAULT 'upload_pic',
  `analizado` varchar(2) NOT NULL DEFAULT 'no'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `avisos` (
  `ID` int(10) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `linea1` varchar(255) NOT NULL,
  `linea2` varchar(255) NOT NULL,
  `IDC` int(10) NOT NULL,
  `IDS` int(10) NOT NULL,
  `user` varchar(255) NOT NULL,
  `ver` varchar(25) NOT NULL DEFAULT 'no',
  `accion` varchar(255) NOT NULL,
  `nombre` varchar(233) NOT NULL,
  `telefono` varchar(233) NOT NULL,
  `email` varchar(233) NOT NULL,
  `foto` varchar(222) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `boletin` (
  `ID` int(12) NOT NULL,
  `email` varchar(233) NOT NULL,
  `fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `categorias` (
  `ID` int(10) NOT NULL,
  `nombre` varchar(255) NOT NULL,
  `color` varchar(233) NOT NULL,
  `home` varchar(2) NOT NULL,
  `orden` int(3) NOT NULL,
  `disciplina` int(12) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `cat_deportes` (
  `ID` int(12) NOT NULL,
  `nombre` varchar(233) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `chat` (
  `nombre` varchar(255) NOT NULL,
  `mensaje` text NOT NULL,
  `fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `ver` varchar(2) NOT NULL DEFAULT 'no',
  `ID` int(10) NOT NULL,
  `IDM` int(10) NOT NULL,
  `IP` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `cla_categorias` (
  `ID` int(10) NOT NULL,
  `nombre` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `club_1_campeonato` (
  `ID` int(12) NOT NULL,
  `nombre` varchar(255) NOT NULL,
  `logo` varchar(255) NOT NULL,
  `copa` varchar(233) NOT NULL,
  `inicio` varchar(233) NOT NULL,
  `fin` varchar(233) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `club_1_zonas` (
  `ID` int(12) NOT NULL,
  `zona` varchar(211) NOT NULL,
  `ID_campeonato` int(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `club_2_clubes` (
  `ID` int(12) NOT NULL,
  `nombre` varchar(122) NOT NULL,
  `historia` text NOT NULL,
  `estadio` varchar(122) NOT NULL,
  `logo` varchar(122) NOT NULL,
  `apodo` varchar(233) NOT NULL,
  `localidad` varchar(122) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `club_2_fechas` (
  `ID` int(12) NOT NULL,
  `nombre` varchar(120) NOT NULL,
  `fecha` varchar(233) NOT NULL,
  `ID_campeonato` int(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `club_3_partidos` (
  `ID` int(12) NOT NULL,
  `fecha` varchar(233) NOT NULL,
  `hora` varchar(233) NOT NULL,
  `club_v` varchar(233) NOT NULL,
  `club_l` varchar(233) NOT NULL,
  `resultado_v` varchar(233) NOT NULL,
  `resultado_l` varchar(233) NOT NULL,
  `arbitro` varchar(233) NOT NULL,
  `estadio` varchar(233) NOT NULL,
  `ID_campeonato` int(12) NOT NULL,
  `ID_zona` int(12) NOT NULL,
  `ID_fecha` int(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `club_4_momentos` (
  `ID` int(11) NOT NULL,
  `min` varchar(233) NOT NULL,
  `motivo` varchar(233) NOT NULL,
  `evento` varchar(122) NOT NULL,
  `ID_partido` int(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `html_inicio` (
  `texto` text NOT NULL,
  `ID` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

INSERT INTO `html_inicio` (`texto`, `ID`) VALUES ('', 1);

ALTER TABLE `notas_tapa` ADD `ext_img` VARCHAR(233) NOT NULL AFTER `etiqueta`;

CREATE TABLE `club_5_tabla` (
  `puesto` int(12) NOT NULL,
  `ID_campeonato` int(12) NOT NULL,
  `ID_club` int(12) NOT NULL,
  `pts` varchar(122) NOT NULL,
  `pj` varchar(120) NOT NULL,
  `pg` varchar(120) NOT NULL,
  `pe` varchar(120) NOT NULL,
  `pp` varchar(120) NOT NULL,
  `gf` varchar(120) NOT NULL,
  `gc` varchar(120) NOT NULL,
  `dif` varchar(120) NOT NULL,
  `color` varchar(123) NOT NULL,
  `ID` int(23) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `columna` (
  `lugar` int(2) NOT NULL,
  `bloque` text NOT NULL,
  `ID` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `comentarios` (
  `ID` int(10) NOT NULL,
  `nombre` varchar(255) NOT NULL,
  `texto` text NOT NULL,
  `IDD` int(10) NOT NULL,
  `ver` varchar(2) NOT NULL DEFAULT 'no',
  `IP` varchar(255) NOT NULL,
  `sub_comentario` int(12) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `configuracion` (
  `cantidad_notas` int(2) NOT NULL,
  `weather` varchar(222) NOT NULL,
  `nombre_tiempo` varchar(222) NOT NULL,
  `logo` text NOT NULL,
  `logo_g` varchar(255) NOT NULL,
  `menu` text NOT NULL,
  `reproductor` varchar(2) NOT NULL,
  `random` varchar(2) NOT NULL DEFAULT 'no',
  `b_marquesina` varchar(2) NOT NULL DEFAULT 'si',
  `contacto` text NOT NULL,
  `twitter` text NOT NULL,
  `facebook` varchar(233) NOT NULL,
  `d_fu_menu` varchar(22) NOT NULL,
  `d_ta_titulo` varchar(233) NOT NULL,
  `d_fu_titulo` varchar(233) NOT NULL,
  `d_ta_texto` varchar(233) NOT NULL,
  `d_fu_texto` varchar(233) NOT NULL,
  `d_color_titulo` varchar(233) NOT NULL,
  `d_color_titulo_link` varchar(233) NOT NULL,
  `d_color_destacada` varchar(255) NOT NULL,
  `d_color_destacada_sobre` varchar(8) NOT NULL,
  `d_color_fondo` varchar(255) NOT NULL,
  `d_color_menu` varchar(255) NOT NULL,
  `d_color_menu_sobre` varchar(255) NOT NULL,
  `d_color_fondo_cabecera` varchar(122) NOT NULL,
  `d_color_fondo_menu` varchar(122) NOT NULL,
  `d_color_weather2` varchar(233) NOT NULL DEFAULT '#454545',
  `estilo` int(12) NOT NULL,
  `rss` varchar(2) NOT NULL,
  `rss_fuente` varchar(255) NOT NULL,
  `separador` varchar(666) NOT NULL DEFAULT ' ',
  `backup` varchar(233) NOT NULL,
  `logo_movil` varchar(255) NOT NULL,
  `logo_full` varchar(235) NOT NULL,
  `ip_stream` varchar(233) NOT NULL,
  `usuario_stream` varchar(244) NOT NULL,
  `emailsitio` varchar(255) NOT NULL,
  `nombresitio` text NOT NULL,
  `descripcion_web` text NOT NULL,
  `palabras_clave` text NOT NULL,
  `comentarios` varchar(255) NOT NULL,
  `e_email` varchar(2) NOT NULL DEFAULT 'si',
  `streaming` varchar(22) NOT NULL,
  `copypaste` varchar(2) NOT NULL DEFAULT 'no',
  `refresh` int(12) NOT NULL,
  `codigostream` text NOT NULL,
  `cu3er` varchar(1) NOT NULL DEFAULT '1',
  `autorun` varchar(2) NOT NULL DEFAULT 'no',
  `estiloweb` varchar(2) NOT NULL DEFAULT '1',
  `social_aim` varchar(255) NOT NULL,
  `social_ask` varchar(255) NOT NULL,
  `social_blogger` varchar(255) NOT NULL,
  `social_flickr` varchar(255) NOT NULL,
  `social_google` varchar(255) NOT NULL,
  `social_myspace` varchar(255) NOT NULL,
  `social_tumblr` varchar(255) NOT NULL,
  `social_vimeo` varchar(255) NOT NULL,
  `social_yahoo` varchar(255) NOT NULL,
  `social_youtube` varchar(255) NOT NULL,
  `weather2` varchar(2) NOT NULL DEFAULT 'si',
  `ruta_flash_facebook` varchar(233) NOT NULL,
  `opcion1` varchar(2) NOT NULL DEFAULT 'si',
  `opcion2` varchar(2) NOT NULL DEFAULT 'si',
  `opcion3` varchar(2) NOT NULL DEFAULT 'si',
  `opcion4` varchar(2) NOT NULL DEFAULT 'si',
  `opcion5` varchar(2) NOT NULL DEFAULT 'si',
  `opcion6` varchar(2) NOT NULL DEFAULT 'si',
  `opcion7` varchar(2) NOT NULL DEFAULT 'si',
  `opcion8` varchar(2) NOT NULL DEFAULT 'si',
  `opcion9` varchar(2) NOT NULL DEFAULT 'si',
  `opcion10` varchar(2) NOT NULL DEFAULT 'si',
  `marco1px` int(3) NOT NULL DEFAULT '370',
  `marco2px` int(3) NOT NULL DEFAULT '280',
  `textura` varchar(255) NOT NULL,
  `adsense` text NOT NULL,
  `app_movil` varchar(299) NOT NULL,
  `opcion_audio_noticias_facebook` varchar(2) NOT NULL,
  `twitter_btn` varchar(255) NOT NULL,
  `analitycs` text NOT NULL,
  `numero_contador` int(2) NOT NULL,
  `marca_de_agua` varchar(400) NOT NULL,
  `provincia` varchar(255) NOT NULL,
  `localidad` varchar(255) NOT NULL,
  `infoclima` varchar(455) NOT NULL,
  `color_modulo` text NOT NULL,
  `funcion1` varchar(300) NOT NULL,
  `funcion2` varchar(300) NOT NULL,
  `funcion3` varchar(300) NOT NULL,
  `funcion4` varchar(300) NOT NULL,
  `funcion5` varchar(300) NOT NULL,
  `funcion6` varchar(300) NOT NULL,
  `funcion7` varchar(300) NOT NULL,
  `funcion8` varchar(300) NOT NULL,
  `funcion9` varchar(300) NOT NULL,
  `funcion10` varchar(300) NOT NULL,
  `color_web` varchar(14) NOT NULL DEFAULT 'negro',
  `recaptcha_publica` varchar(455) NOT NULL,
  `recaptcha_privada` varchar(455) NOT NULL,
  `logo_chico` varchar(233) NOT NULL,
  `whatsapp` varchar(200) NOT NULL,
  `como_esta` varchar(100) NOT NULL,
  `grados` varchar(12) NOT NULL,
  `icon` int(3) NOT NULL,
  `d_color_titulo_cat` varchar(99) NOT NULL,
  `opcion101` tinyint(1) NOT NULL,
  `opcion102` tinyint(1) NOT NULL,
  `opcion103` tinyint(1) NOT NULL,
  `opcion104` tinyint(1) NOT NULL,
  `opcion105` tinyint(1) NOT NULL,
  `opcion106` tinyint(1) NOT NULL,
  `opcion107` tinyint(1) NOT NULL,
  `opcion108` tinyint(1) NOT NULL,
  `opcion109` tinyint(1) NOT NULL,
  `opcion110` tinyint(1) NOT NULL,
  `opcion111` tinyint(1) NOT NULL,
  `tag_dest1` varchar(50) NOT NULL,
  `tag_dest2` varchar(50) NOT NULL,
  `tag_dest3` varchar(50) NOT NULL,
  `tag_dest4` varchar(50) NOT NULL,
  `tag_dest5` varchar(50) NOT NULL,
  `str_0001_link_stream_tv` varchar(123) NOT NULL,
  `str_0002_link_stream_tv_movil` varchar(123) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `correos` (
  `ID` int(19) NOT NULL,
  `email` varchar(255) NOT NULL,
  `pass` varchar(255) NOT NULL,
  `creado` varchar(2) NOT NULL DEFAULT 'no'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

ALTER TABLE `publicidades_gif` ADD `img_movil` VARCHAR(233) NOT NULL AFTER `lugar`;
ALTER TABLE `publicidades_gif` ADD `carpeta_foto_img_movil` VARCHAR(233) NOT NULL AFTER `img_movil`;



ALTER TABLE `publicidades_gif` ADD `img_movil` VARCHAR(233) NOT NULL AFTER `lugar`; 

ALTER TABLE `publicidades_gif` ADD `carpeta_foto_img_movil` VARCHAR(233) NOT NULL AFTER `img_movil`; 







CREATE TABLE IF NOT EXISTS `fut_estadios` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nombre` varchar(150) NOT NULL, `slug` varchar(180) NOT NULL, `foto` varchar(255) DEFAULT NULL, `localidad` varchar(120) NOT NULL, `provincia` varchar(120) NOT NULL, `direccion` varchar(180) DEFAULT NULL, `capacidad` int(10) unsigned DEFAULT NULL, `activo` tinyint(1) NOT NULL DEFAULT '1', `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_nombre` (`nombre`), KEY `idx_slug` (`slug`), KEY `idx_provincia_localidad` (`provincia`,`localidad`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_equipos` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nombre` varchar(150) NOT NULL, `nombre_corto` varchar(80) DEFAULT NULL, `slug` varchar(180) NOT NULL, `logo` varchar(255) DEFAULT NULL, `ciudad` varchar(120) DEFAULT NULL, `provincia` varchar(120) DEFAULT NULL, `fundacion` varchar(20) DEFAULT NULL, `activo` tinyint(1) NOT NULL DEFAULT '1', `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_nombre` (`nombre`), KEY `idx_slug` (`slug`), KEY `idx_provincia_ciudad` (`provincia`,`ciudad`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_jugadores` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `equipo_id` int(10) unsigned NOT NULL, `nombre` varchar(120) NOT NULL, `apellido` varchar(120) DEFAULT NULL, `apodo` varchar(120) DEFAULT NULL, `numero_camiseta` varchar(10) DEFAULT NULL, `posicion` varchar(50) DEFAULT NULL, `foto` varchar(255) DEFAULT NULL, `fecha_nacimiento` date DEFAULT NULL, `activo` tinyint(1) NOT NULL DEFAULT '1', `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_equipo` (`equipo_id`), KEY `idx_nombre_apellido` (`nombre`,`apellido`), KEY `idx_numero` (`numero_camiseta`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_arbitros` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nombre` varchar(120) NOT NULL, `apellido` varchar(120) DEFAULT NULL, `apodo` varchar(120) DEFAULT NULL, `rol_default` varchar(50) DEFAULT NULL, `foto` varchar(255) DEFAULT NULL, `provincia` varchar(120) DEFAULT NULL, `activo` tinyint(1) NOT NULL DEFAULT '1', `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_nombre_apellido` (`nombre`,`apellido`), KEY `idx_rol_default` (`rol_default`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_partidos` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `competencia` varchar(150) DEFAULT NULL, `temporada` varchar(30) DEFAULT NULL, `jornada` varchar(50) DEFAULT NULL, `instancia` varchar(80) DEFAULT NULL, `equipo_local_id` int(10) unsigned NOT NULL, `equipo_visitante_id` int(10) unsigned NOT NULL, `estadio_id` int(10) unsigned NOT NULL, `fecha_partido` date NOT NULL, `hora_partido` time NOT NULL, `fecha_hora_partido` datetime NOT NULL, `estado` enum('programado','primer_tiempo','entretiempo','segundo_tiempo','finalizado','suspendido','postergado') NOT NULL DEFAULT 'programado', `unix_inicio_1t` bigint(20) unsigned DEFAULT NULL, `unix_fin_1t` bigint(20) unsigned DEFAULT NULL, `unix_inicio_2t` bigint(20) unsigned DEFAULT NULL, `unix_fin_partido` bigint(20) unsigned DEFAULT NULL, `marcador_local` smallint(5) unsigned NOT NULL DEFAULT '0', `marcador_visitante` smallint(5) unsigned NOT NULL DEFAULT '0', `observaciones` text, `publicado` tinyint(1) NOT NULL DEFAULT '1', `destacado` tinyint(1) NOT NULL DEFAULT '0', `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_fecha_partido` (`fecha_partido`), KEY `idx_fecha_hora_partido` (`fecha_hora_partido`), KEY `idx_estado` (`estado`), KEY `idx_estadio_id` (`estadio_id`), KEY `idx_local_visitante` (`equipo_local_id`,`equipo_visitante_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_partidos_arbitros` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `partido_id` int(10) unsigned NOT NULL, `arbitro_id` int(10) unsigned NOT NULL, `rol` varchar(50) NOT NULL, `creado_en` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_partido_arbitro_rol` (`partido_id`,`arbitro_id`,`rol`), KEY `idx_partido` (`partido_id`), KEY `idx_arbitro` (`arbitro_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_partidos_alineaciones` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `partido_id` int(10) unsigned NOT NULL, `equipo_id` int(10) unsigned NOT NULL, `jugador_id` int(10) unsigned NOT NULL, `condicion` enum('titular','suplente') NOT NULL DEFAULT 'titular', `orden_lista` tinyint(3) unsigned NOT NULL DEFAULT '0', `capitan` tinyint(1) NOT NULL DEFAULT '0', `observaciones` varchar(255) DEFAULT NULL, `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_partido_jugador` (`partido_id`,`jugador_id`), KEY `idx_partido_equipo` (`partido_id`,`equipo_id`), KEY `idx_jugador` (`jugador_id`), KEY `idx_condicion` (`condicion`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_partidos_eventos` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `partido_id` int(10) unsigned NOT NULL, `equipo_id` int(10) unsigned DEFAULT NULL, `jugador_id` int(10) unsigned DEFAULT NULL, `jugador_relacionado_id` int(10) unsigned DEFAULT NULL, `tipo_evento` enum('gol','amarilla','roja','cambio','inicio_1t','fin_1t','inicio_2t','fin_partido','incidencia') NOT NULL, `minuto` smallint(5) unsigned DEFAULT NULL, `tiempo_juego` enum('1T','2T','ET','PEN','NA') NOT NULL DEFAULT 'NA', `detalle` varchar(255) DEFAULT NULL, `orden_evento` bigint(20) unsigned NOT NULL DEFAULT '0', `usuario_carga` varchar(100) DEFAULT NULL, `creado_en` datetime NOT NULL, PRIMARY KEY (`id`), KEY `idx_partido` (`partido_id`), KEY `idx_partido_tipo` (`partido_id`,`tipo_evento`), KEY `idx_equipo` (`equipo_id`), KEY `idx_jugador` (`jugador_id`), KEY `idx_minuto` (`minuto`), KEY `idx_orden_evento` (`orden_evento`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `fut_sync_pendientes` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `tabla_origen` varchar(60) NOT NULL, `registro_id` int(10) unsigned NOT NULL, `accion` enum('insert','update','delete') NOT NULL DEFAULT 'insert', `payload` longtext, `estado` enum('pendiente','procesando','ok','error') NOT NULL DEFAULT 'pendiente', `intentos` tinyint(3) unsigned NOT NULL DEFAULT '0', `ultimo_error` text, `creado_en` datetime NOT NULL, `actualizado_en` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_estado` (`estado`), KEY `idx_tabla_registro` (`tabla_origen`,`registro_id`), KEY `idx_accion` (`accion`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;




ALTER TABLE `notas_tapa`
MODIFY `ext_img` VARCHAR(10) NOT NULL DEFAULT '';






-- PEGÁ ACÁ EL RESTO DEL DUMP COMPLETO (CREATE TABLE + ALTER TABLE)
SQL;

// ------------------------------------------------------------
// 3) Helpers DB
// ------------------------------------------------------------
function db_error($dbType, $db) {
  if ($dbType === 'mysqli') return $db->error;
  $ei = $db->errorInfo();
  return isset($ei[2]) ? $ei[2] : 'Error PDO';
}

function db_exec($dbType, $db, $sql) {
  if ($dbType === 'mysqli') {
    return $db->query($sql);
  }
  $db->exec($sql);
  return true;
}

function table_exists($dbType, $db, $table) {
  $sql = "SELECT 1
          FROM information_schema.tables
          WHERE table_schema = DATABASE()
            AND table_name = ?
          LIMIT 1";
  if ($dbType === 'mysqli') {
    $stmt = $db->prepare($sql);
    if (!$stmt) return false;
    $stmt->bind_param("s", $table);
    $stmt->execute();
    $stmt->store_result();
    $ok = ($stmt->num_rows > 0);
    $stmt->close();
    return $ok;
  }
  $stmt = $db->prepare($sql);
  $stmt->execute([$table]);
  return (bool)$stmt->fetchColumn();
}

function column_exists($dbType, $db, $table, $column) {
  $sql = "SELECT 1
          FROM information_schema.columns
          WHERE table_schema = DATABASE()
            AND table_name = ?
            AND column_name = ?
          LIMIT 1";
  if ($dbType === 'mysqli') {
    $stmt = $db->prepare($sql);
    if (!$stmt) return false;
    $stmt->bind_param("ss", $table, $column);
    $stmt->execute();
    $stmt->store_result();
    $ok = ($stmt->num_rows > 0);
    $stmt->close();
    return $ok;
  }
  $stmt = $db->prepare($sql);
  $stmt->execute([$table, $column]);
  return (bool)$stmt->fetchColumn();
}

function extract_added_columns_from_alter($alterSql) {
  $cols = [];
  if (preg_match_all('/\bADD\s+`([^`]+)`\s+/i', $alterSql, $m)) {
    $cols = $m[1];
  }
  return $cols;
}

// ------------------------------------------------------------
// 4) Parsear CREATE TABLE y ALTER TABLE del dump
// ------------------------------------------------------------
$creates = []; // table => create_sql
$order   = []; // orden de aparición
$alters  = []; // table => [alter_sql, ...]

$reCreate = '~CREATE\s+TABLE\s+`([^`]+)`\s*\((?:.|\n)*?\)\s*ENGINE=.*?;~i';
if (preg_match_all($reCreate, $SQL_DUMP, $m, PREG_SET_ORDER)) {
  foreach ($m as $row) {
    $full = $row[0];
    preg_match('~CREATE\s+TABLE\s+`([^`]+)`~i', $full, $mm);
    $t = $mm[1];

    // Agregar IF NOT EXISTS
    $full = preg_replace('~^CREATE\s+TABLE\s+`~i', 'CREATE TABLE IF NOT EXISTS `', $full);

    $creates[$t] = $full;
    $order[] = $t;
  }
}

$reAlter = '~ALTER\s+TABLE\s+`([^`]+)`\s+(?:.|\n)*?;~i';
if (preg_match_all($reAlter, $SQL_DUMP, $m2, PREG_SET_ORDER)) {
  foreach ($m2 as $row) {
    $t = $row[1];
    if (!isset($alters[$t])) $alters[$t] = [];
    $alters[$t][] = $row[0];
  }
}

if (!$order && !$alters) {
  echo "ERROR: No encontré CREATE TABLE ni ALTER TABLE en el dump embebido.\n";
  exit;
}

echo "Conexion detectada: {$dbType}\n\n";
echo "Tablas detectadas en dump (CREATE): " . count($order) . "\n";
echo "Tablas con ALTER en dump: " . count($alters) . "\n";
echo "------------------------------------------------------------\n";

// ------------------------------------------------------------
// 5) Ejecutar tabla por tabla (solo si NO existe)
// ------------------------------------------------------------
$creadas = 0;
$skips   = 0;
$alter_ok_nuevas = 0;

foreach ($order as $t) {
  $exists = table_exists($dbType, $db, $t);
  if ($exists) {
    echo "SKIP  $t (ya existe)\n";
    $skips++;
    continue;
  }

  echo "CREATE $t\n";
  $ok = db_exec($dbType, $db, $creates[$t]);
  if (!$ok) {
    echo "ERROR en CREATE $t: " . db_error($dbType, $db) . "\n\n";
    exit;
  }

  if (isset($alters[$t])) {
    foreach ($alters[$t] as $aSql) {
      $ok2 = db_exec($dbType, $db, $aSql);
      if (!$ok2) {
        echo "ERROR en ALTER $t:\n$aSql\n";
        echo "DB: " . db_error($dbType, $db) . "\n\n";
        exit;
      }
      $alter_ok_nuevas++;
    }
  }

  echo "OK    $t\n";
  $creadas++;
}

echo "------------------------------------------------------------\n";
echo "Listo CREATE.\n";
echo "Creadas: $creadas\n";
echo "Saltadas: $skips\n";
echo "ALTER ejecutados en tablas nuevas: $alter_ok_nuevas\n";
echo "------------------------------------------------------------\n\n";

// ------------------------------------------------------------
// 6) EXTRA: Ejecutar ALTERs pendientes en tablas existentes
//     SOLO para casos seguros: ADD `col` si falta (evita error Duplicate column)
// ------------------------------------------------------------
echo "--- Ejecutando ALTERs pendientes en tablas existentes (solo ADD COLUMN si falta) ---\n";

$alter_aplicados = 0;
$alter_saltados  = 0;

foreach ($alters as $table => $alterList) {
  if (!table_exists($dbType, $db, $table)) {
    echo "SKIP ALTER $table (tabla no existe)\n";
    continue;
  }

  foreach ($alterList as $aSql) {
    $addedCols = extract_added_columns_from_alter($aSql);

    // Si no es un ALTER tipo "ADD `col`", lo dejamos en SKIP para no romper nada.
    if (!$addedCols) {
      echo "SKIP ALTER $table (no es ADD COLUMN seguro)\n";
      $alter_saltados++;
      continue;
    }

    // Ejecutar solo si falta al menos una de las columnas que intenta agregar
    $faltan = false;
    foreach ($addedCols as $col) {
      if (!column_exists($dbType, $db, $table, $col)) {
        $faltan = true;
        break;
      }
    }

    if (!$faltan) {
      echo "SKIP ALTER $table (columnas ya existen)\n";
      $alter_saltados++;
      continue;
    }

    $ok = db_exec($dbType, $db, $aSql);
    if (!$ok) {
      echo "ERROR en ALTER existente $table:\n$aSql\n";
      echo "DB: " . db_error($dbType, $db) . "\n\n";
      exit;
    }

    echo "OK ALTER $table\n";
    $alter_aplicados++;
  }
}

echo "------------------------------------------------------------\n";
echo "Listo TODO.\n";
echo "ALTER aplicados (existentes): $alter_aplicados\n";
echo "ALTER saltados (existentes): $alter_saltados\n";