import { MigrationInterface, QueryRunner } from "typeorm"

export class AddNewFieldsToEmployeeModule1776153040502 implements MigrationInterface {
  name = "AddNewFieldsToEmployeeModule1776153040502"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "personal_email" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "emergency_contact_name" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "emergency_contact_relationship" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "emergency_contact_number" character varying(20)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "permanent_address" text`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "pincode" character varying(10)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "previous_company_name" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "previous_designation" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "last_salary" numeric(10,2)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "bank_name" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "account_number" character varying(50)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "ifsc_code" character varying(50)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "account_holder_name" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "uan" character varying(500)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "offer_letter" character varying(500)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "appointment_letter" character varying(500)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "id_proof" character varying(500)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "address_proof" character varying(500)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD "education_certificates" character varying(500)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" ADD "employee_number" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" ADD CONSTRAINT "UQ_8878710dc844ecd6f9e587f34fc" UNIQUE ("employee_number")`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" ADD "work_location" character varying(255)`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" ADD "probation_period" integer`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" ADD "notice_period" integer`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "employees" DROP COLUMN "notice_period"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" DROP COLUMN "probation_period"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" DROP COLUMN "work_location"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" DROP CONSTRAINT "UQ_8878710dc844ecd6f9e587f34fc"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employees" DROP COLUMN "employee_number"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "education_certificates"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "address_proof"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "id_proof"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "appointment_letter"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "offer_letter"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "uan"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "account_holder_name"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "ifsc_code"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "account_number"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "bank_name"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "last_salary"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "previous_designation"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "previous_company_name"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "pincode"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "permanent_address"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "emergency_contact_number"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "emergency_contact_relationship"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "emergency_contact_name"`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" DROP COLUMN "personal_email"`,
    )
  }
}
