import { MigrationInterface, QueryRunner } from 'typeorm';

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

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`ALTER TABLE \`siteinfos\` 
ADD COLUMN \`minDeposit\` INT(11) NULL DEFAULT NULL AFTER \`minOrder\`,
ADD COLUMN \`maxDeposit\` INT(11) NULL DEFAULT NULL AFTER \`minDeposit\`;`);

    await queryRunner.query(`ALTER TABLE \`users\` 
ADD COLUMN \`virtualWallet\` INT(11) NOT NULL DEFAULT 0 AFTER \`address\`,
ADD COLUMN \`realWallet\` INT(11) NOT NULL DEFAULT 0 AFTER \`virtualWallet\`,
ADD COLUMN \`bankName\` VARCHAR(45) NULL DEFAULT NULL AFTER \`realWallet\`,
ADD COLUMN \`accountNumber\` VARCHAR(45) NULL DEFAULT NULL AFTER \`bankName\`,
ADD COLUMN \`cardNumber\` VARCHAR(45) NULL DEFAULT NULL AFTER \`accountNumber\`,
ADD COLUMN \`sheba\` VARCHAR(128) NULL DEFAULT NULL AFTER \`cardNumber\``);

    await queryRunner.query(`CREATE TABLE IF NOT EXISTS \`withdraw\` (
  \`id\` INT(11) NOT NULL AUTO_INCREMENT,
  \`userId\` CHAR(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  \`bankName\` VARCHAR(45) NULL DEFAULT NULL,
  \`accountNumber\` VARCHAR(45) NULL DEFAULT NULL,
  \`cardNumber\` VARCHAR(45) NULL DEFAULT NULL,
  \`sheba\` VARCHAR(128) NULL DEFAULT NULL,
  \`confirmCode\` VARCHAR(10) NULL DEFAULT NULL,
  \`amount\` INT(11) NOT NULL,
  \`status\` ENUM('temp', 'pending', 'done', 'rejected') NOT NULL DEFAULT 'temp',
  \`reasonRejected\` VARCHAR(255) NULL DEFAULT NULL,
  \`createdAt\` DATETIME NOT NULL,
  \`updatedAt\` DATETIME NOT NULL,
  PRIMARY KEY (\`id\`),
  INDEX \`fk_withdraw_users1_idx\` (\`userId\` ASC),
  CONSTRAINT \`fk_withdraw_users1\`
    FOREIGN KEY (\`userId\`)
    REFERENCES \`users\` (\`id\`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci`);
  }

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