namespace CMSMicroservice.Domain.Entities; //کاربر public class User : BaseAuditableEntity { //نام public string? FirstName { get; set; } //نام خانوادگی public string? LastName { get; set; } //شماره موبایل public string Mobile { get; set; } //ایمیل public string? Email { get; set; } //کد ملی public string? NationalCode { get; set; } //آدرس آواتار public string? AvatarPath { get; set; } //شناسه والد public long? ParentId { get; set; } //User Navigation Property public virtual User? Parent { get; set; } //کد ارجاع public string ReferralCode { get; set; } //موبایل فعال شده؟ public bool IsMobileVerified { get; set; } //تاریخ فعال سازی موبایل public DateTime? MobileVerifiedAt { get; set; } //قوانین پذیرفته شده؟ public bool IsRulesAccepted { get; set; } //تاریخ پذیرش قوانین public DateTime? RulesAcceptedAt { get; set; } //اعلان ایمیل public bool EmailNotifications { get; set; } //اعلان پیامک public bool SmsNotifications { get; set; } //اعلان پوش public bool PushNotifications { get; set; } //تاریخ تولد public DateTime? BirthDate { get; set; } //پسوورد هش کاربر public string? HashPassword { get; set; } // ============= Network Club System Fields ============= /// /// شناسه والد در شبکه باینری /// public long? NetworkParentId { get; set; } /// /// Network Parent Navigation Property /// public virtual User? NetworkParent { get; set; } /// /// موقعیت در شبکه (شاخه چپ یا راست) /// public NetworkLeg? LegPosition { get; set; } /// /// آیا اعتبار دایا را دریافت کرده است؟ /// public bool HasReceivedDayaCredit { get; set; } /// /// تاریخ دریافت اعتبار دایا /// public DateTime? DayaCreditReceivedAt { get; set; } /// /// نحوه خرید پکیج طلایی (برای جلوگیری از خرید مجدد) /// public PackagePurchaseMethod PackagePurchaseMethod { get; set; } = PackagePurchaseMethod.None; // ============= Navigation Properties ============= //UserAddress Collection Navigation Reference public virtual ICollection UserAddresss { get; set; } //UserRole Collection Navigation Reference public virtual ICollection UserRoles { get; set; } //UserCarts Collection Navigation Reference public virtual ICollection UserCartss { get; set; } //User Collection Navigation Reference public virtual ICollection Users { get; set; } //UserContract Collection Navigation Reference public virtual ICollection UserContracts { get; set; } //UserOrder Collection Navigation Reference public virtual ICollection UserOrders { get; set; } //UserWallet Collection Navigation Reference public virtual ICollection UserWallets { get; set; } //NetworkChildren Collection Navigation Reference (فرزندان در شبکه باینری) public virtual ICollection? NetworkChildren { get; set; } //ClubMembership Navigation Reference public virtual ClubMembership? ClubMembership { get; set; } //UserClubFeature Collection Navigation Reference public virtual ICollection? UserClubFeatures { get; set; } //NetworkWeeklyBalance Collection Navigation Reference public virtual ICollection? NetworkWeeklyBalances { get; set; } //UserCommissionPayout Collection Navigation Reference public virtual ICollection? CommissionPayouts { get; set; } //DayaLoanContract Collection Navigation Reference public virtual ICollection? DayaLoanContracts { get; set; } }