namespace CMSMicroservice.Domain.Entities.Commission;

/// <summary>
/// استخر کارمزد هفتگی
/// </summary>
public class WeeklyCommissionPool : BaseAuditableEntity
{
    /// <summary>
    /// شماره هفته (مثال: "2025-W48")
    /// </summary>
    public string WeekNumber { get; set; }

    /// <summary>
    /// مجموع مبلغ جمع‌شده در استخر (ریال)
    /// </summary>
    public long TotalPoolAmount { get; set; }

    /// <summary>
    /// مجموع تعادل‌های کل سیستم در این هفته
    /// </summary>
    public int TotalBalances { get; set; }

    /// <summary>
    /// مبلغ ریالی هر امتیاز (TotalPoolAmount ÷ TotalBalances)
    /// </summary>
    public long ValuePerBalance { get; set; }

    /// <summary>
    /// آیا محاسبه و توزیع شده
    /// </summary>
    public bool IsCalculated { get; set; }

    /// <summary>
    /// تاریخ محاسبه و توزیع
    /// </summary>
    public DateTime? CalculatedAt { get; set; }

    /// <summary>
    /// UserCommissionPayout Collection Navigation Reference
    /// </summary>
    public virtual ICollection<UserCommissionPayout>? UserCommissionPayouts { get; set; }
}
