using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace AuthApi.Models; public class User { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } = default!; public string Username { get; set; } = default!; public string PasswordHash { get; set; } = default!; public string Role { get; set; } = "USER"; public string? Email { get; set; } public string? DisplayName { get; set; } public DateTime? CreatedUtc { get; set; } public string? RefreshToken { get; set; } public DateTime? RefreshTokenExpiry { get; set; } public string? SteamId { get; set; } public string? TermsAcceptedVersion { get; set; } public string? PrivacyAcceptedVersion { get; set; } public DateTime? LegalAcceptedUtc { get; set; } public List LegalAcceptances { get; set; } = []; } public sealed class LegalAcceptanceRecord { public string TermsVersion { get; set; } = ""; public string PrivacyVersion { get; set; } = ""; public DateTime AcceptedUtc { get; set; } = DateTime.UtcNow; public string Source { get; set; } = ""; }