using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace NostrStreamer.Database.Configuration; public class UserStreamKeyConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.HasKey(a => a.Id); builder.Property(a => a.Key) .IsRequired(); builder.Property(a => a.Created) .IsRequired(); builder.Property(a => a.Expires) .IsRequired(false); builder.HasOne(a => a.UserStream) .WithOne(a => a.StreamKey) .HasPrincipalKey(a => a.Id) .HasForeignKey(a => a.StreamId); builder.HasOne(a => a.User) .WithMany(a => a.StreamKeys) .HasForeignKey(a => a.UserPubkey) .HasPrincipalKey(a => a.PubKey); } }