using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace Htmx.ApiDemo.Data; /// /// Simple user document stored in MongoDB. /// All property→field name mappings are declared explicitly via [BsonElement] /// and registered in Program.cs via BsonClassMap — no AutoMap() reflection. /// public sealed class AppUser { [BsonId] public ObjectId Id { get; set; } = ObjectId.GenerateNewId(); [BsonElement("email")] public string Email { get; set; } = ""; /// Email.ToUpperInvariant() — used for case-insensitive lookups. [BsonElement("normalizedEmail")] public string NormalizedEmail { get; set; } = ""; [BsonElement("passwordHash")] public string PasswordHash { get; set; } = ""; [BsonElement("displayName")] public string? DisplayName { get; set; } [BsonElement("createdAtUtc")] public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow; }