penisularhr / src / database / migrations / 1701354013716-add-name-into-public-holiday.ts
1701354013716-add-name-into-public-holiday.ts
Raw
/* eslint-disable max-len */
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
import { MigrationInterface, QueryRunner } from 'typeorm';

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

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "public_holidays" ADD "name" character varying NOT NULL`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_settings" ALTER COLUMN "extra_rate_per" SET DEFAULT '1.5'`,
    );

    // Add Vehicle Name
    await queryRunner.query(
      `INSERT INTO "vehicle_names" ("id", "name", "is_active") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0fa', 'KUBOTA', TRUE)`,
    );
    await queryRunner.query(
      `INSERT INTO "vehicle_names" ("id", "name", "is_active") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d1fa', 'LANDINI', TRUE)`,
    );
    await queryRunner.query(
      `INSERT INTO "vehicle_names" ("id", "name", "is_active") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d2fa', 'YAN MAR', TRUE)`,
    );

    // Add Incentive Setting
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0fa', 'meal', TRUE, 5, 3, 'FIXED_AMOUNT', 'DAILY', 'hour')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0fb', 'perfect attendance', TRUE, 50, 26, 'FIXED_AMOUNT', 'MONTHLY', 'day')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0fc', 'sucker planting', TRUE, 20, 1000, 'FIXED_AMOUNT', 'DAILY', 'pcs')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0fd', 'sucker harvest', TRUE, 20, 1000, 'FIXED_AMOUNT', 'DAILY', 'pcs')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0fe', 'referral', TRUE, 100, 3, 'FIXED_AMOUNT', 'ONLY_ONCE', 'month')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d0ff', 'fruit harvest', TRUE, 0.025, 43.75, 'PERCENTAGE', 'DAILY', 'pcs')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d1fa', 'long service', TRUE, 100, 2, 'FIXED_AMOUNT', 'MONTHLY', 'year')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d1fb', 'long service', TRUE, 150, 3, 'FIXED_AMOUNT', 'MONTHLY', 'year')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d1fc', 'long service', TRUE, 200, 4, 'FIXED_AMOUNT', 'MONTHLY', 'year')`,
    );
    await queryRunner.query(
      `INSERT INTO "incentive_settings" ("id", "name", "is_active", "amount", "threshold", "type", "period", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-e100f065d1fd', 'long service', TRUE, 250, 6, 'FIXED_AMOUNT', 'MONTHLY', 'year')`,
    );

    // Add sector
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d0fa', 'daily rate')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d1fa', 'zero rate')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d2fa', 'unpaid leave')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d3fa', 'sucker harvest and planting')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', 'spraying team')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', 'land preparation')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d6fa', 'manuring')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d7fa', 'grass cutting')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d8fa', 'plastic mulch and bedding fertilizer')`,
    );
    await queryRunner.query(
      `INSERT INTO "sectors" ("id", "name") VALUES ('a8cee0ed-b6e7-4e8a-b53a-f100f065d9fa', 'fruit harvest and grading')`,
    );

    // Add Activity Setting
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d0fa', 'daily rate', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d0fa', TRUE, 50, 'day')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d1fa', 'annual leave', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d1fa', TRUE, 0, 'day')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d2fa', 'sick leave', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d1fa', TRUE, 0, 'day')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d3fa', 'unpaid leave', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d2fa', TRUE, -50, 'day')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit", "incentive_name") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', 'sucker planting', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d3fa', TRUE, 0.04, 'pcs', 'sucker planting')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit", "incentive_name") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', 'sucker harvest', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d3fa', TRUE, 0.06, 'pcs', 'sucker harvest')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d6fa', 'fertilizer', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', TRUE, 35, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d7fa', 'herbicide', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', TRUE, 35, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d8fa', 'hormone', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', TRUE, 35, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065d9fa', 'insecticide', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', TRUE, 35, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e0fa', 'fungicide', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d4fa', TRUE, 35, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e1fa', 'land leveling', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', TRUE, 58, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e2fa', 'plowing', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', TRUE, 58, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e3fa', 'roto-tiling', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', TRUE, 58, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e4fa', 'bedding', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', TRUE, 58, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e5fa', 'plastic mulch (land)', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', TRUE, 58, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e6fa', 'roto-tiling and bedding (land)', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d5fa', TRUE, 58, 'tank')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e7fa', 'npk', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d6fa', TRUE, 28, 'bag')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e8fa', 'grass cutting', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d7fa', TRUE, 0.07, 'tree')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065e9fa', 'plastic mulch', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d8fa', TRUE, 36, 'tree')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065f0fa', 'bedding fertilizer', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d8fa', TRUE, 26.2, 'tree')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit", "incentive_name") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065f1fa', 'fruit harvest', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d9fa', TRUE, 0.1, 'pcs', 'fruit harvest')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065f2fa', 'fruit grading', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d9fa', TRUE, 0.05, 'pcs')`,
    );
    await queryRunner.query(
      `INSERT INTO "activity_record_settings" ("id", "name", "sector_id", "is_active", "rate", "unit") VALUES ('c8cee0ed-b6e7-4e8a-b53a-f100f065f3fa', 'zero rate', 'a8cee0ed-b6e7-4e8a-b53a-f100f065d1fa', TRUE, 0, 'day')`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "ot_settings" ALTER COLUMN "extra_rate_per" SET DEFAULT 1.5`,
    );
    await queryRunner.query(`ALTER TABLE "public_holidays" DROP COLUMN "name"`);
  }
}