<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use App\Entity\SectionalEvaluation;
use App\Entity\SectionalEvaluationDescription;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
use Doctrine\ORM\EntityManager;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
final class Version20221026180015 extends AbstractMigration implements ContainerAwareInterface
{
private EntityManager $em;
private ContainerInterface $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
$this->em = $container->get('doctrine')->getManager();
}
private const DATA = [
'Rapidité de déploiement' => [
'Plus de 9 mois',
'6 à 9 mois',
'3 à 6 mois',
'0 à 3 mois',
],
'Qualité du support' => [
'Pas de support proposé',
'Des formations standards',
'Des formations standards + support de formation + mise à disposition d’un outil de ticketing',
'Des formations spécifique proposées, mise à disposition d’une hotline + un outil de ticketing',
],
];
public function getDescription(): string
{
return 'add description evaluation';
}
public function up(Schema $schema): void
{
}
public function postUp(Schema $schema): void
{
foreach (self::DATA as $sectionalEvaluationName => $sectionalEvaluationDescriptions) {
$sectionalEvaluation = $this->em->getRepository(SectionalEvaluation::class)->findOneBy(['name' => $sectionalEvaluationName]);
if ($sectionalEvaluation) {
$index = 0;
foreach ($sectionalEvaluationDescriptions as $sectionalEvaluationDescription) {
++$index;
$sectionalEvaluation
->addDescription(
(new SectionalEvaluationDescription())
->setDescription($sectionalEvaluationDescription)
->setLevel($index)
);
if (4 === $index) {
$index = 0;
}
}
$this->em->persist($sectionalEvaluation);
}
}
$this->em->flush();
}
public function down(Schema $schema): void
{
}
}