32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
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<LegalAcceptanceRecord> 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; } = "";
|
|
}
|