<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20211019073840 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE event (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', name VARCHAR(255) NOT NULL, start_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', end_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', description LONGTEXT DEFAULT NULL, state ENUM(\'active\', \'cancel\', \'archived\') NOT NULL COMMENT \'(DC2Type:enumeventstate)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE purchase (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', event_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', number VARCHAR(16) NOT NULL, code VARCHAR(16) NOT NULL, email VARCHAR(255) NOT NULL, first_name VARCHAR(255) DEFAULT NULL, last_name VARCHAR(255) DEFAULT NULL, date DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', token VARCHAR(128) DEFAULT NULL, login_code VARCHAR(32) DEFAULT NULL, login_code_expire_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_6117D13B96901F54 (number), INDEX IDX_6117D13B71F7E88B (event_id), INDEX code_idx (code), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE ticket (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', type_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', purchase_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', code VARCHAR(32) NOT NULL, INDEX IDX_97A0ADA3C54C8C93 (type_id), INDEX IDX_97A0ADA3558FBEB9 (purchase_id), INDEX code_idx (code), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE ticket_type (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', event_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, INDEX IDX_BE05421171F7E88B (event_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE upgrade (id INT AUTO_INCREMENT NOT NULL, ticket_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', upgrade_rule_id INT NOT NULL, date DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', memo LONGTEXT DEFAULT NULL, INDEX IDX_B766741A700047D2 (ticket_id), INDEX IDX_B766741A891003B4 (upgrade_rule_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE upgrade_rule (id INT AUTO_INCREMENT NOT NULL, event_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', old_ticket_type_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', new_ticket_type_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', active TINYINT(1) NOT NULL, INDEX IDX_322EEBD271F7E88B (event_id), INDEX IDX_322EEBD2BF08D683 (old_ticket_type_id), INDEX IDX_322EEBD2FE036ED3 (new_ticket_type_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE purchase ADD CONSTRAINT FK_6117D13B71F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
$this->addSql('ALTER TABLE ticket ADD CONSTRAINT FK_97A0ADA3C54C8C93 FOREIGN KEY (type_id) REFERENCES ticket_type (id)');
$this->addSql('ALTER TABLE ticket ADD CONSTRAINT FK_97A0ADA3558FBEB9 FOREIGN KEY (purchase_id) REFERENCES purchase (id)');
$this->addSql('ALTER TABLE ticket_type ADD CONSTRAINT FK_BE05421171F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
$this->addSql('ALTER TABLE upgrade ADD CONSTRAINT FK_B766741A700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket (id)');
$this->addSql('ALTER TABLE upgrade ADD CONSTRAINT FK_B766741A891003B4 FOREIGN KEY (upgrade_rule_id) REFERENCES upgrade_rule (id)');
$this->addSql('ALTER TABLE upgrade_rule ADD CONSTRAINT FK_322EEBD271F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
$this->addSql('ALTER TABLE upgrade_rule ADD CONSTRAINT FK_322EEBD2BF08D683 FOREIGN KEY (old_ticket_type_id) REFERENCES ticket_type (id)');
$this->addSql('ALTER TABLE upgrade_rule ADD CONSTRAINT FK_322EEBD2FE036ED3 FOREIGN KEY (new_ticket_type_id) REFERENCES ticket_type (id)');
$this->addSql('insert into event (id, name, start_at, end_at, description, state) values (unhex(replace(uuid(),"-","")), "Sample Event", "2022-06-01 12:00:00", "2022-06-01 23:59:59", "Sample event", "active")');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE purchase DROP FOREIGN KEY FK_6117D13B71F7E88B');
$this->addSql('ALTER TABLE ticket_type DROP FOREIGN KEY FK_BE05421171F7E88B');
$this->addSql('ALTER TABLE upgrade_rule DROP FOREIGN KEY FK_322EEBD271F7E88B');
$this->addSql('ALTER TABLE ticket DROP FOREIGN KEY FK_97A0ADA3558FBEB9');
$this->addSql('ALTER TABLE upgrade DROP FOREIGN KEY FK_B766741A700047D2');
$this->addSql('ALTER TABLE ticket DROP FOREIGN KEY FK_97A0ADA3C54C8C93');
$this->addSql('ALTER TABLE upgrade_rule DROP FOREIGN KEY FK_322EEBD2BF08D683');
$this->addSql('ALTER TABLE upgrade_rule DROP FOREIGN KEY FK_322EEBD2FE036ED3');
$this->addSql('ALTER TABLE upgrade DROP FOREIGN KEY FK_B766741A891003B4');
$this->addSql('DROP TABLE event');
$this->addSql('DROP TABLE purchase');
$this->addSql('DROP TABLE ticket');
$this->addSql('DROP TABLE ticket_type');
$this->addSql('DROP TABLE upgrade');
$this->addSql('DROP TABLE upgrade_rule');
}
}