import { MigrationInterface, QueryRunner } from "typeorm"

export class AddHospitalContactTable1750409608184 implements MigrationInterface {
  name = "AddHospitalContactTable1750409608184"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "hospital_contacts" ("id" SERIAL NOT NULL, "name" character varying NOT NULL, "position" character varying, "department" character varying, "email" character varying, "phone_number" character varying, "is_primary" boolean NOT NULL DEFAULT false, "hospital_id" integer NOT NULL, "created_at" TIMESTAMP NOT NULL DEFAULT NOW(), "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(), "deleted_at" TIMESTAMP, CONSTRAINT "PK_7498f4a3c9d89e0a1d8197db71e" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(`ALTER TABLE "permissions" DROP COLUMN "status"`)
    await queryRunner.query(`ALTER TABLE "permissions" ADD "status" integer`)
    await queryRunner.query(
      `ALTER TABLE "hospital_contacts" ADD CONSTRAINT "FK_0d69ce9359e238a2f39b05a0f51" FOREIGN KEY ("hospital_id") REFERENCES "hospitals"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "hospital_contacts" DROP CONSTRAINT "FK_0d69ce9359e238a2f39b05a0f51"`,
    )
    await queryRunner.query(`ALTER TABLE "permissions" DROP COLUMN "status"`)
    await queryRunner.query(
      `ALTER TABLE "permissions" ADD "status" smallint DEFAULT '1'`,
    )
    await queryRunner.query(`DROP TABLE "hospital_contacts"`)
  }
}
