import { MigrationInterface, QueryRunner } from 'typeorm';

export class changePaymentFields1691617015331 implements MigrationInterface {
  name = 'changePaymentFields1691617015331';

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`ALTER TABLE \`driving_offenses\` 
DROP FOREIGN KEY \`fk_driving_offenses_payments1\`;`);

    await queryRunner.query(`ALTER TABLE \`negative_scores\` 
DROP FOREIGN KEY \`fk_negative_scores_payments1\`;`);

    await queryRunner.query(`ALTER TABLE \`driving_offenses\` 
CHANGE COLUMN \`paymentId\` \`paymentInquiryId\` INT(11) NULL DEFAULT NULL ;`);

    await queryRunner.query(`ALTER TABLE \`freeway_tolls\` 
ADD COLUMN \`paymentInquiryId\` INT(11) NULL DEFAULT NULL AFTER \`carId\`;`);

    await queryRunner.query(`ALTER TABLE \`negative_scores\` 
CHANGE COLUMN \`paymentId\` \`paymentInquiryId\` INT(11) NULL DEFAULT NULL ;`);

    await queryRunner.query(`ALTER TABLE \`payments\` 
CHANGE COLUMN \`type\` \`type\` ENUM('shop', 'service', 'oil_gov_service', 'oil_gov_shop', 'freeway_inquiry', 'offense_inquiry', 'negative_inquiry') NULL DEFAULT NULL ;`);

    await queryRunner.query(`ALTER TABLE \`siteinfos\` 
CHANGE COLUMN \`drivingOffenseInquiryBasic\` \`drivingOffenseInquiryBasicAmount\` INT(11) NOT NULL DEFAULT '0' ,
CHANGE COLUMN \`drivingOffenseInquiryAdvanced\` \`drivingOffenseInquiryAdvancedAmount\` INT(11) NOT NULL DEFAULT '0' ,
CHANGE COLUMN \`negativeScoreInquiryBasic\` \`negativeScoreInquiryBasicAmount\` INT(11) NOT NULL DEFAULT '0' ,
CHANGE COLUMN \`negativeScoreInquiryAdvanced\` \`negativeScoreInquiryAdvancedAmount\` INT(11) NOT NULL DEFAULT '0' ,
CHANGE COLUMN \`freewayTollInquiry\` \`freewayTollInquiryAmount\` INT(11) NOT NULL DEFAULT '0' ;`);

    await queryRunner.query(`ALTER TABLE \`driving_offenses\` 
ADD CONSTRAINT \`fk_driving_offenses_payments1\`
  FOREIGN KEY (\`paymentInquiryId\`)
  REFERENCES \`payments\` (\`id\`);`);

    await queryRunner.query(`ALTER TABLE \`negative_scores\` 
ADD CONSTRAINT \`fk_negative_scores_payments1\`
  FOREIGN KEY (\`paymentInquiryId\`)
  REFERENCES \`payments\` (\`id\`);`);

    await queryRunner.query(`ALTER TABLE \`freeway_tolls\` 
ADD INDEX \`fk_freeway_tolls_payments1_idx\` (\`paymentInquiryId\` ASC);`);

    await queryRunner.query(`ALTER TABLE \`freeway_tolls\` 
ADD CONSTRAINT \`fk_freeway_tolls_payments1\`
  FOREIGN KEY (\`paymentInquiryId\`)
  REFERENCES \`payments\` (\`id\`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;`);
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    //
  }
}
