namespace CMSMicroservice.Application.CommissionCQ.Commands.TriggerWeeklyCalculation;

public record TriggerWeeklyCalculationCommand : IRequest<TriggerWeeklyCalculationResponseDto>
{
    /// <summary>
    /// شماره هفته (فرمت: "YYYY-Www")
    /// </summary>
    public long WeekDefinitionId { get; init; }

    /// <summary>
    /// اگر true باشد، محاسبات قبلی را حذف و دوباره محاسبه می‌کند
    /// </summary>
    public bool ForceRecalculate { get; init; }

    /// <summary>
    /// Skip balance calculation (Step 1)
    /// </summary>
    public bool SkipBalances { get; init; }

    /// <summary>
    /// Skip pool calculation and payout processing (Step 2)
    /// </summary>
    public bool SkipPayouts { get; init; }

    /// <summary>
    /// شناسه پکیج — اگر مقدار داشته باشد فقط این پکیج محاسبه می‌شود، در غیر این صورت همه پکیج‌ها
    /// </summary>
    public long? PackageId { get; init; }
}
