migrations/Version20211019073840.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20211019073840 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $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');
  19.         $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');
  20.         $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');
  21.         $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');
  22.         $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');
  23.         $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');
  24.         $this->addSql('ALTER TABLE purchase ADD CONSTRAINT FK_6117D13B71F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
  25.         $this->addSql('ALTER TABLE ticket ADD CONSTRAINT FK_97A0ADA3C54C8C93 FOREIGN KEY (type_id) REFERENCES ticket_type (id)');
  26.         $this->addSql('ALTER TABLE ticket ADD CONSTRAINT FK_97A0ADA3558FBEB9 FOREIGN KEY (purchase_id) REFERENCES purchase (id)');
  27.         $this->addSql('ALTER TABLE ticket_type ADD CONSTRAINT FK_BE05421171F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
  28.         $this->addSql('ALTER TABLE upgrade ADD CONSTRAINT FK_B766741A700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket (id)');
  29.         $this->addSql('ALTER TABLE upgrade ADD CONSTRAINT FK_B766741A891003B4 FOREIGN KEY (upgrade_rule_id) REFERENCES upgrade_rule (id)');
  30.         $this->addSql('ALTER TABLE upgrade_rule ADD CONSTRAINT FK_322EEBD271F7E88B FOREIGN KEY (event_id) REFERENCES event (id)');
  31.         $this->addSql('ALTER TABLE upgrade_rule ADD CONSTRAINT FK_322EEBD2BF08D683 FOREIGN KEY (old_ticket_type_id) REFERENCES ticket_type (id)');
  32.         $this->addSql('ALTER TABLE upgrade_rule ADD CONSTRAINT FK_322EEBD2FE036ED3 FOREIGN KEY (new_ticket_type_id) REFERENCES ticket_type (id)');
  33.         $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")');
  34.     }
  35.     public function down(Schema $schema): void
  36.     {
  37.         // this down() migration is auto-generated, please modify it to your needs
  38.         $this->addSql('ALTER TABLE purchase DROP FOREIGN KEY FK_6117D13B71F7E88B');
  39.         $this->addSql('ALTER TABLE ticket_type DROP FOREIGN KEY FK_BE05421171F7E88B');
  40.         $this->addSql('ALTER TABLE upgrade_rule DROP FOREIGN KEY FK_322EEBD271F7E88B');
  41.         $this->addSql('ALTER TABLE ticket DROP FOREIGN KEY FK_97A0ADA3558FBEB9');
  42.         $this->addSql('ALTER TABLE upgrade DROP FOREIGN KEY FK_B766741A700047D2');
  43.         $this->addSql('ALTER TABLE ticket DROP FOREIGN KEY FK_97A0ADA3C54C8C93');
  44.         $this->addSql('ALTER TABLE upgrade_rule DROP FOREIGN KEY FK_322EEBD2BF08D683');
  45.         $this->addSql('ALTER TABLE upgrade_rule DROP FOREIGN KEY FK_322EEBD2FE036ED3');
  46.         $this->addSql('ALTER TABLE upgrade DROP FOREIGN KEY FK_B766741A891003B4');
  47.         $this->addSql('DROP TABLE event');
  48.         $this->addSql('DROP TABLE purchase');
  49.         $this->addSql('DROP TABLE ticket');
  50.         $this->addSql('DROP TABLE ticket_type');
  51.         $this->addSql('DROP TABLE upgrade');
  52.         $this->addSql('DROP TABLE upgrade_rule');
  53.     }
  54. }