<?php

namespace App\Services\Payroll\Statutory;

class EsiCalculator
{
    /** ESI: employee 0.75%, employer 3.25% of gross, with wage cap (e.g. 21000). */
    public function calculate(
        float $grossMonthly,
        float $employeeRatePercent = 0.75,
        float $employerRatePercent = 3.25,
        ?float $wageCap = 21000
    ): array {
        if ($wageCap !== null && $grossMonthly > $wageCap) {
            $grossMonthly = $wageCap;
        }
        $employee = round($grossMonthly * ($employeeRatePercent / 100), 2);
        $employer = round($grossMonthly * ($employerRatePercent / 100), 2);
        return [
            'employee' => $employee,
            'employer' => $employer,
            'gross_considered' => $grossMonthly,
        ];
    }
}
