//
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
}
}
}