// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using ScadaLink.ConfigurationDatabase; #nullable disable namespace ScadaLink.ConfigurationDatabase.Migrations { [DbContext(typeof(ScadaLinkDbContext))] [Migration("20260321164227_AddGrpcNodeAddresses")] partial class AddGrpcNodeAddresses { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.5") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("FriendlyName") .HasColumnType("nvarchar(max)"); b.Property("Xml") .HasColumnType("nvarchar(max)"); b.HasKey("Id"); b.ToTable("DataProtectionKeys"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Audit.AuditLogEntry", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Action") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("AfterStateJson") .HasColumnType("nvarchar(max)"); b.Property("EntityId") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("EntityName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("EntityType") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("Timestamp") .HasColumnType("datetimeoffset"); b.Property("User") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.HasKey("Id"); b.HasIndex("Action"); b.HasIndex("EntityId"); b.HasIndex("EntityType"); b.HasIndex("Timestamp"); b.HasIndex("User"); b.ToTable("AuditLogEntries"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Deployment.DeployedConfigSnapshot", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ConfigurationJson") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("DeployedAt") .HasColumnType("datetimeoffset"); b.Property("DeploymentId") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("InstanceId") .HasColumnType("int"); b.Property("RevisionHash") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.HasIndex("DeploymentId"); b.HasIndex("InstanceId") .IsUnique(); b.ToTable("DeployedConfigSnapshots"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Deployment.DeploymentRecord", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CompletedAt") .HasColumnType("datetimeoffset"); b.Property("DeployedAt") .HasColumnType("datetimeoffset"); b.Property("DeployedBy") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("DeploymentId") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("ErrorMessage") .HasColumnType("nvarchar(max)"); b.Property("InstanceId") .HasColumnType("int"); b.Property("RevisionHash") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("RowVersion") .IsConcurrencyToken() .IsRequired() .ValueGeneratedOnAddOrUpdate() .HasColumnType("rowversion"); b.Property("Status") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("DeployedAt"); b.HasIndex("DeploymentId") .IsUnique(); b.HasIndex("InstanceId"); b.ToTable("DeploymentRecords"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Deployment.SystemArtifactDeploymentRecord", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ArtifactType") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("DeployedAt") .HasColumnType("datetimeoffset"); b.Property("DeployedBy") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("PerSiteStatus") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.HasKey("Id"); b.HasIndex("DeployedAt"); b.ToTable("SystemArtifactDeploymentRecords"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.ExternalSystems.DatabaseConnectionDefinition", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ConnectionString") .IsRequired() .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("MaxRetries") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("RetryDelay") .HasColumnType("time"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("DatabaseConnectionDefinitions"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.ExternalSystems.ExternalSystemDefinition", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("AuthConfiguration") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("AuthType") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("EndpointUrl") .IsRequired() .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("MaxRetries") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("RetryDelay") .HasColumnType("time"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("ExternalSystemDefinitions"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.ExternalSystems.ExternalSystemMethod", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ExternalSystemDefinitionId") .HasColumnType("int"); b.Property("HttpMethod") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("ParameterDefinitions") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("Path") .IsRequired() .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("ReturnDefinition") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.HasKey("Id"); b.HasIndex("ExternalSystemDefinitionId", "Name") .IsUnique(); b.ToTable("ExternalSystemMethods"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.InboundApi.ApiKey", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("IsEnabled") .HasColumnType("bit"); b.Property("KeyValue") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.HasKey("Id"); b.HasIndex("KeyValue") .IsUnique(); b.HasIndex("Name") .IsUnique(); b.ToTable("ApiKeys"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.InboundApi.ApiMethod", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ApprovedApiKeyIds") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("ParameterDefinitions") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("ReturnDefinition") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("Script") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("TimeoutSeconds") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("ApiMethods"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.Area", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("ParentAreaId") .HasColumnType("int"); b.Property("SiteId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("ParentAreaId"); b.HasIndex("SiteId", "ParentAreaId", "Name") .IsUnique() .HasFilter("[ParentAreaId] IS NOT NULL"); b.ToTable("Areas"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.Instance", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("AreaId") .HasColumnType("int"); b.Property("SiteId") .HasColumnType("int"); b.Property("State") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("TemplateId") .HasColumnType("int"); b.Property("UniqueName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.HasKey("Id"); b.HasIndex("AreaId"); b.HasIndex("TemplateId"); b.HasIndex("SiteId", "UniqueName") .IsUnique(); b.ToTable("Instances"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.InstanceAttributeOverride", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("AttributeName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("InstanceId") .HasColumnType("int"); b.Property("OverrideValue") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.HasKey("Id"); b.HasIndex("InstanceId", "AttributeName") .IsUnique(); b.ToTable("InstanceAttributeOverrides"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.InstanceConnectionBinding", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("AttributeName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("DataConnectionId") .HasColumnType("int"); b.Property("InstanceId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("DataConnectionId"); b.HasIndex("InstanceId", "AttributeName") .IsUnique(); b.ToTable("InstanceConnectionBindings"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Notifications.NotificationList", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("NotificationLists"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Notifications.NotificationRecipient", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("EmailAddress") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("NotificationListId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("NotificationListId"); b.ToTable("NotificationRecipients"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Notifications.SmtpConfiguration", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("AuthType") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("ConnectionTimeoutSeconds") .HasColumnType("int"); b.Property("Credentials") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("FromAddress") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("Host") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("MaxConcurrentConnections") .HasColumnType("int"); b.Property("MaxRetries") .HasColumnType("int"); b.Property("Port") .HasColumnType("int"); b.Property("RetryDelay") .HasColumnType("time"); b.Property("TlsMode") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.ToTable("SmtpConfigurations"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Scripts.SharedScript", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Code") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("ParameterDefinitions") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("ReturnDefinition") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("SharedScripts"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Security.LdapGroupMapping", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("LdapGroupName") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("Role") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.HasIndex("LdapGroupName") .IsUnique(); b.ToTable("LdapGroupMappings"); b.HasData( new { Id = 1, LdapGroupName = "SCADA-Admins", Role = "Admin" }, new { Id = 2, LdapGroupName = "SCADA-Designers", Role = "Design" }, new { Id = 3, LdapGroupName = "SCADA-Deploy-All", Role = "Deployment" }, new { Id = 4, LdapGroupName = "SCADA-Deploy-SiteA", Role = "Deployment" }); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Security.SiteScopeRule", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("LdapGroupMappingId") .HasColumnType("int"); b.Property("SiteId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("SiteId"); b.HasIndex("LdapGroupMappingId", "SiteId") .IsUnique(); b.ToTable("SiteScopeRules"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Sites.DataConnection", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Configuration") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("Protocol") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("DataConnections"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Sites.Site", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Description") .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("GrpcNodeAAddress") .HasColumnType("nvarchar(max)"); b.Property("GrpcNodeBAddress") .HasColumnType("nvarchar(max)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("NodeAAddress") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("NodeBAddress") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("SiteIdentifier") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.HasIndex("SiteIdentifier") .IsUnique(); b.ToTable("Sites"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Sites.SiteDataConnectionAssignment", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("DataConnectionId") .HasColumnType("int"); b.Property("SiteId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("DataConnectionId"); b.HasIndex("SiteId", "DataConnectionId") .IsUnique(); b.ToTable("SiteDataConnectionAssignments"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.Template", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Description") .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("ParentTemplateId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.HasIndex("ParentTemplateId"); b.ToTable("Templates"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateAlarm", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Description") .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("IsLocked") .HasColumnType("bit"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("OnTriggerScriptId") .HasColumnType("int"); b.Property("PriorityLevel") .HasColumnType("int"); b.Property("TemplateId") .HasColumnType("int"); b.Property("TriggerConfiguration") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("TriggerType") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("TemplateId", "Name") .IsUnique(); b.ToTable("TemplateAlarms"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateAttribute", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("DataSourceReference") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("DataType") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("Description") .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("IsLocked") .HasColumnType("bit"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("TemplateId") .HasColumnType("int"); b.Property("Value") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.HasKey("Id"); b.HasIndex("TemplateId", "Name") .IsUnique(); b.ToTable("TemplateAttributes"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateComposition", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ComposedTemplateId") .HasColumnType("int"); b.Property("InstanceName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("TemplateId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("ComposedTemplateId"); b.HasIndex("TemplateId", "InstanceName") .IsUnique(); b.ToTable("TemplateCompositions"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateScript", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Code") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("IsLocked") .HasColumnType("bit"); b.Property("MinTimeBetweenRuns") .HasColumnType("time"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("ParameterDefinitions") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("ReturnDefinition") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("TemplateId") .HasColumnType("int"); b.Property("TriggerConfiguration") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)"); b.Property("TriggerType") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("TemplateId", "Name") .IsUnique(); b.ToTable("TemplateScripts"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Deployment.DeployedConfigSnapshot", b => { b.HasOne("ScadaLink.Commons.Entities.Instances.Instance", null) .WithMany() .HasForeignKey("InstanceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Deployment.DeploymentRecord", b => { b.HasOne("ScadaLink.Commons.Entities.Instances.Instance", null) .WithMany() .HasForeignKey("InstanceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.ExternalSystems.ExternalSystemMethod", b => { b.HasOne("ScadaLink.Commons.Entities.ExternalSystems.ExternalSystemDefinition", null) .WithMany() .HasForeignKey("ExternalSystemDefinitionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.Area", b => { b.HasOne("ScadaLink.Commons.Entities.Instances.Area", null) .WithMany("Children") .HasForeignKey("ParentAreaId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("ScadaLink.Commons.Entities.Sites.Site", null) .WithMany() .HasForeignKey("SiteId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.Instance", b => { b.HasOne("ScadaLink.Commons.Entities.Instances.Area", null) .WithMany() .HasForeignKey("AreaId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("ScadaLink.Commons.Entities.Sites.Site", null) .WithMany() .HasForeignKey("SiteId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany() .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.InstanceAttributeOverride", b => { b.HasOne("ScadaLink.Commons.Entities.Instances.Instance", null) .WithMany("AttributeOverrides") .HasForeignKey("InstanceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.InstanceConnectionBinding", b => { b.HasOne("ScadaLink.Commons.Entities.Sites.DataConnection", null) .WithMany() .HasForeignKey("DataConnectionId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("ScadaLink.Commons.Entities.Instances.Instance", null) .WithMany("ConnectionBindings") .HasForeignKey("InstanceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Notifications.NotificationRecipient", b => { b.HasOne("ScadaLink.Commons.Entities.Notifications.NotificationList", null) .WithMany("Recipients") .HasForeignKey("NotificationListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Security.SiteScopeRule", b => { b.HasOne("ScadaLink.Commons.Entities.Security.LdapGroupMapping", null) .WithMany() .HasForeignKey("LdapGroupMappingId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ScadaLink.Commons.Entities.Sites.Site", null) .WithMany() .HasForeignKey("SiteId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Sites.SiteDataConnectionAssignment", b => { b.HasOne("ScadaLink.Commons.Entities.Sites.DataConnection", null) .WithMany() .HasForeignKey("DataConnectionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ScadaLink.Commons.Entities.Sites.Site", null) .WithMany() .HasForeignKey("SiteId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.Template", b => { b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany() .HasForeignKey("ParentTemplateId") .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateAlarm", b => { b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany("Alarms") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateAttribute", b => { b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany("Attributes") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateComposition", b => { b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany() .HasForeignKey("ComposedTemplateId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany("Compositions") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.TemplateScript", b => { b.HasOne("ScadaLink.Commons.Entities.Templates.Template", null) .WithMany("Scripts") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.Area", b => { b.Navigation("Children"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Instances.Instance", b => { b.Navigation("AttributeOverrides"); b.Navigation("ConnectionBindings"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Notifications.NotificationList", b => { b.Navigation("Recipients"); }); modelBuilder.Entity("ScadaLink.Commons.Entities.Templates.Template", b => { b.Navigation("Alarms"); b.Navigation("Attributes"); b.Navigation("Compositions"); b.Navigation("Scripts"); }); #pragma warning restore 612, 618 } } }