Files
CMS/src/CMSMicroservice.Domain/Entities/User.cs

103 lines
4.1 KiB
C#

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 =============
/// <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; }
/// <summary>
/// آیا اعتبار دایا را دریافت کرده است؟
/// </summary>
public bool HasReceivedDayaCredit { get; set; }
/// <summary>
/// تاریخ دریافت اعتبار دایا
/// </summary>
public DateTime? DayaCreditReceivedAt { get; set; }
/// <summary>
/// نحوه خرید پکیج طلایی (برای جلوگیری از خرید مجدد)
/// </summary>
public PackagePurchaseMethod PackagePurchaseMethod { get; set; } = PackagePurchaseMethod.None;
// ============= Navigation Properties =============
//UserAddress Collection Navigation Reference
public virtual ICollection<UserAddress> UserAddresss { get; set; }
//UserRole Collection Navigation Reference
public virtual ICollection<UserRole> UserRoles { get; set; }
//UserCarts Collection Navigation Reference
public virtual ICollection<UserCarts> UserCartss { get; set; }
//User Collection Navigation Reference
public virtual ICollection<User> Users { get; set; }
//UserContract Collection Navigation Reference
public virtual ICollection<UserContract> UserContracts { get; set; }
//UserOrder Collection Navigation Reference
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; }
//DayaLoanContract Collection Navigation Reference
public virtual ICollection<DayaLoanContract>? DayaLoanContracts { get; set; }
}