namespace CMSMicroservice.Domain.Entities.Club;

/// <summary>
/// عضویت در باشگاه مشتریان
/// </summary>
public class ClubMembership : BaseAuditableEntity
{
    /// <summary>
    /// شناسه کاربر
    /// </summary>
    public long UserId { get; set; }

    /// <summary>
    /// User Navigation Property
    /// </summary>
    public virtual User User { get; set; }

    /// <summary>
    /// وضعیت فعال/غیرفعال عضویت
    /// </summary>
    public bool IsActive { get; set; }

    /// <summary>
    /// تاریخ فعال‌سازی عضویت
    /// </summary>
    public DateTime? ActivatedAt { get; set; }

    /// <summary>
    /// مبلغ اولیه پرداختی برای فعال‌سازی (معمولاً ۲۵ میلیون تومان)
    /// </summary>
    public long InitialContribution { get; set; }

    /// <summary>
    /// ارزش هدیه حق عضویت باشگاه (25,200,000 تومان)
    /// این مبلغ از کیف پول کاربر کم نمی‌شود و صرفاً هدیه است
    /// </summary>
    public long GiftValue { get; set; }

    /// <summary>
    /// مجموع درآمد کارمزد تاکنون (ریال)
    /// </summary>
    public long TotalEarned { get; set; }

    /// <summary>
    /// نحوه خرید پکیج که منجر به فعالسازی باشگاه شد
    /// </summary>
    public PackagePurchaseMethod PurchaseMethod { get; set; }

    /// <summary>
    /// UserClubFeature Collection Navigation Reference
    /// </summary>
    public virtual ICollection<UserClubFeature>? UserClubFeatures { get; set; }

    /// <summary>
    /// ClubMembershipHistory Collection Navigation Reference
    /// </summary>
    public virtual ICollection<ClubMembershipHistory>? ClubMembershipHistories { get; set; }
}
