diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180906135553_MSInitialCreate.cs b/src/Tgstation.Server.Host/Database/Migrations/20180906135553_MSInitialCreate.cs
index 59917ec1f9..4b379f424d 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180906135553_MSInitialCreate.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180906135553_MSInitialCreate.cs
@@ -10,10 +10,7 @@ namespace Tgstation.Server.Host.Database.Migrations
#pragma warning disable CA1506
public partial class MSInitialCreate : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -593,10 +590,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Restrict);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180906143029_MYInitialCreate.cs b/src/Tgstation.Server.Host/Database/Migrations/20180906143029_MYInitialCreate.cs
index 70372d9875..0ad0bf0c33 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180906143029_MYInitialCreate.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180906143029_MYInitialCreate.cs
@@ -10,10 +10,7 @@ namespace Tgstation.Server.Host.Database.Migrations
#pragma warning disable CA1506
public partial class MYInitialCreate : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -590,10 +587,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Restrict);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180918020726_MYAddMinimumSecurity.cs b/src/Tgstation.Server.Host/Database/Migrations/20180918020726_MYAddMinimumSecurity.cs
index 638da950cd..398697723b 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180918020726_MYAddMinimumSecurity.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180918020726_MYAddMinimumSecurity.cs
@@ -9,10 +9,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MYAddMinimumSecurity : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -31,10 +28,7 @@ namespace Tgstation.Server.Host.Database.Migrations
defaultValue: (int)DreamDaemonSecurity.Safe);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180918021228_MSAddMinimumSecurity.cs b/src/Tgstation.Server.Host/Database/Migrations/20180918021228_MSAddMinimumSecurity.cs
index dbf9ebf569..02274a85c1 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180918021228_MSAddMinimumSecurity.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180918021228_MSAddMinimumSecurity.cs
@@ -9,10 +9,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MSAddMinimumSecurity : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -31,10 +28,7 @@ namespace Tgstation.Server.Host.Database.Migrations
defaultValue: (int)DreamDaemonSecurity.Safe);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs b/src/Tgstation.Server.Host/Database/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs
index b112f3e8f4..02db35bd3f 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MYNullableAndForeignKeyCleanup : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -119,10 +116,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Cascade);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs b/src/Tgstation.Server.Host/Database/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs
index b479d8d1a0..00b73953e6 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MSNullableAndForeignKeyCleanup : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -117,10 +114,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Cascade);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180926033145_MSReattachCompileJobRequired.cs b/src/Tgstation.Server.Host/Database/Migrations/20180926033145_MSReattachCompileJobRequired.cs
index ca56d5d418..205ffd2e10 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180926033145_MSReattachCompileJobRequired.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180926033145_MSReattachCompileJobRequired.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MSReattachCompileJobRequired : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -37,10 +34,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Cascade);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20180926034014_MYReattachCompileJobRequired.cs b/src/Tgstation.Server.Host/Database/Migrations/20180926034014_MYReattachCompileJobRequired.cs
index d13c3e7424..ae4de6c9a7 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20180926034014_MYReattachCompileJobRequired.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20180926034014_MYReattachCompileJobRequired.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MYReattachCompileJobRequired : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -37,10 +34,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Cascade);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20181124231534_MSToggleTestmergeComments.cs b/src/Tgstation.Server.Host/Database/Migrations/20181124231534_MSToggleTestmergeComments.cs
index acf6794a78..6d7f7d1b63 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20181124231534_MSToggleTestmergeComments.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20181124231534_MSToggleTestmergeComments.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MSToggleTestmergeComments : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -24,10 +21,7 @@ namespace Tgstation.Server.Host.Database.Migrations
defaultValue: true);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20181124231549_MYToggleTestmergeComments.cs b/src/Tgstation.Server.Host/Database/Migrations/20181124231549_MYToggleTestmergeComments.cs
index f4b64ac8ba..5084606961 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20181124231549_MYToggleTestmergeComments.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20181124231549_MYToggleTestmergeComments.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MYToggleTestmergeComments : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -24,10 +21,7 @@ namespace Tgstation.Server.Host.Database.Migrations
defaultValue: true);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20190219041825_MSFixRevInfoIndex.cs b/src/Tgstation.Server.Host/Database/Migrations/20190219041825_MSFixRevInfoIndex.cs
index 04ef31f946..9fae2c0721 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20190219041825_MSFixRevInfoIndex.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20190219041825_MSFixRevInfoIndex.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MSFixRevInfoIndex : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -32,10 +29,7 @@ namespace Tgstation.Server.Host.Database.Migrations
unique: true);
}
- ///
- /// Unpplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20190219042440_MYFixRevInfoIndex.cs b/src/Tgstation.Server.Host/Database/Migrations/20190219042440_MYFixRevInfoIndex.cs
index 00368eda58..df1c0e9e1e 100644
--- a/src/Tgstation.Server.Host/Database/Migrations/20190219042440_MYFixRevInfoIndex.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20190219042440_MYFixRevInfoIndex.cs
@@ -8,10 +8,7 @@ namespace Tgstation.Server.Host.Database.Migrations
///
public partial class MYFixRevInfoIndex : Migration
{
- ///
- /// Applies the migration
- ///
- /// The to use
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -44,10 +41,7 @@ namespace Tgstation.Server.Host.Database.Migrations
onDelete: ReferentialAction.Cascade);
}
- ///
- /// Unapplies the migration
- ///
- /// The to use
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20200121170252_MSAddChatBotReconnectionInterval.Designer.cs b/src/Tgstation.Server.Host/Database/Migrations/20200121170252_MSAddChatBotReconnectionInterval.Designer.cs
new file mode 100644
index 0000000000..b524f63317
--- /dev/null
+++ b/src/Tgstation.Server.Host/Database/Migrations/20200121170252_MSAddChatBotReconnectionInterval.Designer.cs
@@ -0,0 +1,680 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace Tgstation.Server.Host.Database.Migrations
+{
+ [DbContext(typeof(SqlServerDatabaseContext))]
+ [Migration("20200121170252_MSAddChatBotReconnectionInterval")]
+ partial class MSAddChatBotReconnectionInterval
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "2.2.6-servicing-10079")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ConnectionString")
+ .IsRequired();
+
+ b.Property("Enabled");
+
+ b.Property("InstanceId");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("Provider");
+
+ b.Property("ReconnectionInterval");
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("ChatBots");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ChatSettingsId");
+
+ b.Property("DiscordChannelId")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("IrcChannel");
+
+ b.Property("IsAdminChannel")
+ .IsRequired();
+
+ b.Property("IsUpdatesChannel")
+ .IsRequired();
+
+ b.Property("IsWatchdogChannel")
+ .IsRequired();
+
+ b.Property("Tag");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ChatSettingsId", "DiscordChannelId")
+ .IsUnique()
+ .HasFilter("[DiscordChannelId] IS NOT NULL");
+
+ b.HasIndex("ChatSettingsId", "IrcChannel")
+ .IsUnique()
+ .HasFilter("[IrcChannel] IS NOT NULL");
+
+ b.ToTable("ChatChannels");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ByondVersion")
+ .IsRequired();
+
+ b.Property("DirectoryName")
+ .IsRequired();
+
+ b.Property("DmeName")
+ .IsRequired();
+
+ b.Property("JobId");
+
+ b.Property("MinimumSecurityLevel");
+
+ b.Property("Output")
+ .IsRequired();
+
+ b.Property("RevisionInformationId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DirectoryName");
+
+ b.HasIndex("JobId")
+ .IsUnique();
+
+ b.HasIndex("RevisionInformationId");
+
+ b.ToTable("CompileJobs");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AccessToken");
+
+ b.Property("AllowWebClient")
+ .IsRequired();
+
+ b.Property("AutoStart")
+ .IsRequired();
+
+ b.Property("InstanceId");
+
+ b.Property("PrimaryPort");
+
+ b.Property("ProcessId");
+
+ b.Property("SecondaryPort");
+
+ b.Property("SecurityLevel");
+
+ b.Property("SoftRestart")
+ .IsRequired();
+
+ b.Property("SoftShutdown")
+ .IsRequired();
+
+ b.Property("StartupTimeout");
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("DreamDaemonSettings");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ApiValidationPort");
+
+ b.Property("ApiValidationSecurityLevel");
+
+ b.Property("InstanceId");
+
+ b.Property("ProjectName");
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("DreamMakerSettings");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.Instance", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AutoUpdateInterval");
+
+ b.Property("ConfigurationType");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("Online")
+ .IsRequired();
+
+ b.Property("Path")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("Path")
+ .IsUnique();
+
+ b.ToTable("Instances");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ByondRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("ChatBotRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("ConfigurationRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("DreamDaemonRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("DreamMakerRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("InstanceId");
+
+ b.Property("InstanceUserRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("RepositoryRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("UserId")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId");
+
+ b.HasIndex("UserId", "InstanceId")
+ .IsUnique();
+
+ b.ToTable("InstanceUsers");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("CancelRight")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("CancelRightsType")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("Cancelled")
+ .IsRequired();
+
+ b.Property("CancelledById");
+
+ b.Property("Description")
+ .IsRequired();
+
+ b.Property("ExceptionDetails");
+
+ b.Property("InstanceId");
+
+ b.Property("StartedAt")
+ .IsRequired();
+
+ b.Property("StartedById");
+
+ b.Property("StoppedAt");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CancelledById");
+
+ b.HasIndex("InstanceId");
+
+ b.HasIndex("StartedById");
+
+ b.ToTable("Jobs");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AccessIdentifier")
+ .IsRequired();
+
+ b.Property("ChatChannelsJson")
+ .IsRequired();
+
+ b.Property("ChatCommandsJson")
+ .IsRequired();
+
+ b.Property("CompileJobId");
+
+ b.Property("IsPrimary");
+
+ b.Property("Port");
+
+ b.Property("ProcessId");
+
+ b.Property("RebootState");
+
+ b.Property("ServerCommandsJson")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompileJobId");
+
+ b.ToTable("ReattachInformations");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AccessToken");
+
+ b.Property("AccessUser");
+
+ b.Property("AutoUpdatesKeepTestMerges")
+ .IsRequired();
+
+ b.Property("AutoUpdatesSynchronize")
+ .IsRequired();
+
+ b.Property("CommitterEmail")
+ .IsRequired();
+
+ b.Property("CommitterName")
+ .IsRequired();
+
+ b.Property("InstanceId");
+
+ b.Property("PostTestMergeComment")
+ .IsRequired();
+
+ b.Property("PushTestMergeCommits")
+ .IsRequired();
+
+ b.Property("ShowTestMergeCommitters")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("RepositorySettings");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("RevisionInformationId");
+
+ b.Property("TestMergeId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RevisionInformationId");
+
+ b.HasIndex("TestMergeId");
+
+ b.ToTable("RevInfoTestMerges");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("CommitSha")
+ .IsRequired()
+ .HasMaxLength(40);
+
+ b.Property("InstanceId");
+
+ b.Property("OriginCommitSha")
+ .IsRequired()
+ .HasMaxLength(40);
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId", "CommitSha")
+ .IsUnique();
+
+ b.ToTable("RevisionInformations");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("Author")
+ .IsRequired();
+
+ b.Property("BodyAtMerge")
+ .IsRequired();
+
+ b.Property("Comment");
+
+ b.Property("MergedAt");
+
+ b.Property("MergedById");
+
+ b.Property("Number")
+ .IsRequired();
+
+ b.Property("PrimaryRevisionInformationId")
+ .IsRequired();
+
+ b.Property("PullRequestRevision")
+ .IsRequired();
+
+ b.Property("TitleAtMerge")
+ .IsRequired();
+
+ b.Property("Url")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("MergedById");
+
+ b.HasIndex("PrimaryRevisionInformationId")
+ .IsUnique();
+
+ b.ToTable("TestMerges");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AdministrationRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("CanonicalName")
+ .IsRequired();
+
+ b.Property("CreatedAt")
+ .IsRequired();
+
+ b.Property("CreatedById");
+
+ b.Property("Enabled")
+ .IsRequired();
+
+ b.Property("InstanceManagerRights")
+ .HasConversion(new ValueConverter(v => default(decimal), v => default(decimal), new ConverterMappingHints(precision: 20, scale: 0)));
+
+ b.Property("LastPasswordUpdate");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("PasswordHash");
+
+ b.Property("SystemIdentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CanonicalName")
+ .IsUnique();
+
+ b.HasIndex("CreatedById");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AlphaId");
+
+ b.Property("AlphaIsActive");
+
+ b.Property("BravoId");
+
+ b.Property("InstanceId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AlphaId");
+
+ b.HasIndex("BravoId");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("WatchdogReattachInformations");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithMany("ChatSettings")
+ .HasForeignKey("InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.ChatBot", "ChatSettings")
+ .WithMany("Channels")
+ .HasForeignKey("ChatSettingsId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Job", "Job")
+ .WithOne()
+ .HasForeignKey("Tgstation.Server.Host.Models.CompileJob", "JobId")
+ .OnDelete(DeleteBehavior.Restrict);
+
+ b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "RevisionInformation")
+ .WithMany("CompileJobs")
+ .HasForeignKey("RevisionInformationId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithOne("DreamDaemonSettings")
+ .HasForeignKey("Tgstation.Server.Host.Models.DreamDaemonSettings", "InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithOne("DreamMakerSettings")
+ .HasForeignKey("Tgstation.Server.Host.Models.DreamMakerSettings", "InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithMany("InstanceUsers")
+ .HasForeignKey("InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("Tgstation.Server.Host.Models.User")
+ .WithMany("InstanceUsers")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.User", "CancelledBy")
+ .WithMany()
+ .HasForeignKey("CancelledById");
+
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithMany("Jobs")
+ .HasForeignKey("InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("Tgstation.Server.Host.Models.User", "StartedBy")
+ .WithMany()
+ .HasForeignKey("StartedById")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.CompileJob", "CompileJob")
+ .WithMany()
+ .HasForeignKey("CompileJobId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithOne("RepositorySettings")
+ .HasForeignKey("Tgstation.Server.Host.Models.RepositorySettings", "InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "RevisionInformation")
+ .WithMany("ActiveTestMerges")
+ .HasForeignKey("RevisionInformationId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("Tgstation.Server.Host.Models.TestMerge", "TestMerge")
+ .WithMany("RevisonInformations")
+ .HasForeignKey("TestMergeId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
+ .WithMany("RevisionInformations")
+ .HasForeignKey("InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.User", "MergedBy")
+ .WithMany("TestMerges")
+ .HasForeignKey("MergedById")
+ .OnDelete(DeleteBehavior.Restrict);
+
+ b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "PrimaryRevisionInformation")
+ .WithOne("PrimaryTestMerge")
+ .HasForeignKey("Tgstation.Server.Host.Models.TestMerge", "PrimaryRevisionInformationId")
+ .OnDelete(DeleteBehavior.Restrict);
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.User", "CreatedBy")
+ .WithMany("CreatedUsers")
+ .HasForeignKey("CreatedById");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
+ {
+ b.HasOne("Tgstation.Server.Host.Models.ReattachInformation", "Alpha")
+ .WithMany()
+ .HasForeignKey("AlphaId");
+
+ b.HasOne("Tgstation.Server.Host.Models.ReattachInformation", "Bravo")
+ .WithMany()
+ .HasForeignKey("BravoId");
+
+ b.HasOne("Tgstation.Server.Host.Models.Instance")
+ .WithOne("WatchdogReattachInformation")
+ .HasForeignKey("Tgstation.Server.Host.Models.WatchdogReattachInformation", "InstanceId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/Tgstation.Server.Host/Models/Migrations/20200121170252_MSAddChatBotReconnectionInterval.cs b/src/Tgstation.Server.Host/Database/Migrations/20200121170252_MSAddChatBotReconnectionInterval.cs
similarity index 70%
rename from src/Tgstation.Server.Host/Models/Migrations/20200121170252_MSAddChatBotReconnectionInterval.cs
rename to src/Tgstation.Server.Host/Database/Migrations/20200121170252_MSAddChatBotReconnectionInterval.cs
index 240fd1002b..67a32a559b 100644
--- a/src/Tgstation.Server.Host/Models/Migrations/20200121170252_MSAddChatBotReconnectionInterval.cs
+++ b/src/Tgstation.Server.Host/Database/Migrations/20200121170252_MSAddChatBotReconnectionInterval.cs
@@ -1,17 +1,14 @@
using Microsoft.EntityFrameworkCore.Migrations;
using System;
-namespace Tgstation.Server.Host.Models.Migrations
+namespace Tgstation.Server.Host.Database.Migrations
{
///
/// Adds the property for MSSQL.
///
public partial class MSAddChatBotReconnectionInterval : Migration
{
- ///
- /// Applies the migration.
- ///
- /// The to use.
+ ///
protected override void Up(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
@@ -24,10 +21,7 @@ namespace Tgstation.Server.Host.Models.Migrations
defaultValue: 5L);
}
- ///
- /// Unapplies the migration.
- ///
- /// The to use.
+ ///
protected override void Down(MigrationBuilder migrationBuilder)
{
if (migrationBuilder == null)
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20200121171159_MYAddChatBotReconnectionInterval.Designer.cs b/src/Tgstation.Server.Host/Database/Migrations/20200121171159_MYAddChatBotReconnectionInterval.Designer.cs
new file mode 100644
index 0000000000..5cc461abec
--- /dev/null
+++ b/src/Tgstation.Server.Host/Database/Migrations/20200121171159_MYAddChatBotReconnectionInterval.Designer.cs
@@ -0,0 +1,654 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Tgstation.Server.Host.Database.Migrations
+{
+ [DbContext(typeof(MySqlDatabaseContext))]
+ [Migration("20200121171159_MYAddChatBotReconnectionInterval")]
+ partial class MYAddChatBotReconnectionInterval
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "2.2.6-servicing-10079")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ConnectionString")
+ .IsRequired();
+
+ b.Property("Enabled");
+
+ b.Property("InstanceId");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("Provider");
+
+ b.Property("ReconnectionInterval")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("ChatBots");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ChatSettingsId");
+
+ b.Property("DiscordChannelId");
+
+ b.Property("IrcChannel");
+
+ b.Property("IsAdminChannel")
+ .IsRequired();
+
+ b.Property("IsUpdatesChannel")
+ .IsRequired();
+
+ b.Property("IsWatchdogChannel")
+ .IsRequired();
+
+ b.Property("Tag");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ChatSettingsId", "DiscordChannelId")
+ .IsUnique();
+
+ b.HasIndex("ChatSettingsId", "IrcChannel")
+ .IsUnique();
+
+ b.ToTable("ChatChannels");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ByondVersion")
+ .IsRequired();
+
+ b.Property("DirectoryName")
+ .IsRequired();
+
+ b.Property("DmeName")
+ .IsRequired();
+
+ b.Property("JobId");
+
+ b.Property("MinimumSecurityLevel");
+
+ b.Property("Output")
+ .IsRequired();
+
+ b.Property("RevisionInformationId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DirectoryName");
+
+ b.HasIndex("JobId")
+ .IsUnique();
+
+ b.HasIndex("RevisionInformationId");
+
+ b.ToTable("CompileJobs");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AccessToken");
+
+ b.Property("AllowWebClient")
+ .IsRequired();
+
+ b.Property("AutoStart")
+ .IsRequired();
+
+ b.Property("InstanceId");
+
+ b.Property("PrimaryPort")
+ .IsRequired();
+
+ b.Property("ProcessId");
+
+ b.Property("SecondaryPort")
+ .IsRequired();
+
+ b.Property("SecurityLevel");
+
+ b.Property("SoftRestart")
+ .IsRequired();
+
+ b.Property("SoftShutdown")
+ .IsRequired();
+
+ b.Property("StartupTimeout")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("DreamDaemonSettings");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ApiValidationPort")
+ .IsRequired();
+
+ b.Property("ApiValidationSecurityLevel");
+
+ b.Property("InstanceId");
+
+ b.Property("ProjectName");
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("DreamMakerSettings");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.Instance", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AutoUpdateInterval")
+ .IsRequired();
+
+ b.Property("ConfigurationType");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("Online")
+ .IsRequired();
+
+ b.Property("Path")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("Path")
+ .IsUnique();
+
+ b.ToTable("Instances");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ByondRights");
+
+ b.Property("ChatBotRights");
+
+ b.Property("ConfigurationRights");
+
+ b.Property("DreamDaemonRights");
+
+ b.Property("DreamMakerRights");
+
+ b.Property("InstanceId");
+
+ b.Property("InstanceUserRights");
+
+ b.Property("RepositoryRights");
+
+ b.Property("UserId")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId");
+
+ b.HasIndex("UserId", "InstanceId")
+ .IsUnique();
+
+ b.ToTable("InstanceUsers");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("CancelRight");
+
+ b.Property("CancelRightsType");
+
+ b.Property("Cancelled")
+ .IsRequired();
+
+ b.Property("CancelledById");
+
+ b.Property("Description")
+ .IsRequired();
+
+ b.Property("ExceptionDetails");
+
+ b.Property("InstanceId");
+
+ b.Property("StartedAt")
+ .IsRequired();
+
+ b.Property("StartedById");
+
+ b.Property("StoppedAt");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CancelledById");
+
+ b.HasIndex("InstanceId");
+
+ b.HasIndex("StartedById");
+
+ b.ToTable("Jobs");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AccessIdentifier")
+ .IsRequired();
+
+ b.Property("ChatChannelsJson")
+ .IsRequired();
+
+ b.Property("ChatCommandsJson")
+ .IsRequired();
+
+ b.Property("CompileJobId");
+
+ b.Property("IsPrimary");
+
+ b.Property("Port");
+
+ b.Property("ProcessId");
+
+ b.Property("RebootState");
+
+ b.Property("ServerCommandsJson")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompileJobId");
+
+ b.ToTable("ReattachInformations");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AccessToken");
+
+ b.Property("AccessUser");
+
+ b.Property("AutoUpdatesKeepTestMerges")
+ .IsRequired();
+
+ b.Property("AutoUpdatesSynchronize")
+ .IsRequired();
+
+ b.Property("CommitterEmail")
+ .IsRequired();
+
+ b.Property("CommitterName")
+ .IsRequired();
+
+ b.Property("InstanceId");
+
+ b.Property("PostTestMergeComment")
+ .IsRequired();
+
+ b.Property("PushTestMergeCommits")
+ .IsRequired();
+
+ b.Property("ShowTestMergeCommitters")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.ToTable("RepositorySettings");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("RevisionInformationId");
+
+ b.Property("TestMergeId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RevisionInformationId");
+
+ b.HasIndex("TestMergeId");
+
+ b.ToTable("RevInfoTestMerges");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("CommitSha")
+ .IsRequired()
+ .HasMaxLength(40);
+
+ b.Property("InstanceId");
+
+ b.Property("OriginCommitSha")
+ .IsRequired()
+ .HasMaxLength(40);
+
+ b.HasKey("Id");
+
+ b.HasIndex("InstanceId", "CommitSha")
+ .IsUnique();
+
+ b.ToTable("RevisionInformations");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Author")
+ .IsRequired();
+
+ b.Property("BodyAtMerge")
+ .IsRequired();
+
+ b.Property("Comment");
+
+ b.Property("MergedAt");
+
+ b.Property("MergedById");
+
+ b.Property("Number")
+ .IsRequired();
+
+ b.Property("PrimaryRevisionInformationId")
+ .IsRequired();
+
+ b.Property("PullRequestRevision")
+ .IsRequired();
+
+ b.Property("TitleAtMerge")
+ .IsRequired();
+
+ b.Property("Url")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasIndex("MergedById");
+
+ b.HasIndex("PrimaryRevisionInformationId")
+ .IsUnique();
+
+ b.ToTable("TestMerges");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AdministrationRights");
+
+ b.Property("CanonicalName")
+ .IsRequired();
+
+ b.Property("CreatedAt")
+ .IsRequired();
+
+ b.Property("CreatedById");
+
+ b.Property("Enabled")
+ .IsRequired();
+
+ b.Property("InstanceManagerRights");
+
+ b.Property("LastPasswordUpdate");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("PasswordHash");
+
+ b.Property("SystemIdentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CanonicalName")
+ .IsUnique();
+
+ b.HasIndex("CreatedById");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AlphaId");
+
+ b.Property("AlphaIsActive");
+
+ b.Property