Initial project

This commit is contained in:
2026-02-21 18:48:45 -06:00
parent 7e96bc2c10
commit ec230876ed
69 changed files with 3345 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace SoaFE.Portal.Data.Models;
public sealed class UserPasskey : IdentityUserPasskey<long>, IEntityTypeConfiguration<UserPasskey>
{
#region Scalar Properties
[MemberNotNull(nameof(User))]
public override required long UserId { get; set; }
#endregion
#region Navigation Properties
public User User { get; internal set; }
#endregion
public void Configure(EntityTypeBuilder<UserPasskey> builder)
{
// Configure Table
builder.ToTable("user_passkey");
builder.HasKey(e => new
{
e.UserId,
e.CredentialId
})
.HasName("pk_user_passkey");
builder.HasIndex(e => e.UserId)
.HasDatabaseName("ix_user_passkey_user_key");
// Configure Columns
var order = 0;
builder.Property(e => e.UserId)
.HasColumnName("user_key")
.HasColumnOrder(order++);
builder.Property(e => e.CredentialId)
.HasMaxLength(256)
.IsUnicode()
.HasColumnName("credential_id")
.HasColumnOrder(order++);
// Configure Relationships
builder.OwnsOne(e => e.Data, Configure);
}
internal static void Configure(OwnedNavigationBuilder<UserPasskey, IdentityPasskeyData> builder)
{
builder.ToJson("data");
}
}