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; }
}