import { MigrationInterface, QueryRunner } from "typeorm"

export class AddVehiclePricingTable1755516447608 implements MigrationInterface {
  name = "AddVehiclePricingTable1755516447608"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "vehicle_pricing" ("id" SERIAL NOT NULL, "plan_id" integer NOT NULL, "vehicle_type_id" integer NOT NULL, "service_type_id" integer NOT NULL, "city_id" integer, "price" character varying NOT NULL, "created_at" TIMESTAMP NOT NULL DEFAULT now(), "updated_at" TIMESTAMP NOT NULL DEFAULT now(), "deleted_at" TIMESTAMP, CONSTRAINT "PK_e908141804a4ffd752cd65acb5b" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" ADD CONSTRAINT "FK_09ac18f2044ab1348fcfa6e4221" FOREIGN KEY ("plan_id") REFERENCES "pricing_plans"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" ADD CONSTRAINT "FK_683e1343e49c925435dc010158c" FOREIGN KEY ("service_type_id") REFERENCES "trip_types"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" ADD CONSTRAINT "FK_00512e467286f97683805b71aae" FOREIGN KEY ("city_id") REFERENCES "cities"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" ADD CONSTRAINT "FK_9f99fa42cd26c290005b66bc5df" FOREIGN KEY ("vehicle_type_id") REFERENCES "vehicle_types"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" DROP CONSTRAINT "FK_9f99fa42cd26c290005b66bc5df"`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" DROP CONSTRAINT "FK_00512e467286f97683805b71aae"`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" DROP CONSTRAINT "FK_683e1343e49c925435dc010158c"`,
    )
    await queryRunner.query(
      `ALTER TABLE "vehicle_pricing" DROP CONSTRAINT "FK_09ac18f2044ab1348fcfa6e4221"`,
    )
    await queryRunner.query(`DROP TABLE "vehicle_pricing"`)
  }
}
