-- Script de Creación de Tabla de Jugadores
-- Soporta ciclo de vida (No Nacido -> Retirado) y Multi-Posición (APO)

SET FOREIGN_KEY_CHECKS = 0;

DROP TABLE IF EXISTS ltic_jugadores;

CREATE TABLE ltic_jugadores (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Relaciones
    equipo_id INT NULL,
    region_origen_id INT NOT NULL,
    
    -- Identidad y Ciclo de Vida
    nombre VARCHAR(50) NOT NULL COMMENT 'Nombre de la especie o apodo',
    dorsal INT NULL COMMENT 'Solo relevante si tiene equipo',
    estado ENUM('no_nacido', 'agente_libre', 'equipo', 'retirado') NOT NULL DEFAULT 'no_nacido',
    edad INT NOT NULL DEFAULT 15,
    
    -- ADN
    tipo_base VARCHAR(50) NOT NULL COMMENT 'Ej: Fuego, Agua, etc.',
    
    -- Atributos Principales (API)
    api_int INT NOT NULL DEFAULT 1 COMMENT 'Inteligencia',
    api_con INT NOT NULL DEFAULT 1 COMMENT 'Condición',
    api_tec INT NOT NULL DEFAULT 1 COMMENT 'Técnica',
    
    -- Potencial
    potencial_max INT NOT NULL DEFAULT 80,
    
    -- Atributos de Posición (APO) - Escala 0-20
    -- Definitivos (Portero, Defensas)
    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,
    
    -- Medios
    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,
    
    -- Ofensivos
    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,
    
    -- Constraints
    FOREIGN KEY (equipo_id) REFERENCES ltic_equipos(id) ON DELETE SET NULL,
    FOREIGN KEY (region_origen_id) REFERENCES ltic_regiones(id) ON DELETE CASCADE
);

SET FOREIGN_KEY_CHECKS = 1;

SELECT 'Tabla ltic_jugadores creada exitosamente.' AS Status;
