import { MigrationInterface, QueryRunner } from "typeorm"

export class AddIncidentReportingTable1754373280490 implements MigrationInterface {
  name = "AddIncidentReportingTable1754373280490"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "incident_reportings" ("id" SERIAL NOT NULL, "fleet_id" integer, "trip_id" integer, "issue_type_id" integer NOT NULL, "driver_id" integer NOT NULL, "issue_title" character varying NOT NULL, "created_date" character varying NOT NULL, "created_time" character varying NOT NULL, "created_at" TIMESTAMP NOT NULL DEFAULT NOW(), "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(), "deleted_at" TIMESTAMP, CONSTRAINT "PK_1439cdaed71f08a4ebc3aaf0ec3" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" ADD CONSTRAINT "FK_d51b44364047690a413c2755df1" FOREIGN KEY ("driver_id") REFERENCES "team_members"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" ADD CONSTRAINT "FK_587a02badc2ad6deb17a367966b" FOREIGN KEY ("fleet_id") REFERENCES "fleet_operations"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" ADD CONSTRAINT "FK_42490b41de58287235aa52806ae" FOREIGN KEY ("trip_id") REFERENCES "trips"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" ADD CONSTRAINT "FK_386e9860f23fb669b18de6d8c2b" FOREIGN KEY ("issue_type_id") REFERENCES "incident_types"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" DROP CONSTRAINT "FK_386e9860f23fb669b18de6d8c2b"`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" DROP CONSTRAINT "FK_42490b41de58287235aa52806ae"`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" DROP CONSTRAINT "FK_587a02badc2ad6deb17a367966b"`,
    )
    await queryRunner.query(
      `ALTER TABLE "incident_reportings" DROP CONSTRAINT "FK_d51b44364047690a413c2755df1"`,
    )
    await queryRunner.query(`DROP TABLE "incident_reportings"`)
  }
}
