vendor/bluue/tickets-bundle/migrations/Version20230816145037.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace TicketsBundleMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use App\Services\ObjectSerialize;
  6. use Symfony\Component\Uid\UuidV6;
  7. use Doctrine\Migrations\AbstractMigration;
  8. final class Version20230816145037 extends AbstractMigration
  9. {
  10.     private ObjectSerialize $objectSerialize;
  11.     public function setObjectSerialize(ObjectSerialize $objectSerialize)
  12.     {
  13.         $this->objectSerialize $objectSerialize;
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $this->addSql('CREATE TABLE tickets_bundle__predefined_message (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', ticket_state_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', deleted_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', name VARCHAR(64) NOT NULL, content LONGTEXT DEFAULT NULL, cc LONGTEXT DEFAULT NULL, bcc LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, deleted_at DATETIME DEFAULT NULL, is_active TINYINT(1) DEFAULT 1 NOT NULL, INDEX IDX_A8BDD2EC80B1C040 (ticket_state_id), INDEX IDX_A8BDD2ECB03A8386 (created_by_id), INDEX IDX_A8BDD2EC896DBBDE (updated_by_id), INDEX IDX_A8BDD2ECC76F1F52 (deleted_by_id), INDEX name (name), INDEX is_active (is_active), INDEX deleted_at (deleted_at), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  18.         $this->addSql('CREATE TABLE tickets_bundle__predefined_message_status_change (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', content LONGTEXT NOT NULL, status INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, is_active TINYINT(1) DEFAULT 1 NOT NULL, INDEX IDX_1F55438FB03A8386 (created_by_id), INDEX IDX_1F55438F896DBBDE (updated_by_id), INDEX is_active (is_active), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  19.         $this->addSql('CREATE TABLE tickets_bundle__predefined_message_status_change_translations (id INT AUTO_INCREMENT NOT NULL, object_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', locale VARCHAR(8) NOT NULL, field VARCHAR(32) NOT NULL, content LONGTEXT DEFAULT NULL, INDEX IDX_8347860F232D562B (object_id), FULLTEXT INDEX content (content), UNIQUE INDEX lookup_unique_idx (locale, object_id, field), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  20.         $this->addSql('CREATE TABLE tickets_bundle__predefined_message_translations (id INT AUTO_INCREMENT NOT NULL, object_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', locale VARCHAR(8) NOT NULL, field VARCHAR(32) NOT NULL, content LONGTEXT DEFAULT NULL, INDEX IDX_36D82C4E232D562B (object_id), FULLTEXT INDEX content (content), UNIQUE INDEX lookup_unique_idx (locale, object_id, field), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  21.         $this->addSql('CREATE TABLE tickets_bundle__relaunch (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', original_ticket_state_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', final_ticket_state_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', deleted_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', days INT NOT NULL, content LONGTEXT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, deleted_at DATETIME DEFAULT NULL, is_active TINYINT(1) DEFAULT 1 NOT NULL, INDEX IDX_99EB8B45429D24CA (original_ticket_state_id), INDEX IDX_99EB8B453EC1430 (final_ticket_state_id), INDEX IDX_99EB8B45B03A8386 (created_by_id), INDEX IDX_99EB8B45896DBBDE (updated_by_id), INDEX IDX_99EB8B45C76F1F52 (deleted_by_id), INDEX days (days), INDEX is_active (is_active), INDEX deleted_at (deleted_at), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  22.         $this->addSql('CREATE TABLE tickets_bundle__ticket (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', ticket_state_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', merged_ticket_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', thread_id VARCHAR(256) DEFAULT NULL, created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', deleted_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', number INT NOT NULL, is_spam TINYINT(1) DEFAULT 0 NOT NULL, `level` INT DEFAULT 0 NOT NULL, `from` LONGTEXT NOT NULL, cc LONGTEXT DEFAULT NULL, bcc LONGTEXT DEFAULT NULL, subject VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, deleted_at DATETIME DEFAULT NULL, INDEX IDX_F69B6D7280B1C040 (ticket_state_id), INDEX IDX_F69B6D725B62A416 (merged_ticket_id), INDEX IDX_F69B6D72B03A8386 (created_by_id), INDEX IDX_F69B6D72896DBBDE (updated_by_id), INDEX IDX_F69B6D72C76F1F52 (deleted_by_id), INDEX level (level), INDEX number (number), INDEX deleted_at (deleted_at), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  23.         $this->addSql('CREATE TABLE tickets_bundle__ticket_message (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', ticket_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', deleted_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', api_id VARCHAR(256) DEFAULT NULL, `from` LONGTEXT DEFAULT NULL, cc LONGTEXT DEFAULT NULL, bcc LONGTEXT DEFAULT NULL, subject VARCHAR(255) DEFAULT NULL, reference LONGTEXT DEFAULT NULL, content LONGTEXT DEFAULT NULL, is_internal TINYINT(1) DEFAULT 0 NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, deleted_at DATETIME DEFAULT NULL, INDEX IDX_763429B7700047D2 (ticket_id), INDEX IDX_763429B7B03A8386 (created_by_id), INDEX IDX_763429B7896DBBDE (updated_by_id), INDEX IDX_763429B7C76F1F52 (deleted_by_id), INDEX deleted_at (deleted_at), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  24.         $this->addSql('CREATE TABLE tickets_bundle__ticket_message_attachment (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', ticket_message_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', file_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', deleted_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', content LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, deleted_at DATETIME DEFAULT NULL, INDEX IDX_C60E6310C5E9817D (ticket_message_id), INDEX IDX_C60E631093CB796C (file_id), INDEX IDX_C60E6310B03A8386 (created_by_id), INDEX IDX_C60E6310896DBBDE (updated_by_id), INDEX IDX_C60E6310C76F1F52 (deleted_by_id), INDEX deleted_at (deleted_at), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  25.         $this->addSql('CREATE TABLE tickets_bundle__ticket_state (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', deleted_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', name VARCHAR(64) NOT NULL, color VARCHAR(7) NOT NULL, position INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, deleted_at DATETIME DEFAULT NULL, is_active TINYINT(1) DEFAULT 1 NOT NULL, is_default TINYINT(1) NOT NULL, INDEX IDX_D5EB4896B03A8386 (created_by_id), INDEX IDX_D5EB4896896DBBDE (updated_by_id), INDEX IDX_D5EB4896C76F1F52 (deleted_by_id), INDEX name (name), INDEX color (color), INDEX position (position), INDEX is_active (is_active), INDEX is_default (is_default), INDEX deleted_at (deleted_at), INDEX created_at (created_at), INDEX updated_at (updated_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  26.         $this->addSql('CREATE TABLE tickets_bundle__ticket_state_translations (id INT AUTO_INCREMENT NOT NULL, object_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', locale VARCHAR(8) NOT NULL, field VARCHAR(32) NOT NULL, content LONGTEXT DEFAULT NULL, INDEX IDX_A32745DE232D562B (object_id), FULLTEXT INDEX content (content), UNIQUE INDEX lookup_unique_idx (locale, object_id, field), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  27.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message ADD CONSTRAINT FK_A8BDD2EC80B1C040 FOREIGN KEY (ticket_state_id) REFERENCES tickets_bundle__ticket_state (id)');
  28.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message ADD CONSTRAINT FK_A8BDD2ECB03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  29.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message ADD CONSTRAINT FK_A8BDD2EC896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  30.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message ADD CONSTRAINT FK_A8BDD2ECC76F1F52 FOREIGN KEY (deleted_by_id) REFERENCES user (id)');
  31.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_status_change ADD CONSTRAINT FK_1F55438FB03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  32.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_status_change ADD CONSTRAINT FK_1F55438F896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  33.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_status_change_translations ADD CONSTRAINT FK_8347860F232D562B FOREIGN KEY (object_id) REFERENCES tickets_bundle__predefined_message_status_change (id) ON DELETE CASCADE');
  34.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_translations ADD CONSTRAINT FK_36D82C4E232D562B FOREIGN KEY (object_id) REFERENCES tickets_bundle__predefined_message (id) ON DELETE CASCADE');
  35.         $this->addSql('ALTER TABLE tickets_bundle__relaunch ADD CONSTRAINT FK_99EB8B45429D24CA FOREIGN KEY (original_ticket_state_id) REFERENCES tickets_bundle__ticket_state (id)');
  36.         $this->addSql('ALTER TABLE tickets_bundle__relaunch ADD CONSTRAINT FK_99EB8B453EC1430 FOREIGN KEY (final_ticket_state_id) REFERENCES tickets_bundle__ticket_state (id)');
  37.         $this->addSql('ALTER TABLE tickets_bundle__relaunch ADD CONSTRAINT FK_99EB8B45B03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  38.         $this->addSql('ALTER TABLE tickets_bundle__relaunch ADD CONSTRAINT FK_99EB8B45896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  39.         $this->addSql('ALTER TABLE tickets_bundle__relaunch ADD CONSTRAINT FK_99EB8B45C76F1F52 FOREIGN KEY (deleted_by_id) REFERENCES user (id)');
  40.         $this->addSql('ALTER TABLE tickets_bundle__ticket ADD CONSTRAINT FK_F69B6D7280B1C040 FOREIGN KEY (ticket_state_id) REFERENCES tickets_bundle__ticket_state (id)');
  41.         $this->addSql('ALTER TABLE tickets_bundle__ticket ADD CONSTRAINT FK_F69B6D725B62A416 FOREIGN KEY (merged_ticket_id) REFERENCES tickets_bundle__ticket (id)');
  42.         $this->addSql('ALTER TABLE tickets_bundle__ticket ADD CONSTRAINT FK_F69B6D72B03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  43.         $this->addSql('ALTER TABLE tickets_bundle__ticket ADD CONSTRAINT FK_F69B6D72896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  44.         $this->addSql('ALTER TABLE tickets_bundle__ticket ADD CONSTRAINT FK_F69B6D72C76F1F52 FOREIGN KEY (deleted_by_id) REFERENCES user (id)');
  45.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message ADD CONSTRAINT FK_763429B7700047D2 FOREIGN KEY (ticket_id) REFERENCES tickets_bundle__ticket (id)');
  46.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message ADD CONSTRAINT FK_763429B7B03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  47.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message ADD CONSTRAINT FK_763429B7896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  48.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message ADD CONSTRAINT FK_763429B7C76F1F52 FOREIGN KEY (deleted_by_id) REFERENCES user (id)');
  49.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment ADD CONSTRAINT FK_C60E6310C5E9817D FOREIGN KEY (ticket_message_id) REFERENCES tickets_bundle__ticket_message (id)');
  50.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment ADD CONSTRAINT FK_C60E631093CB796C FOREIGN KEY (file_id) REFERENCES file_manager (id)');
  51.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment ADD CONSTRAINT FK_C60E6310B03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  52.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment ADD CONSTRAINT FK_C60E6310896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  53.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment ADD CONSTRAINT FK_C60E6310C76F1F52 FOREIGN KEY (deleted_by_id) REFERENCES user (id)');
  54.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state ADD CONSTRAINT FK_D5EB4896B03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id)');
  55.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state ADD CONSTRAINT FK_D5EB4896896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id)');
  56.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state ADD CONSTRAINT FK_D5EB4896C76F1F52 FOREIGN KEY (deleted_by_id) REFERENCES user (id)');
  57.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state_translations ADD CONSTRAINT FK_A32745DE232D562B FOREIGN KEY (object_id) REFERENCES tickets_bundle__ticket_state (id) ON DELETE CASCADE');
  58.     }
  59.     public function down(Schema $schema): void
  60.     {
  61.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message DROP FOREIGN KEY FK_A8BDD2EC80B1C040');
  62.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message DROP FOREIGN KEY FK_A8BDD2ECB03A8386');
  63.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message DROP FOREIGN KEY FK_A8BDD2EC896DBBDE');
  64.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message DROP FOREIGN KEY FK_A8BDD2ECC76F1F52');
  65.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_status_change DROP FOREIGN KEY FK_1F55438FB03A8386');
  66.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_status_change DROP FOREIGN KEY FK_1F55438F896DBBDE');
  67.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_status_change_translations DROP FOREIGN KEY FK_8347860F232D562B');
  68.         $this->addSql('ALTER TABLE tickets_bundle__predefined_message_translations DROP FOREIGN KEY FK_36D82C4E232D562B');
  69.         $this->addSql('ALTER TABLE tickets_bundle__relaunch DROP FOREIGN KEY FK_99EB8B45429D24CA');
  70.         $this->addSql('ALTER TABLE tickets_bundle__relaunch DROP FOREIGN KEY FK_99EB8B453EC1430');
  71.         $this->addSql('ALTER TABLE tickets_bundle__relaunch DROP FOREIGN KEY FK_99EB8B45B03A8386');
  72.         $this->addSql('ALTER TABLE tickets_bundle__relaunch DROP FOREIGN KEY FK_99EB8B45896DBBDE');
  73.         $this->addSql('ALTER TABLE tickets_bundle__relaunch DROP FOREIGN KEY FK_99EB8B45C76F1F52');
  74.         $this->addSql('ALTER TABLE tickets_bundle__ticket DROP FOREIGN KEY FK_F69B6D7280B1C040');
  75.         $this->addSql('ALTER TABLE tickets_bundle__ticket DROP FOREIGN KEY FK_F69B6D725B62A416');
  76.         $this->addSql('ALTER TABLE tickets_bundle__ticket DROP FOREIGN KEY FK_F69B6D72B03A8386');
  77.         $this->addSql('ALTER TABLE tickets_bundle__ticket DROP FOREIGN KEY FK_F69B6D72896DBBDE');
  78.         $this->addSql('ALTER TABLE tickets_bundle__ticket DROP FOREIGN KEY FK_F69B6D72C76F1F52');
  79.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message DROP FOREIGN KEY FK_763429B7700047D2');
  80.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message DROP FOREIGN KEY FK_763429B7B03A8386');
  81.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message DROP FOREIGN KEY FK_763429B7896DBBDE');
  82.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message DROP FOREIGN KEY FK_763429B7C76F1F52');
  83.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment DROP FOREIGN KEY FK_C60E6310C5E9817D');
  84.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment DROP FOREIGN KEY FK_C60E631093CB796C');
  85.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment DROP FOREIGN KEY FK_C60E6310B03A8386');
  86.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment DROP FOREIGN KEY FK_C60E6310896DBBDE');
  87.         $this->addSql('ALTER TABLE tickets_bundle__ticket_message_attachment DROP FOREIGN KEY FK_C60E6310C76F1F52');
  88.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state DROP FOREIGN KEY FK_D5EB4896B03A8386');
  89.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state DROP FOREIGN KEY FK_D5EB4896896DBBDE');
  90.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state DROP FOREIGN KEY FK_D5EB4896C76F1F52');
  91.         $this->addSql('ALTER TABLE tickets_bundle__ticket_state_translations DROP FOREIGN KEY FK_A32745DE232D562B');
  92.         $this->addSql('DROP TABLE tickets_bundle__predefined_message');
  93.         $this->addSql('DROP TABLE tickets_bundle__predefined_message_status_change');
  94.         $this->addSql('DROP TABLE tickets_bundle__predefined_message_status_change_translations');
  95.         $this->addSql('DROP TABLE tickets_bundle__predefined_message_translations');
  96.         $this->addSql('DROP TABLE tickets_bundle__relaunch');
  97.         $this->addSql('DROP TABLE tickets_bundle__ticket');
  98.         $this->addSql('DROP TABLE tickets_bundle__ticket_message');
  99.         $this->addSql('DROP TABLE tickets_bundle__ticket_message_attachment');
  100.         $this->addSql('DROP TABLE tickets_bundle__ticket_state');
  101.         $this->addSql('DROP TABLE tickets_bundle__ticket_state_translations');
  102.     }
  103.     public function postUp(Schema $schema): void
  104.     {
  105.         parent::postUp($schema);
  106.         $now = (new \DateTime())->format('Y-m-d H:i:s');
  107.         $languages $this->connection->executeQuery('SELECT * FROM language WHERE deleted_at IS NULL')
  108.             ->fetchAllAssociative();
  109.         $rootLocale 'en';
  110.         $defaultLocale $this->connection
  111.             ->executeQuery('SELECT locale FROM language WHERE deleted_at IS NULL AND is_default = 1')
  112.             ->fetchOne() ?: 'en';
  113.         $ticketStates = [
  114.             [
  115.                 'names' => ['fr' => 'Ouvert''en' => 'Open'],
  116.                 'color' => '#e55d43',
  117.                 'is_default' => true,
  118.                 'position' => 1
  119.             ],
  120.             [
  121.                 'names' => ['fr' => 'Attente''en' => 'Waiting'],
  122.                 'color' => '#3fa1ed',
  123.                 'is_default' => false,
  124.                 'position' => 2
  125.             ],
  126.             [
  127.                 'names' => ['fr' => 'Relancé''en' => 'Relaunched'],
  128.                 'color' => '#df821c',
  129.                 'is_default' => false,
  130.                 'position' => 3
  131.             ],
  132.             [
  133.                 'names' => ['fr' => 'Résolu''en' => 'Solved'],
  134.                 'color' => '#a39b8f',
  135.                 'is_default' => false,
  136.                 'position' => 4
  137.             ],
  138.             [
  139.                 'names' => ['fr' => 'Clos''en' => 'Closed'],
  140.                 'color' => '#000000',
  141.                 'is_default' => false,
  142.                 'closed' => true,
  143.                 'position' => 5
  144.             ]
  145.         ];
  146.         foreach ($ticketStates as $ticketState) {
  147.             $ticketStateId = new UuidV6();
  148.             $ticketStateIdStr $ticketStateId->toRfc4122();
  149.             $ticketStateId $ticketStateId->toBinary();
  150.             $this->connection->insert('tickets_bundle__ticket_state', [
  151.                 'id' => $ticketStateId,
  152.                 'name' => !empty($ticketState['names'][$defaultLocale]) ?
  153.                     $ticketState['names'][$defaultLocale] : $ticketState['names'][$rootLocale],
  154.                 'color' => $ticketState['color'],
  155.                 'position' => $ticketState['position'],
  156.                 'is_active' => 1,
  157.                 'is_default' => (int) $ticketState['is_default'],
  158.                 'created_at' => $now,
  159.                 'updated_at' => $now
  160.             ]);
  161.             if (isset($ticketState['closed'])) {
  162.                 $this->connection->insert('configuration', [
  163.                     'id' => (new UuidV6())->toBinary(),
  164.                     'name' => 'tickets_bundle__closed_ticket_state',
  165.                     'context_id' => null,
  166.                     'value' => $this->objectSerialize->add((object) ['value' => $ticketStateIdStr]),
  167.                     'created_at' => $now,
  168.                     'updated_at' => $now
  169.                 ]);
  170.             }
  171.             foreach ($languages as $language) {
  172.                 $localeTo $rootLocale;
  173.                 if (!empty($ticketState['names'][$language['locale']])) {
  174.                     $localeTo $language['locale'];
  175.                 } elseif (!empty($ticketState['names'][$defaultLocale])) {
  176.                     $localeTo $defaultLocale;
  177.                 }
  178.                 $this->connection->insert('tickets_bundle__ticket_state_translations', [
  179.                     'object_id' => $ticketStateId,
  180.                     'locale' => $language['locale'],
  181.                     'field' => 'name',
  182.                     'content' => $ticketState['names'][$localeTo]
  183.                 ]);
  184.             }
  185.         }
  186.         $messages = [
  187.             [
  188.                 'contents' => [
  189.                     'fr' => '<p>Bonjour,</p><p>Votre demande a &eacute;t&eacute; transf&eacute;r&eacute;e au niveau N0.</p><p><strong>Veuillez noter que cette r&eacute;ponse est g&eacute;n&eacute;r&eacute;e automatiquement.</strong></p>',
  190.                     'en' => '<p>Hello,</p><p>Your request has been transferred to level N0.</p><p><strong>Please note that this response is generated automatically.</strong></p>'
  191.                 ],
  192.                 'status' => 0
  193.             ],
  194.             [
  195.                 'contents' => [
  196.                     'fr' => '<p>Bonjour,</p><p>Votre demande a &eacute;t&eacute; transf&eacute;r&eacute;e au niveau N1.</p>',
  197.                     'en' => '<p>Hello,</p><p>Your request has been transferred to level N1.</p>'
  198.                 ],
  199.                 'status' => 1
  200.             ],
  201.             [
  202.                 'contents' => [
  203.                     'fr' => '<p>Bonjour,</p><p>Votre demande a &eacute;t&eacute; transf&eacute;r&eacute;e au niveau N2.</p>',
  204.                     'en' => '<p>Hello,</p><p>Your request has been transferred to level N2.</p>'
  205.                 ],
  206.                 'status' => 2
  207.             ]
  208.         ];
  209.         foreach ($messages as $message) {
  210.             $messageId = (new UuidV6())->toBinary();
  211.             $this->connection->insert('tickets_bundle__predefined_message_status_change', [
  212.                 'id' => $messageId,
  213.                 'content' => !empty($message['contents'][$defaultLocale]) ?
  214.                     $message['contents'][$defaultLocale] : $message['contents'][$rootLocale],
  215.                 'status' => $message['status'],
  216.                 'created_at' => $now,
  217.                 'updated_at' => $now
  218.             ]);
  219.             foreach ($languages as $language) {
  220.                 $localeTo $rootLocale;
  221.                 if (!empty($message['contents'][$language['locale']])) {
  222.                     $localeTo $language['locale'];
  223.                 } elseif (!empty($message['contents'][$defaultLocale])) {
  224.                     $localeTo $defaultLocale;
  225.                 }
  226.                 $this->connection->insert('tickets_bundle__predefined_message_status_change_translations', [
  227.                     'object_id' => $messageId,
  228.                     'locale' => $language['locale'],
  229.                     'field' => 'content',
  230.                     'content' => $message['contents'][$localeTo]
  231.                 ]);
  232.             }
  233.         }
  234.         $this->connection->insert('cron_job', [
  235.             'name' => 'tickets-relaunch',
  236.             'command' => 'bluue-bundle:tickets:relaunch',
  237.             'schedule' => '0 6 * * *',
  238.             'description' => '',
  239.             'enabled' => 0
  240.         ]);
  241.         $this->connection->insert('cron_job', [
  242.             'name' => 'mail-retrieval',
  243.             'command' => 'bluue-bundle:tickets:gmail-list',
  244.             'schedule' => '*/1 * * * *',
  245.             'description' => '',
  246.             'enabled' => 0
  247.         ]);
  248.         $content '<p>Bonjour,</p><p>&nbsp;</p><p>Il n\'y a pas de contrats permettant d\'être géré par ';
  249.         $content .= 'le support et donc ce ticket est renvoyé au commerce.</p>';
  250.         $this->connection->insert('configuration', [
  251.             'id' => (new UuidV6())->toBinary(),
  252.             'name' => 'tickets_bundle__trade_referral_mail_content',
  253.             'context_id' => null,
  254.             'value' => $this->objectSerialize->add((object) ['value' => $content]),
  255.             'created_at' => $now,
  256.             'updated_at' => $now
  257.         ]);
  258.         $fixtureFile dirname(__FILE__) . '/../src/Resources/views/Mail/Fixtures/layout.html.twig';
  259.         $mailLayout file_get_contents($fixtureFile);
  260.         $this->connection->insert('configuration', [
  261.             'id' => (new UuidV6())->toBinary(),
  262.             'name' => 'tickets_bundle__mail_layout',
  263.             'context_id' => null,
  264.             'value' => $this->objectSerialize->add((object) ['value' => $mailLayout]),
  265.             'created_at' => $now,
  266.             'updated_at' => $now
  267.         ]);
  268.     }
  269. }