using Microsoft.EntityFrameworkCore; using StellaOps.Signer.KeyManagement.Entities; namespace StellaOps.Signer.KeyManagement; /// /// DbContext for key management entities. /// public class KeyManagementDbContext : DbContext { public KeyManagementDbContext(DbContextOptions options) : base(options) { } /// /// Key history entries. /// public DbSet KeyHistory => Set(); /// /// Key audit log entries. /// public DbSet KeyAuditLog => Set(); /// /// Trust anchors. /// public DbSet TrustAnchors => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.HasDefaultSchema("signer"); modelBuilder.Entity(entity => { entity.HasKey(e => e.HistoryId); entity.HasIndex(e => new { e.AnchorId, e.KeyId }).IsUnique(); entity.HasIndex(e => e.AnchorId); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.LogId); entity.HasIndex(e => e.AnchorId); entity.HasIndex(e => e.CreatedAt).IsDescending(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.AnchorId); entity.HasIndex(e => e.PurlPattern); entity.HasIndex(e => e.IsActive); }); } }