<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20250523211814 extends AbstractMigration
{
public function getDescription(): string
{
return 'Create std_pages_tracking and std_tag_tracking tables';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE std_cookies ADD analytics_accepted TINYINT(1) NOT NULL COMMENT \'Analytics cookies accepted\', CHANGE webuser_id webuser_id INT UNSIGNED DEFAULT NULL COMMENT \'Unique identifier\', CHANGE funcional_accepted funcional_accepted TINYINT(1) NOT NULL COMMENT \'Tracking cookies accepted\'');
$this->addSql('CREATE TABLE std_pages_tracking (
id INT AUTO_INCREMENT NOT NULL,
page_id INT UNSIGNED DEFAULT NULL COMMENT \'Page unique identifier\',
visited_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\',
session_hash VARCHAR(255) DEFAULT NULL,
hashed_ip VARCHAR(255) NOT NULL,
fingerprint VARCHAR(255) NOT NULL,
INDEX IDX_6BDCE781C4663E4 (page_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE std_pages_tracking ADD CONSTRAINT FK_6BDCE781C4663E4 FOREIGN KEY (page_id) REFERENCES std_pages (id)');
$this->addSql('CREATE TABLE std_tag_tracking (
id INT AUTO_INCREMENT NOT NULL,
tag_id INT DEFAULT NULL,
tracking_id INT NOT NULL,
PRIMARY KEY(id),
INDEX IDX_D97E20D3BAD26311 (tag_id),
INDEX IDX_D97E20D37D05ABBE (tracking_id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE std_tag_tracking ADD CONSTRAINT FK_D97E20D3BAD26311 FOREIGN KEY (tag_id) REFERENCES std_pages_tags (id)');
$this->addSql('ALTER TABLE std_tag_tracking ADD CONSTRAINT FK_D97E20D37D05ABBE FOREIGN KEY (tracking_id) REFERENCES std_pages_tracking (id)');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE std_cookies DROP analytics_accepted, CHANGE webuser_id webuser_id INT UNSIGNED DEFAULT NULL COMMENT \'Web user unique identifider\', CHANGE funcional_accepted funcional_accepted TINYINT(1) DEFAULT 0 NOT NULL COMMENT \'Tracking cookies accepted\'');
$this->addSql('ALTER TABLE std_tag_tracking DROP FOREIGN KEY FK_D97E20D3BAD26311');
$this->addSql('ALTER TABLE std_tag_tracking DROP FOREIGN KEY FK_D97E20D37D05ABBE');
$this->addSql('DROP TABLE std_tag_tracking');
$this->addSql('ALTER TABLE std_pages_tracking DROP FOREIGN KEY FK_6BDCE781C4663E4');
$this->addSql('DROP TABLE std_pages_tracking');
}
}