import { MigrationInterface, QueryRunner } from "typeorm"

export class AlterTeamMemberAddCityTable1743400947145 implements MigrationInterface {
  name = "AlterTeamMemberAddCityTable1743400947145"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "countries" ("id" SERIAL NOT NULL, "name" character varying NOT NULL, CONSTRAINT "UQ_fa1376321185575cf2226b1491d" UNIQUE ("name"), CONSTRAINT "PK_b2d7006793e8697ab3ae2deff18" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" ADD "business_vertical_id" integer`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" DROP COLUMN "employment_type"`,
    )
    await queryRunner.query(
      `DROP TYPE "public"."team_members_employment_type_enum"`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" ADD "employment_type" character varying NOT NULL DEFAULT 'on-roll'`,
    )
    await queryRunner.query(`ALTER TABLE "team_members" DROP COLUMN "status"`)
    await queryRunner.query(`DROP TYPE "public"."team_members_status_enum"`)
    await queryRunner.query(
      `ALTER TABLE "team_members" ADD "status" character varying NOT NULL DEFAULT 'active'`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" ADD CONSTRAINT "FK_8ee7292a863efa9a6e4a3147fa2" FOREIGN KEY ("business_vertical_id") REFERENCES "business_verticals"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "team_members" DROP CONSTRAINT "FK_8ee7292a863efa9a6e4a3147fa2"`,
    )
    await queryRunner.query(`ALTER TABLE "team_members" DROP COLUMN "status"`)
    await queryRunner.query(
      `CREATE TYPE "public"."team_members_status_enum" AS ENUM('active', 'inactive')`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" ADD "status" "public"."team_members_status_enum" NOT NULL DEFAULT 'active'`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" DROP COLUMN "employment_type"`,
    )
    await queryRunner.query(
      `CREATE TYPE "public"."team_members_employment_type_enum" AS ENUM('on-role', 'contract')`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" ADD "employment_type" "public"."team_members_employment_type_enum" NOT NULL DEFAULT 'on-role'`,
    )
    await queryRunner.query(
      `ALTER TABLE "team_members" DROP COLUMN "business_vertical_id"`,
    )
    await queryRunner.query(`DROP TABLE "countries"`)
  }
}
