migrations/Version20230426152301.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\DBAL\Types\Types;
  6. use Doctrine\Migrations\AbstractMigration;
  7. final class Version20230426152301 extends AbstractMigration
  8. {
  9.     public function getDescription(): string
  10.     {
  11.         return '';
  12.     }
  13.     public function preUp(Schema $schema): void
  14.     {
  15.         $this->connection->executeQuery('DELETE FROM member_application WHERE original_data_id IS NOT NULL');
  16.     }
  17.     public function up(Schema $schema): void
  18.     {
  19.         $this->skipIf(
  20.             true === $schema->getTable('member_application')->hasColumn('member_application_original_data_id'),
  21.             'The member_application_original_data_id field was already added in the member_application table!'
  22.         );
  23.         $memberApplicationTable $schema->getTable('member_application');
  24.         if ($memberApplicationTable->hasIndex('uniq_member_application_original_data_id')) {
  25.             $memberApplicationTable->dropIndex('uniq_member_application_original_data_id');
  26.         }
  27.         $memberApplicationTable->dropColumn('original_data_id');
  28.         $originalDataTable $schema->createTable('member_application_original_data');
  29.         $originalDataTable->addColumn('id'Types::INTEGER, ['notnull' => true]);
  30.         $originalDataTable->addColumn('member_application_id'Types::INTEGER, ['notnull' => true]);
  31.         $originalDataTable->addColumn('health_insurance_id'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  32.         $originalDataTable->addColumn('health_mutual_id'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  33.         $originalDataTable->addColumn('subscription_plan_id'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  34.         $originalDataTable->addColumn('company_id'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  35.         $originalDataTable->addColumn('resource_id'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  36.         $originalDataTable->addColumn('type'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  37.         $originalDataTable->addColumn('last_name'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  38.         $originalDataTable->addColumn('first_name'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  39.         $originalDataTable->addColumn('sex'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  40.         $originalDataTable->addColumn('birth_date'Types::DATETIME_IMMUTABLE, ['notnull' => false'default' => null]);
  41.         $originalDataTable->addColumn('civil_status'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  42.         $originalDataTable->addColumn('civil_status_certificate'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  43.         $originalDataTable->addColumn('social_security_number'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  44.         $originalDataTable->addColumn('is_previously_cmcm_member'Types::BOOLEAN, ['notnull' => true'default' => false]);
  45.         $originalDataTable->addColumn('affiliate_number'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  46.         $originalDataTable->addColumn('phone_number'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  47.         $originalDataTable->addColumn('mobile_number'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  48.         $originalDataTable->addColumn('fax_number'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  49.         $originalDataTable->addColumn('email'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  50.         $originalDataTable->addColumn('iban'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  51.         $originalDataTable->addColumn('financial_institution'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  52.         $originalDataTable->addColumn('has_health_mutual'Types::BOOLEAN, ['notnull' => true'default' => false]);
  53.         $originalDataTable->addColumn('creditor_identification'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  54.         $originalDataTable->addColumn('mandate_reference'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  55.         $originalDataTable->addColumn('contract_number'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  56.         $originalDataTable->addColumn('comment'Types::TEXT, ['notnull' => false'default' => null]);
  57.         $originalDataTable->addColumn('is_all_data_accepted'Types::BOOLEAN, ['notnull' => true'default' => false]);
  58.         $originalDataTable->addColumn('payment_frequency'Types::STRING, ['length' => 30'notnull' => false'default' => null]);
  59.         $originalDataTable->addColumn('language'Types::STRING, ['length' => 10'notnull' => false'default' => null]);
  60.         $originalDataTable->addColumn('address_certificate'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  61.         $originalDataTable->addColumn('has_complementary_health_insurance'Types::BOOLEAN, ['notnull' => true'default' => false]);
  62.         $originalDataTable->addColumn('complementary_health_insurance_name'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  63.         $originalDataTable->addColumn('complementary_health_insurance_certificate'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  64.         $originalDataTable->addColumn('health_insurance_certificate'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  65.         $originalDataTable->addColumn('bank_certificate'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  66.         $originalDataTable->addColumn('bic'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  67.         $originalDataTable->addColumn('member_ship_start_at'Types::DATETIME_IMMUTABLE, ['notnull' => false'default' => null]);
  68.         $originalDataTable->addColumn('insured_care_start_at'Types::DATETIME_IMMUTABLE, ['notnull' => false'default' => null]);
  69.         $originalDataTable->addColumn('is_general_condition_accepted'Types::BOOLEAN, ['notnull' => true'default' => false]);
  70.         $originalDataTable->addColumn('is_gdpr_accepted'Types::BOOLEAN, ['notnull' => true'default' => false]);
  71.         $originalDataTable->addColumn('has_signed_with_company'Types::BOOLEAN, ['notnull' => true'default' => false]);
  72.         $originalDataTable->addColumn('created_at'Types::DATETIME_IMMUTABLE, ['notnull' => false'default' => null]);
  73.         $originalDataTable->addColumn('deleted_at'Types::DATETIME_IMMUTABLE, ['notnull' => false'default' => null]);
  74.         $originalDataTable->addColumn('company_employee_identifier'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  75.         $originalDataTable->addColumn('email_confirmed_at'Types::DATETIME_IMMUTABLE, ['notnull' => false'default' => null]);
  76.         $originalDataTable->addColumn('house_number'Types::STRING, ['length' => 10'notnull' => false'default' => null]);
  77.         $originalDataTable->addColumn('street_line'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  78.         $originalDataTable->addColumn('street_line2'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  79.         $originalDataTable->addColumn('postal_code'Types::STRING, ['length' => 10'notnull' => false'default' => null]);
  80.         $originalDataTable->addColumn('city'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  81.         $originalDataTable->addColumn('country'Types::STRING, ['length' => 255'notnull' => false'default' => null]);
  82.         $originalDataTable->addColumn('member_application_co_members'Types::JSON, ['notnull' => false'default' => null]);
  83.         $originalDataTable->addForeignKeyConstraint('member_application', ['member_application_id'], ['id'], [], 'fk_member_application_id');
  84.         $originalDataTable->addForeignKeyConstraint('health_insurance', ['health_insurance_id'], ['id'], [], 'fk_health_insurance_id');
  85.         $originalDataTable->addForeignKeyConstraint('health_mutual', ['health_mutual_id'], ['id'], [], 'fk_health_mutual_id');
  86.         $originalDataTable->addForeignKeyConstraint('subscription_plan', ['subscription_plan_id'], ['id'], [], 'fk_subscription_plan_id');
  87.         $originalDataTable->addForeignKeyConstraint('company', ['company_id'], ['id'], [], 'fk_company_id');
  88.         $originalDataTable->setPrimaryKey(['id'], 'uniq_member_application_original_data_id');
  89.         $originalDataTable->addUniqueIndex(['resource_id'], 'uniq_member_application_original_data_resource_id');
  90.         $originalDataTable->addUniqueIndex(['member_application_id'], 'uniq_member_application_original_data_member_application_id');
  91.         $memberApplicationTable->addUniqueIndex(['resource_id'], 'uniq_member_application_resource_id');
  92.         $memberApplicationTable->addIndex(['health_insurance_id'], 'uniq_member_application_original_data_health_insurance_id');
  93.         $memberApplicationTable->addIndex(['health_mutual_id'], 'uniq_member_application_original_data_health_mutual_id');
  94.         $memberApplicationTable->addIndex(['subscription_plan_id'], 'uniq_member_application_original_data_subscription_plan_id');
  95.         $memberApplicationTable->addIndex(['company_id'], 'uniq_member_application_original_data_company_id');
  96.     }
  97.     public function down(Schema $schema): void
  98.     {
  99.         // Not handled as update won't be downgraded.
  100. //        $this->skipIf(
  101. //            false === $schema->getTable('member_application')->hasColumn('original_data_id'),
  102. //            'The original_data_id field was already removed from the member_application table!'
  103. //        );
  104. //
  105. //        $schema->getTable('member_application')->dropColumn('original_data_id');
  106. //
  107. //        $schema->getTable('member_application')->dropIndex(
  108. //            'uniq_member_application_original_data_id'
  109. //        );
  110.     }
  111. }