<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260529000000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add SEO Page entries for contact, mentions légales, plan du site and confidentialité';
}
public function up(Schema $schema): void
{
$pages = [
['controller' => 'App\Controller\FrontController::contact', 'title' => 'Contact'],
['controller' => 'App\Controller\FrontController::privacyPolicy', 'title' => 'Mentions légales'],
['controller' => 'App\Controller\FrontController::sitemapLinks', 'title' => 'Plan du site'],
['controller' => 'App\Controller\FrontController::confidentiality', 'title' => 'Confidentialité'],
];
foreach ($pages as $page) {
$this->addSql(
'INSERT INTO page (controller) VALUES (?)',
[$page['controller']]
);
$this->addSql(
'INSERT INTO page_translation (translatable_id, locale, title) VALUES (LAST_INSERT_ID(), ?, ?)',
['fr', $page['title']]
);
}
}
public function down(Schema $schema): void
{
$controllers = [
'App\Controller\FrontController::contact',
'App\Controller\FrontController::privacyPolicy',
'App\Controller\FrontController::sitemapLinks',
'App\Controller\FrontController::confidentiality',
];
foreach ($controllers as $controller) {
$this->addSql(
'DELETE pt FROM page_translation pt
JOIN page p ON pt.translatable_id = p.id
WHERE p.controller = ?',
[$controller]
);
$this->addSql('DELETE FROM page WHERE controller = ?', [$controller]);
}
}
}