migrations/Version20231122140744.php line 1

Open in your IDE?
  1. <?php
  2. /**
  3.  * @noinspection PhpUnused
  4.  * @noinspection PhpInternalEntityUsedInspection
  5.  */
  6. declare(strict_types=1);
  7. namespace DoctrineMigrations;
  8. use App\Entity\Api\CoreModule\User;
  9. use App\Migrations\ContainerInjectionInterface;
  10. use App\Migrations\ContainerInjectionTrait;
  11. use App\Repository\Api\CoreModule\UserRepository;
  12. use App\Validator\Constraints\Api\CoreModule\User\Attributes\BrightnessModeCompound;
  13. use App\Validator\Constraints\Api\CoreModule\User\Options;
  14. use Doctrine\DBAL\Schema\Schema;
  15. use Doctrine\Migrations\AbstractMigration;
  16. /**
  17.  * Auto-generated Migration: Please modify to your needs!
  18.  *
  19.  * @package API
  20.  * @internal
  21.  */
  22. final class Version20231122140744 extends AbstractMigration implements ContainerInjectionInterface
  23. {
  24.     use ContainerInjectionTrait;
  25.     public function down(Schema $schema): void
  26.     {
  27.         $userRepository $this->container->get('doctrine.orm.entity_manager')->getRepository(User::class);
  28.         /* @var UserRepository $userRepository */
  29.         $userIds $userRepository->getAllIds();
  30.         foreach ($userIds as $userId) {
  31.             $user $userRepository->getEntity($userId);
  32.             /* @var User $user */
  33.             $options json_decode($user->getOptions(), true);
  34.             if (isset($options[Options::BRIGHTNESS_MODE_OPTION_KEY])) {
  35.                 unset($options[Options::BRIGHTNESS_MODE_OPTION_KEY]);
  36.             }
  37.             $user->setOptions(json_encode($options));
  38.             $userRepository->persist($userfalsefalse);
  39.         }
  40.     }
  41.     public function getDescription(): string
  42.     {
  43.         return
  44.             "- Updates users with brightness mode option.";
  45.     }
  46.     public function up(Schema $schema): void
  47.     {
  48.         $userRepository $this->container->get('doctrine.orm.entity_manager')->getRepository(User::class);
  49.         /* @var UserRepository $userRepository */
  50.         $userIds $userRepository->getAllIds();
  51.         foreach ($userIds as $userId) {
  52.             $user $userRepository->getEntity($userId);
  53.             /* @var User $user */
  54.             $options json_decode($user->getOptions(), true);
  55.             if (!isset($options[Options::BRIGHTNESS_MODE_OPTION_KEY])) {
  56.                 $options[Options::BRIGHTNESS_MODE_OPTION_KEY] = BrightnessModeCompound::BRIGHTNESS_MODE_DEFAULT_VALUE;
  57.                 ksort($options);
  58.             }
  59.             $user->setOptions(json_encode($options));
  60.             $userRepository->persist($user);
  61.         }
  62.     }
  63. }