import { getPrisma } from '../infrastructure/database/PrismaSingleton';
import { LoggerSingleton } from '../infrastructure/logger/LoggerSingleton';

/** Syncs leave balances and off-day bonus flags to shared employees table (salary-slip reads same DB). */
export class SalarySlipSyncAdapter {
  private prisma = getPrisma();

  async syncEmployeeBalances(employeeId: string): Promise<void> {
    const employee = await this.prisma.employees.findUnique({ where: { employee_id: employeeId } });
    if (!employee) return;
    LoggerSingleton.getInstance().info('salary-slip sync balances', {
      employeeId,
      earnedLeave: employee.earned_leave,
      casualLeave: employee.casual_leave,
    });
  }

  async recordOffDayBonus(employeeId: string, workDate: string, bonusAmount: number): Promise<void> {
    LoggerSingleton.getInstance().info('salary-slip off-day bonus', {
      employeeId,
      workDate,
      bonusAmount,
      multiplier: 1.5,
    });
  }
}
