using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace BCards.Web.Models; public class User { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } = string.Empty; [BsonElement("email")] public string Email { get; set; } = string.Empty; [BsonElement("name")] public string Name { get; set; } = string.Empty; [BsonElement("profileImage")] public string ProfileImage { get; set; } = string.Empty; [BsonElement("authProvider")] public string AuthProvider { get; set; } = string.Empty; [BsonElement("stripeCustomerId")] public string StripeCustomerId { get; set; } = string.Empty; [BsonElement("subscriptionStatus")] public string SubscriptionStatus { get; set; } = "free"; [BsonElement("currentPlan")] public string CurrentPlan { get; set; } = "free"; [BsonElement("createdAt")] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; [BsonElement("updatedAt")] public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; [BsonElement("isActive")] public bool IsActive { get; set; } = true; [BsonElement("notifiedOfExpiration")] public bool NotifiedOfExpiration { get; set; } = false; }