<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260507100000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Crea tablas ensayo_paes y ensayo_paes_sede para gestión autoadministrable de inscripciones PAES';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE ensayo_paes (
id INT AUTO_INCREMENT NOT NULL,
nombre VARCHAR(255) NOT NULL,
version VARCHAR(255) NOT NULL,
fecha_ensayo DATE DEFAULT NULL,
activo TINYINT(1) NOT NULL DEFAULT 0,
permitir_online TINYINT(1) NOT NULL DEFAULT 0,
fecha_apertura_inscripcion DATETIME DEFAULT NULL,
fecha_cierre_inscripcion DATETIME DEFAULT NULL,
fecha_creacion DATETIME NOT NULL,
UNIQUE INDEX UNIQ_ENSAYO_PAES_VERSION (version(191)),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE ensayo_paes_sede (
id INT AUTO_INCREMENT NOT NULL,
ensayo_id INT NOT NULL,
nombre VARCHAR(255) NOT NULL,
cupo_maximo INT NOT NULL DEFAULT 0,
activo TINYINT(1) NOT NULL DEFAULT 1,
INDEX IDX_ENSAYO_PAES_SEDE_ENSAYO (ensayo_id),
PRIMARY KEY(id),
CONSTRAINT FK_ENSAYO_PAES_SEDE_ENSAYO FOREIGN KEY (ensayo_id) REFERENCES ensayo_paes (id) ON DELETE CASCADE
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
// Insertar la edición actual "mayo 2026" para no perder compatibilidad con datos existentes
$this->addSql("INSERT INTO ensayo_paes (nombre, version, fecha_ensayo, activo, permitir_online, fecha_creacion)
VALUES ('Ensayo Mayo 2026', 'mayo 2026', '2026-05-09', 0, 0, NOW())");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Campus San Joaquín UC', 9000, 1 FROM ensayo_paes WHERE version = 'mayo 2026'");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Preuniversitario UC Concepción', 500, 1 FROM ensayo_paes WHERE version = 'mayo 2026'");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Campus Villarrica UC', 500, 0 FROM ensayo_paes WHERE version = 'mayo 2026'");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Preuniversitario UC Temuco', 350, 1 FROM ensayo_paes WHERE version = 'mayo 2026'");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Preuniversitario UC La Serena', 550, 1 FROM ensayo_paes WHERE version = 'mayo 2026'");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Colegio Chuquicamata - Calama', 1000, 1 FROM ensayo_paes WHERE version = 'mayo 2026'");
$this->addSql("INSERT INTO ensayo_paes_sede (ensayo_id, nombre, cupo_maximo, activo)
SELECT id, 'Sede Preuniversitario UC Pirque', 400, 0 FROM ensayo_paes WHERE version = 'mayo 2026'");
}
public function down(Schema $schema): void
{
$this->addSql('DROP TABLE ensayo_paes_sede');
$this->addSql('DROP TABLE ensayo_paes');
}
}