namespace CMSMicroservice.Application.CommissionCQ.Queries.GetAllWeeklyPools;

/// <summary>
/// Query برای دریافت لیست تمام استخرهای کمیسیون هفتگی
/// </summary>
public record GetAllWeeklyPoolsQuery : IRequest<GetAllWeeklyPoolsResponseDto>
{
    /// <summary>
    /// از هفته — WeekDefinitionId (فیلتر اختیاری)
    /// </summary>
    public long? FromWeekDefinitionId { get; init; }

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

    /// <summary>
    /// فقط Pool های محاسبه شده
    /// </summary>
    public bool? OnlyCalculated { get; init; }

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

    /// <summary>
    /// شماره صفحه
    /// </summary>
    public int PageIndex { get; init; } = 1;

    /// <summary>
    /// تعداد در صفحه
    /// </summary>
    public int PageSize { get; init; } = 10;
}
