2025-11-29 03:44:41 +03:30
|
|
|
|
namespace CMSMicroservice.Domain.Entities.Network;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// تعادلهای هفتگی شبکه باینری
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class NetworkWeeklyBalance : BaseAuditableEntity
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// شناسه کاربر
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public long UserId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// User Navigation Property
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public virtual User User { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// شماره هفته (مثال: "2025-W48")
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string WeekNumber { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-12-01 20:52:18 +03:30
|
|
|
|
/// تعداد اعضای جدید شاخه چپ در این هفته
|
2025-11-29 03:44:41 +03:30
|
|
|
|
/// </summary>
|
2025-12-01 20:52:18 +03:30
|
|
|
|
public int LeftLegNewMembers { get; set; }
|
2025-11-29 03:44:41 +03:30
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-12-01 20:52:18 +03:30
|
|
|
|
/// تعداد اعضای جدید شاخه راست در این هفته
|
2025-11-29 03:44:41 +03:30
|
|
|
|
/// </summary>
|
2025-12-01 20:52:18 +03:30
|
|
|
|
public int RightLegNewMembers { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// باقیمانده شاخه چپ از هفته قبل (Carryover)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int LeftLegCarryover { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// باقیمانده شاخه راست از هفته قبل (Carryover)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int RightLegCarryover { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// مجموع شاخه چپ: LeftLegNewMembers + LeftLegCarryover
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int LeftLegTotal { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// مجموع شاخه راست: RightLegNewMembers + RightLegCarryover
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int RightLegTotal { get; set; }
|
2025-11-29 03:44:41 +03:30
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-12-01 20:52:18 +03:30
|
|
|
|
/// تعداد تعادل (امتیاز): MIN(LeftLegTotal, RightLegTotal)
|
2025-11-29 03:44:41 +03:30
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int TotalBalances { get; set; }
|
|
|
|
|
|
|
2025-12-01 20:52:18 +03:30
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// باقیمانده شاخه چپ برای هفته بعد
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int LeftLegRemainder { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// باقیمانده شاخه راست برای هفته بعد
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int RightLegRemainder { get; set; }
|
|
|
|
|
|
|
2025-12-12 01:40:26 +03:30
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// مقدار فلش هر طرف (بعد از اعمال Cap): TotalBalances - CappedBalances
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int FlushedPerSide { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// مجموع فلش از دو طرف: FlushedPerSide × 2
|
|
|
|
|
|
/// این مقدار از دست میرود (نه به هفته بعد، نه به کمیسیون)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int TotalFlushed { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// مجموع تعادل زیرمجموعه این کاربر (تا 15 لول پایینتر)
|
|
|
|
|
|
/// این مقدار در CalculateWeeklyBalances محاسبه و ذخیره میشود
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int SubordinateBalances { get; set; }
|
|
|
|
|
|
|
2025-12-01 20:52:18 +03:30
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// [DEPRECATED] تعداد تعادل شاخه چپ - استفاده نشود
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Obsolete("Use LeftLegTotal instead")]
|
|
|
|
|
|
public int LeftLegBalances { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// [DEPRECATED] تعداد تعادل شاخه راست - استفاده نشود
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Obsolete("Use RightLegTotal instead")]
|
|
|
|
|
|
public int RightLegBalances { get; set; }
|
|
|
|
|
|
|
2025-11-29 03:44:41 +03:30
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// مبلغی که از این کاربر به استخر هفتگی اضافه شد (ریال)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public long WeeklyPoolContribution { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// زمان محاسبه توسط Worker
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime? CalculatedAt { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// آیا منقضی شده (بعد از توزیع کمیسیون)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public bool IsExpired { get; set; }
|
|
|
|
|
|
}
|