<?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 Version20250703110856 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE std_pages_approval_status (
id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT \'Unique identifier\',
page_id INT UNSIGNED NOT NULL COMMENT \'Page unique identifier\',
status INT DEFAULT NULL COMMENT \'Status\',
last_approver_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\',
UNIQUE INDEX UNIQ_40E6FD42C4663E4 (page_id),
INDEX IDX_40E6FD42FB150960 (last_approver_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE std_pages_approval_status
ADD CONSTRAINT FK_40E6FD42C4663E4 FOREIGN KEY (page_id) REFERENCES std_pages (id),
ADD CONSTRAINT FK_40E6FD42FB150960 FOREIGN KEY (last_approver_id) REFERENCES std_users (id) ON DELETE SET NULL
');
$this->addSql('CREATE TABLE std_pages_approval_status_roles (
approval_status_id INT UNSIGNED NOT NULL COMMENT \'Unique identifier\',
role_id INT UNSIGNED NOT NULL COMMENT \'Role unique identifier\',
INDEX IDX_4DBC6EF4960AD263 (approval_status_id),
INDEX IDX_4DBC6EF4D60322AC (role_id),
PRIMARY KEY(approval_status_id, role_id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE std_pages_approval_status_roles
ADD CONSTRAINT FK_4DBC6EF4960AD263 FOREIGN KEY (approval_status_id) REFERENCES std_pages_approval_status (id),
ADD CONSTRAINT FK_4DBC6EF4D60322AC FOREIGN KEY (role_id) REFERENCES std_roles (id)
');
$this->addSql('CREATE TABLE std_pages_category_approvers (
id INT AUTO_INCREMENT NOT NULL,
categories_id INT UNSIGNED NOT NULL COMMENT \'Page unique identifier\',
approver_role_id INT UNSIGNED NOT NULL COMMENT \'Role unique identifier\',
INDEX IDX_C8A205EDA21214B7 (categories_id),
INDEX IDX_C8A205ED2FAAA473 (approver_role_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE std_pages_category_approvers
ADD CONSTRAINT FK_C8A205EDA21214B7 FOREIGN KEY (categories_id) REFERENCES std_pages (id),
ADD CONSTRAINT FK_C8A205ED2FAAA473 FOREIGN KEY (approver_role_id) REFERENCES std_roles (id)
');
$this->addSql('CREATE TABLE std_pages_approval_comments (
id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT \'Unique identifier\',
approval_status_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\',
author_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\',
comment VARCHAR(255) DEFAULT NULL COMMENT \'Comment of the Approval\',
created_at DATETIME NOT NULL COMMENT \'Date of the comment(DC2Type:datetime_immutable)\',
INDEX IDX_8572C660960AD263 (approval_status_id),
INDEX IDX_8572C660F675F31B (author_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE std_pages_approval_comments
ADD CONSTRAINT FK_8572C660960AD263 FOREIGN KEY (approval_status_id) REFERENCES std_pages_approval_status (id) ON DELETE CASCADE,
ADD CONSTRAINT FK_8572C660F675F31B FOREIGN KEY (author_id) REFERENCES std_users (id) ON DELETE SET NULL
');
$this->addSql("
INSERT INTO `std_config` (
`machine_name`, `created_by`, `updated_by`, `value`,
`description_machine_name`, `details_machine_name`,
`parent_name`, `variable_type`, `order_value`,
`is_hidden`, `label`, `content`, `language_code`
) VALUES (
'approval_workflow', '1', '1', '', 'approval_workflow',
'approval_workflow', 'System', 'CHECKBOX', '35',
'0', 'Enable/Disable Approval Workflow', NULL, ''
)
");
}
public function down(Schema $schema): void
{
$this->addSql("DELETE FROM `std_config` WHERE `machine_name` = 'approval_workflow'");
$this->addSql('ALTER TABLE std_pages_approval_comments DROP FOREIGN KEY FK_8572C660960AD263');
$this->addSql('ALTER TABLE std_pages_approval_comments DROP FOREIGN KEY FK_8572C660F675F31B');
$this->addSql('DROP TABLE std_pages_approval_comments');
$this->addSql('ALTER TABLE std_pages_category_approvers DROP FOREIGN KEY FK_C8A205EDA21214B7');
$this->addSql('ALTER TABLE std_pages_category_approvers DROP FOREIGN KEY FK_C8A205ED2FAAA473');
$this->addSql('DROP TABLE std_pages_category_approvers');
$this->addSql('ALTER TABLE std_pages_approval_status_roles DROP FOREIGN KEY FK_4DBC6EF4960AD263');
$this->addSql('ALTER TABLE std_pages_approval_status_roles DROP FOREIGN KEY FK_4DBC6EF4D60322AC');
$this->addSql('DROP TABLE std_pages_approval_status_roles');
$this->addSql('ALTER TABLE std_pages_approval_status DROP FOREIGN KEY FK_40E6FD42C4663E4');
$this->addSql('ALTER TABLE std_pages_approval_status DROP FOREIGN KEY FK_40E6FD42FB150960');
$this->addSql('DROP TABLE std_pages_approval_status');
}
}