import { MigrationInterface, QueryRunner } from "typeorm"

export class AlterFleetTripManagementTable1755166027055 implements MigrationInterface {
  name = "AlterFleetTripManagementTable1755166027055"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" DROP CONSTRAINT "FK_58137237f15064fbf7b21413693"`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" DROP CONSTRAINT "FK_e26829945fd63e166f8e00e7c0d"`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ALTER COLUMN "fleet_id" DROP NOT NULL`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ALTER COLUMN "driver_id" DROP NOT NULL`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ADD CONSTRAINT "FK_58137237f15064fbf7b21413693" FOREIGN KEY ("fleet_id") REFERENCES "fleet_operations"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ADD CONSTRAINT "FK_e26829945fd63e166f8e00e7c0d" FOREIGN KEY ("driver_id") REFERENCES "team_members"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" DROP CONSTRAINT "FK_e26829945fd63e166f8e00e7c0d"`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" DROP CONSTRAINT "FK_58137237f15064fbf7b21413693"`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ALTER COLUMN "driver_id" SET NOT NULL`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ALTER COLUMN "fleet_id" SET NOT NULL`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ADD CONSTRAINT "FK_e26829945fd63e166f8e00e7c0d" FOREIGN KEY ("driver_id") REFERENCES "team_members"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ADD CONSTRAINT "FK_58137237f15064fbf7b21413693" FOREIGN KEY ("fleet_id") REFERENCES "fleet_operations"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
  }
}
