import { MigrationInterface, QueryRunner } from "typeorm"

export class AddTripsLogsTable1763447623022 implements MigrationInterface {
  name = "AddTripsLogsTable1763447623022"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "trips_logs" ("id" SERIAL NOT NULL, "trip_id" integer NOT NULL, "episode_id" integer NOT NULL, "log_id" integer NOT NULL, "created_at" TIMESTAMP NOT NULL DEFAULT NOW(), "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(), "deleted_at" TIMESTAMP, CONSTRAINT "PK_06468bc8a5ca8bf9944daab2f02" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "trips_logs" ADD CONSTRAINT "FK_3db8593f0e542896acabbca5664" FOREIGN KEY ("trip_id") REFERENCES "trips"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "trips_logs" ADD CONSTRAINT "FK_819f3484973facaff72a3af2af8" FOREIGN KEY ("episode_id") REFERENCES "customer_episodes"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "trips_logs" ADD CONSTRAINT "FK_2ff29578524de6233380cf93106" FOREIGN KEY ("log_id") REFERENCES "episode_logs"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "trips_logs" DROP CONSTRAINT "FK_2ff29578524de6233380cf93106"`,
    )
    await queryRunner.query(
      `ALTER TABLE "trips_logs" DROP CONSTRAINT "FK_819f3484973facaff72a3af2af8"`,
    )
    await queryRunner.query(
      `ALTER TABLE "trips_logs" DROP CONSTRAINT "FK_3db8593f0e542896acabbca5664"`,
    )
    await queryRunner.query(`DROP TABLE "trips_logs"`)
  }
}
