import { MigrationInterface, QueryRunner } from "typeorm"

export class CreateEmployeeInformationTable1767865599230 implements MigrationInterface {
  name = "CreateEmployeeInformationTable1767865599230"

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "employee_information" ("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, "employee_id" integer NOT NULL, "address" text NOT NULL, "gender" character varying(10) NOT NULL, "alternate_mobile_number" character varying(20) NOT NULL, "date_of_birth" date, "marital_status" character varying(20), "parents_name" character varying(255), "parents_contact_number" character varying(20), "blood_group" character varying(10), "native_place" character varying(255), "resume_url" character varying(500), "aadhar_card" character varying(20), "pan_card_number" character varying(20), "education_qualification" character varying(255), "total_work_experience_years" numeric(4,1), CONSTRAINT "REL_5a2012ccc57d0c2f69f76e80c0" UNIQUE ("employee_id"), CONSTRAINT "PK_d105d2dd8699c55e00a0df5ab7b" PRIMARY KEY ("id"))`,
    )
    await queryRunner.query(
      `ALTER TABLE "employee_information" ADD CONSTRAINT "FK_5a2012ccc57d0c2f69f76e80c05" 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 "employee_information" DROP CONSTRAINT "FK_5a2012ccc57d0c2f69f76e80c05"`,
    )
    await queryRunner.query(`DROP TABLE "employee_information"`)
  }
}
