using Baya.Application.Models.Common;
using Baya.Application.Models.Payouts;
using Mediator;

namespace Baya.Application.Features.Payouts.Queries.ComputeEligibleEarnings;

/// <summary>Admin preview of the payout-eligible, unpaid earnings for a window, grouped by nurse — the dry-run
/// before generating a batch. Only completed bookings whose dispute window has closed and that aren't already paid
/// appear; each nurse's pending clawback is netted and a nurse without a verified primary IBAN is flagged.
/// Paginated.</summary>
public record ComputeEligibleEarningsQuery(DateOnly PeriodStart, DateOnly PeriodEnd, int Page = 1, int PageSize = 20)
    : IRequest<OperationResult<PagedResult<EligibleNurseEarningsDto>>>;
