penisularhr / src / database / migrations / 1698774375744-create-activity-record.ts
1698774375744-create-activity-record.ts
Raw
/* eslint-disable max-len */
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
import { MigrationInterface, QueryRunner } from 'typeorm';

export class CreateActivityRecord1698774375744 implements MigrationInterface {
  name = 'CreateActivityRecord1698774375744';

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "ot_records" DROP CONSTRAINT "ot_record_employee"`,
    );
    await queryRunner.query(
      `ALTER TABLE "incentive_settings" RENAME COLUMN "is_activated" TO "is_active"`,
    );
    await queryRunner.query(
      `ALTER TABLE "employees" RENAME COLUMN "is_activated" TO "is_active"`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_record_settings" RENAME COLUMN "is_activated" TO "is_active"`,
    );
    await queryRunner.query(
      `CREATE TABLE "activity_records" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "created_at" TIMESTAMP NOT NULL DEFAULT now(), "updated_at" TIMESTAMP NOT NULL DEFAULT now(), "date" TIMESTAMP NOT NULL, "hour" numeric(20,6) NOT NULL, "rate" numeric(20,6) NOT NULL, "quantity" numeric(20,6) NOT NULL, "remark" character varying, "employee_id" uuid, "activity_record_setting_id" uuid, "block_id" uuid, CONSTRAINT "PK_3ee96d2cc455e742c82f4b053db" PRIMARY KEY ("id"))`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_settings" ALTER COLUMN "extra_rate_per" SET DEFAULT '1.5'`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_records" ADD CONSTRAINT "ot_record_employee" FOREIGN KEY ("employee_id") REFERENCES "employees"("id") ON DELETE NO ACTION ON UPDATE CASCADE`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_records" ADD CONSTRAINT "activity_record_employee" FOREIGN KEY ("employee_id") REFERENCES "employees"("id") ON DELETE NO ACTION ON UPDATE CASCADE`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_records" ADD CONSTRAINT "activity_record_activity_record_setting" FOREIGN KEY ("activity_record_setting_id") REFERENCES "activity_record_settings"("id") ON DELETE NO ACTION ON UPDATE CASCADE`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_records" ADD CONSTRAINT "activity_record_block" FOREIGN KEY ("block_id") REFERENCES "blocks"("id") ON DELETE NO ACTION ON UPDATE CASCADE`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "activity_records" DROP CONSTRAINT "activity_record_block"`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_records" DROP CONSTRAINT "activity_record_activity_record_setting"`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_records" DROP CONSTRAINT "activity_record_employee"`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_records" DROP CONSTRAINT "ot_record_employee"`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_settings" ALTER COLUMN "extra_rate_per" SET DEFAULT 1.5`,
    );
    await queryRunner.query(`DROP TABLE "activity_records"`);
    await queryRunner.query(
      `ALTER TABLE "activity_record_settings" RENAME COLUMN "is_active" TO "is_activated"`,
    );
    await queryRunner.query(
      `ALTER TABLE "employees" RENAME COLUMN "is_active" TO "is_activated"`,
    );
    await queryRunner.query(
      `ALTER TABLE "incentive_settings" RENAME COLUMN "is_active" TO "is_activated"`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_records" ADD CONSTRAINT "ot_record_employee" FOREIGN KEY ("employee_id") REFERENCES "employees"("id") ON DELETE CASCADE ON UPDATE CASCADE`,
    );
  }
}