vendor/bluue/stocks-bundle/migrations/Version20231205125131.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace StocksBundleMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. use Symfony\Component\Uid\UuidV6;
  7. final class Version20231205125131 extends AbstractMigration
  8. {
  9.     private $stockMovements = [];
  10.     public function preUp(Schema $schema): void
  11.     {
  12.         $this->stockMovements $this->connection->executeQuery('SELECT * FROM stocks_bundle__stock_movement')->fetchAllAssociative();
  13.     }
  14.     public function up(Schema $schema): void
  15.     {
  16.         $this->addSql('ALTER TABLE stocks_bundle__stock_movement ADD entity_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD entity_name VARCHAR(255) DEFAULT NULL');
  17.         $this->addSql('CREATE INDEX entity_id ON stocks_bundle__stock_movement (entity_id)');
  18.         $this->addSql('CREATE INDEX entity_name ON stocks_bundle__stock_movement (entity_name)');
  19.     }
  20.     public function postUp(Schema $schema): void
  21.     {
  22.         parent::postUp($schema);
  23.         $conn $this->connection;
  24.         foreach ($this->stockMovements as $sm) {
  25.             $smId UuidV6::fromBinary($sm['id'])->toRfc4122();
  26.             if (isset($sm['product_return_line_id']) && $sm['product_return_line_id']) {
  27.                 $uuid '0x' str_replace('-'''UuidV6::fromBinary($sm['product_return_line_id'])->toRfc4122());
  28.                 $conn->executeStatement("UPDATE stocks_bundle__stock_movement SET entity_name = 'Bluue\\\\ProductReturnsBundle\\\\Entity\\\\ProductReturnLine', entity_id = " $uuid " WHERE id = UNHEX(CONCAT('', REPLACE('" $smId "', '-', '')))");
  29.             }
  30.             if (isset($sm['delivery_note_line_id']) && $sm['delivery_note_line_id']) {
  31.                 $uuid '0x' str_replace('-'''UuidV6::fromBinary($sm['delivery_note_line_id'])->toRfc4122());
  32.                 $conn->executeStatement("UPDATE stocks_bundle__stock_movement SET entity_name = 'Bluue\\\\SalesBundle\\\\Entity\\\\DeliveryNoteLine', entity_id = " $uuid " WHERE id = UNHEX(CONCAT('', REPLACE('" $smId "', '-', '')))");
  33.             }
  34.             if (isset($sm['delivery_note_id']) && $sm['delivery_note_id'] && !$sm['delivery_note_line_id']) {
  35.                 $uuid '0x' str_replace('-'''UuidV6::fromBinary($sm['delivery_note_id'])->toRfc4122());
  36.                 $conn->executeStatement("UPDATE stocks_bundle__stock_movement SET entity_name = 'Bluue\\\\SalesBundle\\\\Entity\\\\DeliveryNote', entity_id = " $uuid " WHERE id = UNHEX(CONCAT('', REPLACE('" $smId "', '-', '')))");
  37.             }
  38.         }
  39.     }
  40.     public function down(Schema $schema): void
  41.     {
  42.         $this->addSql('DROP INDEX entity_id ON stocks_bundle__stock_movement');
  43.         $this->addSql('DROP INDEX entity_name ON stocks_bundle__stock_movement');
  44.         $this->addSql('ALTER TABLE stocks_bundle__stock_movement ADD delivery_note_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD delivery_note_line_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD product_return_line_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', DROP entity_id, DROP entity_name');
  45.         $this->addSql('ALTER TABLE stocks_bundle__stock_movement ADD CONSTRAINT FK_11E6623A535E48DC FOREIGN KEY (delivery_note_line_id) REFERENCES sales_bundle__delivery_note_line (id)');
  46.         $this->addSql('ALTER TABLE stocks_bundle__stock_movement ADD CONSTRAINT FK_11E6623A2CF3B78B FOREIGN KEY (delivery_note_id) REFERENCES sales_bundle__delivery_note (id)');
  47.         $this->addSql('ALTER TABLE stocks_bundle__stock_movement ADD CONSTRAINT FK_11E6623A83A19B1 FOREIGN KEY (product_return_line_id) REFERENCES product_returns_bundle__product_return_line (id)');
  48.         $this->addSql('CREATE INDEX IDX_11E6623A2CF3B78B ON stocks_bundle__stock_movement (delivery_note_id)');
  49.         $this->addSql('CREATE INDEX IDX_11E6623A83A19B1 ON stocks_bundle__stock_movement (product_return_line_id)');
  50.         $this->addSql('CREATE INDEX IDX_11E6623A535E48DC ON stocks_bundle__stock_movement (delivery_note_line_id)');
  51.     }
  52. }