import { MigrationInterface, QueryRunner } from "typeorm"

export class AddClientCompaniesTable1750772040563 implements MigrationInterface {
  name = "AddClientCompaniesTable1750772040563"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "clients_companies" ("id" SERIAL NOT NULL, "company_name" character varying NOT NULL, "address_line_1" character varying, "address_line_2" character varying, "city_id" integer, "state_id" integer, "country_id" integer, "zip_code" character varying, "phone_number" character varying NOT NULL, "country_code" character varying NOT NULL, "email" character varying NOT NULL, "website_url" character varying, "is_medical_patient" boolean NOT NULL DEFAULT false, "client_type_id" integer NOT NULL, "status" character varying NOT NULL DEFAULT 'active', "created_at" TIMESTAMP NOT NULL DEFAULT NOW(), "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(), "deleted_at" TIMESTAMP, CONSTRAINT "PK_63232808136f5545ad4efb4bbea" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" ADD CONSTRAINT "FK_c29c38e79ffed03981dd42b93a5" FOREIGN KEY ("city_id") REFERENCES "cities"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" ADD CONSTRAINT "FK_d3bc699cb1c7b7ac5ec73a04a26" FOREIGN KEY ("state_id") REFERENCES "states"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" ADD CONSTRAINT "FK_e96a80d509a3dbd42040df457cc" FOREIGN KEY ("country_id") REFERENCES "countries"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" ADD CONSTRAINT "FK_c6df44f06f41558a4c670e71509" FOREIGN KEY ("client_type_id") REFERENCES "client_types"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "clients_companies" DROP CONSTRAINT "FK_c6df44f06f41558a4c670e71509"`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" DROP CONSTRAINT "FK_e96a80d509a3dbd42040df457cc"`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" DROP CONSTRAINT "FK_d3bc699cb1c7b7ac5ec73a04a26"`,
    )
    await queryRunner.query(
      `ALTER TABLE "clients_companies" DROP CONSTRAINT "FK_c29c38e79ffed03981dd42b93a5"`,
    )
    await queryRunner.query(`DROP TABLE "clients_companies"`)
  }
}
