namespace Jiaowu.Api.Domain.Identity; /// Public WebAuthn credential material. Private keys never leave the authenticator. public sealed class PasskeyCredential { public Guid Id { get; set; } = Guid.NewGuid(); public Guid UserId { get; set; } public required string CredentialId { get; set; } /// SHA-256 of the raw credential ID, used for a portable unique index. public required string CredentialIdHash { get; set; } public required byte[] PublicKey { get; set; } public uint SignatureCounter { get; set; } public required string FriendlyName { get; set; } public string? Transports { get; set; } public bool IsBackupEligible { get; set; } public bool IsBackedUp { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? LastUsedAt { get; set; } public ApplicationUser? User { get; set; } }