using CMSMicroservice.Application.CommissionCQ.Queries.GetUserWeeklyBalances;

namespace CMSMicroservice.Application.CommissionCQ.Queries.GetMyWeeklyBalances;

/// <summary>
/// Query برای دریافت تعادل‌های هفتگی کاربر جاری (از JWT)
/// </summary>
public record GetMyWeeklyBalancesQuery : IRequest<GetUserWeeklyBalancesResponseDto>
{
    /// <summary>
    /// شناسه تعریف هفته (اختیاری)
    /// </summary>
    public long? WeekDefinitionId { get; init; }

    /// <summary>
    /// فقط موارد Expired نشده؟
    /// </summary>
    public bool OnlyActive { get; init; }

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

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