diff --git a/EnvelopeGenerator.Infrastructure/EGDbContext.cs b/EnvelopeGenerator.Infrastructure/EGDbContext.cs index ebdde7fe..c8a370f3 100644 --- a/EnvelopeGenerator.Infrastructure/EGDbContext.cs +++ b/EnvelopeGenerator.Infrastructure/EGDbContext.cs @@ -97,10 +97,17 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); - modelBuilder.Entity(); + modelBuilder.Entity() + .HasIndex(e => e.Uuid) + .IsUnique(); modelBuilder.Entity(); modelBuilder.Entity(); - modelBuilder.Entity(); + modelBuilder.Entity() + .HasIndex(e => e.Signature) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(e => e.EmailAddress) + .IsUnique(); modelBuilder.Entity(); // Configure the one-to-many relationship of Envelope @@ -145,6 +152,24 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext .HasForeignKey(erro => erro.AddedWho) .HasPrincipalKey(r => r.EmailAddress); + modelBuilder.Entity() + .HasOne(ds => ds.Envelope) + .WithMany() + .HasForeignKey(ds => ds.EnvelopeId) + .HasPrincipalKey(e => e.Uuid); + + modelBuilder.Entity() + .HasOne(ds => ds.Receiver) + .WithMany() + .HasForeignKey(ds => ds.ReceiverId) + .HasPrincipalKey(e => e.Signature); + + modelBuilder.Entity() + .HasOne(ds => ds.Receiver) + .WithMany() + .HasForeignKey(ds => ds.ReceiverId) + .HasPrincipalKey(e => e.EmailAddress); + // Configure entities to handle database triggers void AddTrigger() where T : class => _triggers .Where(t => t.Key == typeof(T).Name)