migrations/Version20241119080313.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. final class Version20241119080313 extends AbstractMigration
  7. {
  8.     public function getDescription(): string
  9.     {
  10.         return 'Add the free payment method';
  11.     }
  12.     public function up(Schema $schema): void
  13.     {
  14.         $this->addSql("INSERT INTO `gateway_config` (`id`, `config`) VALUES (null, '[]')");
  15.         $this->addSql('INSERT INTO `payment_method_config` (`id`, `gateway_config_id`, `code`, `name`, `enabled`, `type`, `created_at`, `updated_at`) (SELECT NULL, (SELECT MAX(id) FROM gateway_config), "free", "Product offer", "1", "offline", NOW(), NOW())');
  16.         $this->addSql("INSERT INTO `gateway_config` (`id`, `config`) VALUES (null, '[]')");
  17.         $this->addSql(
  18.             "INSERT INTO `payment_method`(`id`, `shop_id`, `payemnt_menthod_config_id`, `gateway_config_id`, `position`, `enabled`, `created_at`, `updated_at`, `deleted`, `deleted_at`, `kiosk_only`, `anonymous_authorized`) 
  19.             VALUES (null, null, (SELECT MAX(id) FROM payment_method_config), (SELECT MAX(id) FROM gateway_config), 0, 1, NOW(), NOW(), 0, null, 0, 0)"
  20.         );
  21.     }
  22.     public function down(Schema $schema): void
  23.     {
  24.         $freePaymentMethodConfig $this->connection->fetchAllAssociative('SELECT id, gateway_config_id FROM payment_method_config pmc WHERE pmc.code = "free"')[0];
  25.         $paymentMethod $this->connection->fetchAllAssociative("SELECT * FROM payment_method pm WHERE pm.payemnt_menthod_config_id = {$freePaymentMethodConfig['id']}")[0];
  26.         $this->addSql("DELETE FROM `payment_method` WHERE id = {$paymentMethod['id']}");
  27.         $this->addSql('DELETE FROM `payment_method_config` WHERE code = "free"');
  28.         $this->addSql("DELETE FROM `gateway_config` WHERE id = {$freePaymentMethodConfig['gateway_config_id']} OR id = {$paymentMethod['gateway_config_id']}");
  29.     }
  30. }