-- Script para Actualizar la Tabla Jugadores (Schema Final V4)
-- Incluye Pokedex ID y Pie Dominante

SET FOREIGN_KEY_CHECKS = 0;

-- Opción: Re-crear la tabla (Borrando datos previos de prueba si existen)
DROP TABLE IF EXISTS ltic_jugadores;

CREATE TABLE ltic_jugadores (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Relaciones
    equipo_id INT NULL,
    pokedex_id INT NOT NULL COMMENT 'FK a la especie Pokemon',
    region_origen_id INT NOT NULL,
    
    -- Identidad
    nombre VARCHAR(50) NOT NULL COMMENT 'Apodo o Nombre Propio',
    dorsal INT NULL,
    estado ENUM('no_nacido', 'agente_libre', 'equipo', 'retirado') NOT NULL DEFAULT 'no_nacido',
    edad INT NOT NULL DEFAULT 15,
    pie_dominante ENUM('z','d') NOT NULL DEFAULT 'd' COMMENT 'Z=Zurdo (10%), D=Diestro',
    tipo_base VARCHAR(50) NOT NULL COMMENT 'Cache del tipo base para performance',
    
    -- Atributos Principales (Calculados por Reglas de Mapeo)
    api_int INT NOT NULL DEFAULT 1,
    api_con INT NOT NULL DEFAULT 1,
    api_tec INT NOT NULL DEFAULT 1,
    potencial_max INT NOT NULL DEFAULT 80,
    
    -- APOs (16 columnas) - Scores por posición
    apo_por INT NOT NULL DEFAULT 0,
    apo_dec INT NOT NULL DEFAULT 0,
    apo_lad INT NOT NULL DEFAULT 0,
    apo_lai INT NOT NULL DEFAULT 0,
    apo_cad INT NOT NULL DEFAULT 0,
    apo_cai INT NOT NULL DEFAULT 0,
    apo_con INT NOT NULL DEFAULT 0,
    apo_mec INT NOT NULL DEFAULT 0,
    apo_med INT NOT NULL DEFAULT 0,
    apo_mei INT NOT NULL DEFAULT 0,
    apo_mpc INT NOT NULL DEFAULT 0,
    apo_vod INT NOT NULL DEFAULT 0,
    apo_voi INT NOT NULL DEFAULT 0,
    apo_exd INT NOT NULL DEFAULT 0,
    apo_exi INT NOT NULL DEFAULT 0,
    apo_dlc INT NOT NULL DEFAULT 0,
    
    FOREIGN KEY (equipo_id) REFERENCES ltic_equipos(id) ON DELETE SET NULL,
    FOREIGN KEY (region_origen_id) REFERENCES ltic_regiones(id) ON DELETE CASCADE,
    FOREIGN KEY (pokedex_id) REFERENCES ltic_pokedex(id)
);

SET FOREIGN_KEY_CHECKS = 1;

SELECT 'Tabla ltic_jugadores actualizada con Pie Dominante y Pokedex FK.' AS Status;
