import { MigrationInterface, QueryRunner } from "typeorm"

export class AddDriverAvailabilityHistoryEntity1753947491751 implements MigrationInterface {
  name = "AddDriverAvailabilityHistoryEntity1753947491751"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "driver_availability_history" ("id" SERIAL NOT NULL, "availability_id" integer NOT NULL, "driver_id" integer NOT NULL, "day_of_week" character varying, "start_time" TIME, "end_time" TIME, "is_available" boolean NOT NULL DEFAULT true, "action" character varying NOT NULL DEFAULT 'created', "logged_at" TIMESTAMP NOT NULL DEFAULT now(), "created_at" TIMESTAMP DEFAULT NOW(), "updated_at" TIMESTAMP DEFAULT NOW(), CONSTRAINT "PK_3a50ebb726604fd6804595c01ed" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "driver_availability_history" ADD CONSTRAINT "FK_bc32ce86261f6d22b97ea348dc2" FOREIGN KEY ("driver_id") REFERENCES "team_members"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
    )
  }

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