import { MigrationInterface, QueryRunner } from "typeorm"

export class CreatePayrollEnums1764139132445 implements MigrationInterface {
  name = "CreatePayrollEnums1764139132445"

  public async up(queryRunner: QueryRunner): Promise<void> {
    // Create ComponentType enum
    await queryRunner.query(`
      CREATE TYPE "component_type_enum" AS ENUM('earning', 'deduction')
    `)

    // Create CalculationType enum
    await queryRunner.query(`
      CREATE TYPE "calculation_type_enum" AS ENUM('fixed', 'percentage')
    `)

    // Create PayrollCycleStatus enum
    await queryRunner.query(`
      CREATE TYPE "payroll_cycle_status_enum" AS ENUM('0', '1', '2')
    `)
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    // Drop enums in reverse order
    await queryRunner.query(`DROP TYPE IF EXISTS "payroll_cycle_status_enum"`)
    await queryRunner.query(`DROP TYPE IF EXISTS "calculation_type_enum"`)
    await queryRunner.query(`DROP TYPE IF EXISTS "component_type_enum"`)
  }
}
