import { MigrationInterface, QueryRunner } from "typeorm"

export class CreateTripFleetAssignmentTable1752668207948 implements MigrationInterface {
  name = "CreateTripFleetAssignmentTable1752668207948"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "trip_fleet_assignments" ("id" SERIAL NOT NULL, "trip_id" integer NOT NULL, "fleet_id" integer NOT NULL, "driver_id" integer NOT NULL, "assigned_at" TIMESTAMP NOT NULL DEFAULT now(), "released_at" TIMESTAMP, CONSTRAINT "PK_e4052041d2a966f204d78b5883f" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "trip_fleet_assignments" ADD CONSTRAINT "FK_4ec11638ab137efd67788343ed6" FOREIGN KEY ("trip_id") REFERENCES "trips"("id") ON DELETE CASCADE 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`,
    )
    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" DROP CONSTRAINT "FK_4ec11638ab137efd67788343ed6"`,
    )
    await queryRunner.query(`DROP TABLE "trip_fleet_assignments"`)
  }
}
