import { MigrationInterface, QueryRunner } from 'typeorm';

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

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`CREATE TABLE IF NOT EXISTS \`freeway_tolls\` (
            \`id\` INT(11) NOT NULL AUTO_INCREMENT,
            \`userId\` CHAR(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            \`carId\` INT(11) NOT NULL,
            \`paymentId\` INT(11) NULL DEFAULT NULL,
            \`freewayTollAmount\` INT(11) NULL DEFAULT NULL,
            \`inquiryAmount\` INT(11) NOT NULL,
            \`status\` ENUM('pending', 'paid_inquiry', 'inquired', 'paid_freeway_toll') NOT NULL DEFAULT 'pending',
            \`plateNumber\` VARCHAR(128) NOT NULL,
            \`createdAt\` DATETIME NOT NULL,
            \`updatedAt\` DATETIME NOT NULL,
            PRIMARY KEY (\`id\`),
            INDEX \`fk_freeway_toll_users1_idx\` (\`userId\` ASC),
            INDEX \`fk_freeway_toll_cars1_idx\` (\`carId\` ASC),
            INDEX \`fk_freeway_toll_payments1_idx\` (\`paymentId\` ASC),
            CONSTRAINT \`fk_freeway_toll_users1\`
              FOREIGN KEY (\`userId\`)
              REFERENCES \`users\` (\`id\`)
              ON DELETE NO ACTION
              ON UPDATE NO ACTION,
            CONSTRAINT \`fk_freeway_toll_cars1\`
              FOREIGN KEY (\`carId\`)
              REFERENCES \`cars\` (\`id\`)
              ON DELETE NO ACTION
              ON UPDATE NO ACTION,
            CONSTRAINT \`fk_freeway_toll_payments1\`
              FOREIGN KEY (\`paymentId\`)
              REFERENCES \`payments\` (\`id\`)
              ON DELETE NO ACTION
              ON UPDATE NO ACTION)
          ENGINE = InnoDB
          DEFAULT CHARACTER SET = utf8;`);

    await queryRunner.query(`CREATE TABLE IF NOT EXISTS \`freeway_toll_bills\` (
            \`id\` INT(11) NOT NULL AUTO_INCREMENT,
            \`freewayTollId\` INT(11) NOT NULL,
            \`amount\` INT(11) NULL DEFAULT NULL,
            \`fee\` INT(11) NULL DEFAULT NULL,
            \`freeway\` VARCHAR(128) NULL DEFAULT NULL,
            \`totalAmount\` INT(11) NULL DEFAULT NULL,
            \`paymentStatus\` VARCHAR(45) NULL DEFAULT NULL,
            \`paymentStatusShowName\` VARCHAR(45) NULL DEFAULT NULL,
            \`issueDateTime\` VARCHAR(45) NULL DEFAULT NULL,
            \`traverseDateTime\` VARCHAR(45) NULL DEFAULT NULL,
            \`uniqueId\` VARCHAR(128) NULL DEFAULT NULL,
            PRIMARY KEY (\`id\`),
            INDEX \`fk_freeway_toll_bills_freeway_tolls1_idx\` (\`freewayTollId\` ASC),
            CONSTRAINT \`fk_freeway_toll_bills_freeway_tolls1\`
                FOREIGN KEY (\`freewayTollId\`)
                REFERENCES \`freeway_tolls\` (\`id\`)
                ON DELETE NO ACTION
                ON UPDATE NO ACTION)
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8;`);
  }

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