feat: Add core entities and history tables for network-club system

Core Entities:
- Add SystemConfiguration for dynamic config management
- Add ClubMembership, ClubFeature, UserClubFeature for club management
- Add NetworkWeeklyBalance for binary network tracking
- Add WeeklyCommissionPool, UserCommissionPayout for commission system

History Entities (Audit Trail):
- Add ClubMembershipHistory
- Add NetworkMembershipHistory
- Add CommissionPayoutHistory
- Add SystemConfigurationHistory

Updates to Existing Entities:
- User: Add NetworkParentId, LegPosition, and navigation properties
- UserWallet: Add NetworkBalance and DiscountBalance fields
- Products: Add IsClubExclusive and ClubDiscountPercent fields
- GlobalUsings: Add new namespaces for club/network/commission entities
This commit is contained in:
masoodafar-web
2025-11-29 03:44:41 +03:30
parent 462ae5dcc0
commit d20dc86d2f
15 changed files with 618 additions and 2 deletions

View File

@@ -36,6 +36,26 @@ public class User : BaseAuditableEntity
public DateTime? BirthDate { get; set; }
//پسوورد هش کاربر
public string? HashPassword { get; set; }
// ============= Network Club System Fields =============
/// <summary>
/// شناسه والد در شبکه باینری
/// </summary>
public long? NetworkParentId { get; set; }
/// <summary>
/// Network Parent Navigation Property
/// </summary>
public virtual User? NetworkParent { get; set; }
/// <summary>
/// موقعیت در شبکه (شاخه چپ یا راست)
/// </summary>
public NetworkLeg? LegPosition { get; set; }
// ============= Navigation Properties =============
//UserAddress Collection Navigation Reference
public virtual ICollection<UserAddress> UserAddresss { get; set; }
//UserRole Collection Navigation Reference
@@ -50,4 +70,14 @@ public class User : BaseAuditableEntity
public virtual ICollection<UserOrder> UserOrders { get; set; }
//UserWallet Collection Navigation Reference
public virtual ICollection<UserWallet> UserWallets { get; set; }
//NetworkChildren Collection Navigation Reference (فرزندان در شبکه باینری)
public virtual ICollection<User>? NetworkChildren { get; set; }
//ClubMembership Navigation Reference
public virtual ClubMembership? ClubMembership { get; set; }
//UserClubFeature Collection Navigation Reference
public virtual ICollection<UserClubFeature>? UserClubFeatures { get; set; }
//NetworkWeeklyBalance Collection Navigation Reference
public virtual ICollection<NetworkWeeklyBalance>? NetworkWeeklyBalances { get; set; }
//UserCommissionPayout Collection Navigation Reference
public virtual ICollection<UserCommissionPayout>? CommissionPayouts { get; set; }
}