namespace CMSMicroservice.Application.CommissionCQ.Queries.GetUserCommissionPayouts;

/// <summary>
/// Query برای دریافت پرداخت‌های کمیسیون کاربر
/// </summary>
public record GetUserCommissionPayoutsQuery : IRequest<GetUserCommissionPayoutsResponseDto>
{
    /// <summary>
    /// شناسه کاربر (اختیاری)
    /// </summary>
    public long? UserId { get; init; }

    /// <summary>
    /// فیلتر وضعیت
    /// </summary>
    public CommissionPayoutStatus? Status { get; init; }

    /// <summary>
    /// شماره هفته (اختیاری)
    /// </summary>
    public long? WeekDefinitionId { get; init; }

    /// <summary>
    /// فیلتر بر اساس پکیج (اختیاری)
    /// </summary>
    public long? PackageId { get; init; }

    /// <summary>
    /// مرتب‌سازی
    /// </summary>
    public string? SortBy { get; init; }

    /// <summary>
    /// Pagination
    /// </summary>
    public PaginationState? PaginationState { get; init; }
}
