import { MigrationInterface, QueryRunner } from "typeorm"

export class CreateProjectEmployeesTable1763115309578 implements MigrationInterface {
  name = "CreateProjectEmployeesTable1763115309578"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "project_employees" ("created_by" integer, "updated_by" integer, "deleted_by" integer, "created_at" TIMESTAMP NOT NULL DEFAULT NOW(), "updated_at" TIMESTAMP NOT NULL DEFAULT NOW(), "deleted_at" TIMESTAMP, "id" SERIAL NOT NULL, "project_id" integer NOT NULL, "employee_id" integer NOT NULL, "assigned_by" integer, "assigned_at" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_2ad08f67d6f5af423838723961b" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "project_employees" ADD CONSTRAINT "FK_cba48ef1d43831838e28fde71e0" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
    await queryRunner.query(
      `ALTER TABLE "project_employees" ADD CONSTRAINT "FK_d8e9fc987cd962f865c48023cd2" FOREIGN KEY ("employee_id") REFERENCES "employees"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
    )
  }

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