namespace CMSMicroservice.Domain.Entities;
//آدرس کاربر
public class UserWallet : BaseAuditableEntity
{
    //شناسه کاربر
    public long UserId { get; set; }
    //User Navigation Property
    public virtual User User { get; set; }
    //موجودی
    public long Balance { get; set; }
    
    /// <summary>
    /// موجودی شبکه/کارمزد — قابل برداشت نقدی یا خرید الماس
    /// </summary>
    public long NetworkBalance { get; set; }
    
    /// <summary>
    /// موجودی تخفیف - فقط برای خرید از فروشگاه باشگاه مشتریان
    /// </summary>
    public long DiscountBalance { get; set; }

    #region Magic Wallet

    /// <summary>
    /// حالت کیف‌پول — Normal: کمیسیون فعال | Magic: شارژ ×2.5 بدون کمیسیون
    /// </summary>
    public WalletMode WalletMode { get; set; } = WalletMode.Normal;

    /// <summary>
    /// مجموع واریزی واقعی در دور جادویی فعلی (ریال) — سقف: MagicWalletMaxDeposit
    /// </summary>
    public long MagicTotalDeposited { get; set; }

    /// <summary>
    /// مجموع اعتبار داده‌شده در دور جادویی فعلی (ریال) — واریز × 2.5
    /// </summary>
    public long MagicTotalCredited { get; set; }

    /// <summary>
    /// زمان شروع دور جادویی فعلی
    /// </summary>
    public DateTime? MagicActivatedAt { get; set; }

    /// <summary>
    /// زمان پایان دور جادویی فعلی
    /// </summary>
    public DateTime? MagicCompletedAt { get; set; }

    #endregion

    //UserWalletHistory Collection Navigation Reference
    public virtual ICollection<UserWalletHistory> UserWalletHistories { get; set; }
}
