migrations/Version20250703110856.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 Version20250703110856 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $this->addSql('CREATE TABLE std_pages_approval_status (
  18.         id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT \'Unique identifier\',
  19.         page_id INT UNSIGNED NOT NULL COMMENT \'Page unique identifier\',
  20.         status INT DEFAULT NULL COMMENT \'Status\',
  21.         last_approver_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\',
  22.         UNIQUE INDEX UNIQ_40E6FD42C4663E4 (page_id),
  23.         INDEX IDX_40E6FD42FB150960 (last_approver_id),
  24.         PRIMARY KEY(id)
  25.     ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  26.         $this->addSql('ALTER TABLE std_pages_approval_status 
  27.         ADD CONSTRAINT FK_40E6FD42C4663E4 FOREIGN KEY (page_id) REFERENCES std_pages (id),
  28.         ADD CONSTRAINT FK_40E6FD42FB150960 FOREIGN KEY (last_approver_id) REFERENCES std_users (id) ON DELETE SET NULL
  29.     ');
  30.         $this->addSql('CREATE TABLE std_pages_approval_status_roles (
  31.         approval_status_id INT UNSIGNED NOT NULL COMMENT \'Unique identifier\',
  32.         role_id INT UNSIGNED NOT NULL COMMENT \'Role unique identifier\',
  33.         INDEX IDX_4DBC6EF4960AD263 (approval_status_id),
  34.         INDEX IDX_4DBC6EF4D60322AC (role_id),
  35.         PRIMARY KEY(approval_status_id, role_id)
  36.     ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  37.         $this->addSql('ALTER TABLE std_pages_approval_status_roles 
  38.         ADD CONSTRAINT FK_4DBC6EF4960AD263 FOREIGN KEY (approval_status_id) REFERENCES std_pages_approval_status (id),
  39.         ADD CONSTRAINT FK_4DBC6EF4D60322AC FOREIGN KEY (role_id) REFERENCES std_roles (id)
  40.     ');
  41.         $this->addSql('CREATE TABLE std_pages_category_approvers (
  42.         id INT AUTO_INCREMENT NOT NULL,
  43.         categories_id INT UNSIGNED NOT NULL COMMENT \'Page unique identifier\',
  44.         approver_role_id INT UNSIGNED NOT NULL COMMENT \'Role unique identifier\',
  45.         INDEX IDX_C8A205EDA21214B7 (categories_id),
  46.         INDEX IDX_C8A205ED2FAAA473 (approver_role_id),
  47.         PRIMARY KEY(id)
  48.     ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  49.         $this->addSql('ALTER TABLE std_pages_category_approvers 
  50.         ADD CONSTRAINT FK_C8A205EDA21214B7 FOREIGN KEY (categories_id) REFERENCES std_pages (id),
  51.         ADD CONSTRAINT FK_C8A205ED2FAAA473 FOREIGN KEY (approver_role_id) REFERENCES std_roles (id)
  52.     ');
  53.         $this->addSql('CREATE TABLE std_pages_approval_comments (
  54.         id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT \'Unique identifier\',
  55.         approval_status_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\',
  56.         author_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\',
  57.         comment VARCHAR(255) DEFAULT NULL COMMENT \'Comment of the Approval\',
  58.         created_at DATETIME NOT NULL COMMENT \'Date of the comment(DC2Type:datetime_immutable)\',
  59.         INDEX IDX_8572C660960AD263 (approval_status_id),
  60.         INDEX IDX_8572C660F675F31B (author_id),
  61.         PRIMARY KEY(id)
  62.     ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  63.         $this->addSql('ALTER TABLE std_pages_approval_comments 
  64.         ADD CONSTRAINT FK_8572C660960AD263 FOREIGN KEY (approval_status_id) REFERENCES std_pages_approval_status (id) ON DELETE CASCADE,
  65.         ADD CONSTRAINT FK_8572C660F675F31B FOREIGN KEY (author_id) REFERENCES std_users (id) ON DELETE SET NULL
  66.     ');
  67.         $this->addSql("
  68.         INSERT INTO `std_config` (
  69.             `machine_name`, `created_by`, `updated_by`, `value`,
  70.             `description_machine_name`, `details_machine_name`,
  71.             `parent_name`, `variable_type`, `order_value`,
  72.             `is_hidden`, `label`, `content`, `language_code`
  73.         ) VALUES (
  74.             'approval_workflow', '1', '1', '', 'approval_workflow',
  75.             'approval_workflow', 'System', 'CHECKBOX', '35',
  76.             '0', 'Enable/Disable Approval Workflow', NULL, ''
  77.         )
  78.     ");
  79.     }
  80.     public function down(Schema $schema): void
  81.     {
  82.         $this->addSql("DELETE FROM `std_config` WHERE `machine_name` = 'approval_workflow'");
  83.         $this->addSql('ALTER TABLE std_pages_approval_comments DROP FOREIGN KEY FK_8572C660960AD263');
  84.         $this->addSql('ALTER TABLE std_pages_approval_comments DROP FOREIGN KEY FK_8572C660F675F31B');
  85.         $this->addSql('DROP TABLE std_pages_approval_comments');
  86.         $this->addSql('ALTER TABLE std_pages_category_approvers DROP FOREIGN KEY FK_C8A205EDA21214B7');
  87.         $this->addSql('ALTER TABLE std_pages_category_approvers DROP FOREIGN KEY FK_C8A205ED2FAAA473');
  88.         $this->addSql('DROP TABLE std_pages_category_approvers');
  89.         $this->addSql('ALTER TABLE std_pages_approval_status_roles DROP FOREIGN KEY FK_4DBC6EF4960AD263');
  90.         $this->addSql('ALTER TABLE std_pages_approval_status_roles DROP FOREIGN KEY FK_4DBC6EF4D60322AC');
  91.         $this->addSql('DROP TABLE std_pages_approval_status_roles');
  92.         $this->addSql('ALTER TABLE std_pages_approval_status DROP FOREIGN KEY FK_40E6FD42C4663E4');
  93.         $this->addSql('ALTER TABLE std_pages_approval_status DROP FOREIGN KEY FK_40E6FD42FB150960');
  94.         $this->addSql('DROP TABLE std_pages_approval_status');
  95.     }
  96. }