using ERPCore.Dtos.Hrm;

namespace ERPCore.Services.Interfaces;

public interface ILeaveBalanceService
{
    Task<List<LeaveBalanceDto>> ListAsync(int employeeId, int? year, CancellationToken ct = default);
    Task<List<LeaveBalanceDto>> ApplyAdjustmentsAsync(int employeeId, UpdateLeaveBalancesRequest request, CancellationToken ct = default);

    /// <summary>Increments TakenDays for an approved leave request; called by ILeaveRequestService.ApproveAsync.</summary>
    Task IncrementTakenDaysAsync(int employeeId, int leaveTypeId, int year, decimal days, CancellationToken ct = default);
}
