<?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 Version20230412154318 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
// Create page "Termos & condições"
$this->addSql("SET @id_content_type = (SELECT id FROM `std_content_types` WHERE `machine_name` = 'private_area');");
$this->addSql("INSERT INTO `std_pages` (`template_id`, `created_by`, `updated_by`, `content_type`, `is_active`, `created_date`, `updated_date`, `order_value`, `publish_date`, `expire_date`, `name`)
VALUES (NULL, 1, 1, @id_content_type, 1, NOW(), NOW(), NULL, NOW(), NULL, 'Notificações');");
$this->addSql("SET @id_page = (SELECT id FROM `std_pages` WHERE `content_type` = @id_content_type AND `name`='Notificações');");
$arrayJsonContent = ["fields"=> [
"1"=> [
"skin"=> ""
, "block"=> "web_users_notifications"
, "isMaster"=> 0
, "settings"=> [
"margin"=> "" , "offset"=> "0" , "padding"=> "" , "expire_date"=> "" , "extra_class"=> "" , "publish_date"=> "" , "disabled_block"=> "0" , "extra_block_id"=> "", "item_label"=> ""]
, "blockname"=> ""
, "components"=> [
"title"=> "Notificações"]
, "repeatable"=> []
, "templatesBlocksId"=> 0
]
]
];
$this->addSql("INSERT INTO `std_pages_content` (`page_id`, `language_code`, `created_by`, `updated_by`, `is_active`, `created_date`, `updated_date`, `title`, `url`, `canonical_url`, `meta_title`, `meta_keywords`, `meta_description`, `og_title`, `og_image`, `og_description`, `og_url`, `scripts_head`, `scripts_body`, `scripts_footer`, `content`) VALUES (@id_page, 'pt', 1, 1, 1, now(), now(), 'Notificações', 'notificacoes', '/pt/notificacoes', '', '', '', '', '', '', '', '', '', '', '".json_encode($arrayJsonContent, JSON_UNESCAPED_UNICODE)."');");
$this->addSql("INSERT INTO `std_friendly_url` (`page_id`, `url`, `relation_tree`, `relation_id`, `language_code`, `is_canonical`) VALUES (@id_page, '/pt/notificacoes', '[]', NULL, 'pt', 1);");
// add role to page
$this->addSql("SET @web_role = (SELECT id FROM `std_web_roles` WHERE `name` = 'ROLE_USER');");
$this->addSql("INSERT INTO `std_page_web_role` (`page_id`, `webrole_id`) VALUES (@id_page, @web_role);");
// config
$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`, `is_active`, `created_date`, `updated_date`, `label`, `content`, `language_code`)
VALUES
('notifications_pages', 1, 1, '', 'notifications_pages', 'notifications_pages', 'Private area', 'SELECT', 2, 0, 1, now(), now(), 'Página Notificações', '{\"query\": \"select p.`name` as label,p.id as id from std_pages p INNER JOIN std_content_types sct ON p.content_type = sct.id where sct.machine_name LIKE \'private_area\'\"}', '');
");
$this->addSql("SET @menu_content_type = (SELECT id FROM std_content_types WHERE machine_name='menus');");
$this->addSql("SET @privatearea_content_type = (SELECT id FROM std_content_types WHERE machine_name='private_area');");
$this->addSql("SET @menu_page = (SELECT id FROM std_pages WHERE `content_type`=@menu_content_type AND name='Menu área reservada');");
$this->addSql("SET @menu_page_relation = (SELECT id FROM std_pages_pages WHERE `page_id`=@menu_page);");
$this->addSql("SET @child_page = (SELECT id FROM std_pages WHERE `content_type`=@privatearea_content_type AND name='Notificações');");
$this->addSql("SET @child_page_canonical = (SELECT id FROM std_friendly_url WHERE `page_id`=@child_page AND is_canonical=1);");
$this->addSql("INSERT INTO `std_pages` (`template_id`, `created_by`, `updated_by`, `content_type`, `is_active`, `created_date`, `updated_date`, `order_value`, `publish_date`, `expire_date`, `name`) VALUES (NULL, 1, 1, @menu_content_type, 1, NOW(), NOW(), NULL, NULL, NULL, 'Notificações');");
$this->addSql("SET @menu_child_page = (SELECT id FROM std_pages WHERE `content_type`=@menu_content_type AND name='Notificações');");
$this->addSql("INSERT INTO `std_pages_content` (`page_id`, `language_code`, `created_by`, `updated_by`, `is_active`, `created_date`, `updated_date`, `title`, `url`, `canonical_url`, `meta_title`, `meta_keywords`, `meta_description`, `og_title`, `og_image`, `og_description`, `og_url`, `scripts_head`, `scripts_body`, `scripts_footer`, `content`) VALUES (@menu_child_page, 'pt', 1, 1, 1, NOW(), NOW(), 'Notificações', 'notificacoes', NULL, '', '', '', '', '', '', '', '', '', '', CONCAT('{\"id\": ',@child_page,', \"target\": \"_self\", \"relationId\": 0}'));");
$this->addSql("INSERT INTO `std_pages_pages` (`page_id`, `relation_id`, `order_value`, `content_type`) VALUES (@menu_child_page, @menu_page_relation, 1, @menu_content_type);");
$this->addSql("SET @menu_child_page_relation = (SELECT id FROM std_pages_pages WHERE `page_id`=@menu_child_page AND `relation_id` = @menu_page_relation AND `content_type` = @menu_content_type);");
$this->addSql("INSERT INTO `std_menus_friendly_url` (`menu_id`, `menu_relation_id`, `url_relation_id`, `friendly_url`, `language_code`, `page_id`) VALUES (@menu_page, @menu_page_relation, @menu_child_page_relation, @child_page_canonical, 'pt', @child_page);");
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql("SET @privatearea_content_type = (SELECT id FROM std_content_types WHERE machine_name='private_area');");
$this->addSql("SET @menu_content_type = (SELECT id FROM std_content_types WHERE machine_name='menus');");
$this->addSql("SET @menu_page = (SELECT id FROM std_pages WHERE `content_type`=@menu_content_type AND name='Menu área reservada');");
$this->addSql("SET @menu_page_relation = (SELECT id FROM std_pages_pages WHERE `page_id`=@menu_page);");
$this->addSql("SET @menu_child_page = (SELECT id FROM std_pages WHERE `content_type`=@menu_content_type AND name='Notificações');");
$this->addSql("SET @child_page = (SELECT id FROM std_pages WHERE `content_type`=@privatearea_content_type AND name='Notificações');");
$this->addSql("DELETE FROM `std_menus_friendly_url` WHERE `menu_id`=@menu_page AND `menu_relation_id`=@menu_page_relation AND `page_id`=@child_page;");
$this->addSql("DELETE FROM `std_pages_pages` WHERE `page_id`=@menu_child_page AND `relation_id`=@menu_page_relation;");
$this->addSql("DELETE FROM `std_pages_pages` WHERE `page_id`=@child_page AND `relation_id`=@menu_page_relation;");
$this->addSql("DELETE FROM `std_pages_content` WHERE `page_id`=@menu_child_page;");
$this->addSql("DELETE FROM `std_pages` WHERE `id`=@menu_child_page;");
$this->addSql("SET @id_content_type = (SELECT id FROM `std_content_types` WHERE `machine_name` = 'private_area');");
$this->addSql("DELETE FROM `std_friendly_url` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_pages_pages` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_page_web_role` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_pages_content` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_favorite_pages_users` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_menus_friendly_url` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_page_web_role` WHERE page_id IN(SELECT id FROM std_pages WHERE `content_type`=@id_content_type AND `name`='Notificações');");
$this->addSql("DELETE FROM `std_pages` WHERE `content_type`=@id_content_type AND `name`='Notificações';");
$this->addSql("DELETE FROM `std_config` where machine_name= 'notifications_pages';");
}
}