diff --git a/Minecraft-Realms-Emulator/Entities/Connection.cs b/Minecraft-Realms-Emulator/Entities/Connection.cs
index d8574a8..2cdce45 100644
--- a/Minecraft-Realms-Emulator/Entities/Connection.cs
+++ b/Minecraft-Realms-Emulator/Entities/Connection.cs
@@ -1,10 +1,8 @@
-using Microsoft.EntityFrameworkCore;
-
-namespace Minecraft_Realms_Emulator.Entities
+namespace Minecraft_Realms_Emulator.Entities
{
- [Keyless]
public class Connection
{
+ public int Id { get; set; }
public World World { get; set; }
public string Address { get; set; } = string.Empty;
public bool PendingUpdate { get; set; }
diff --git a/Minecraft-Realms-Emulator/Migrations/20240218160304_Connections_Id.Designer.cs b/Minecraft-Realms-Emulator/Migrations/20240218160304_Connections_Id.Designer.cs
new file mode 100644
index 0000000..6c670f8
--- /dev/null
+++ b/Minecraft-Realms-Emulator/Migrations/20240218160304_Connections_Id.Designer.cs
@@ -0,0 +1,219 @@
+//
+using System;
+using System.Text.Json;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Minecraft_Realms_Emulator.Data;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace Minecraft_Realms_Emulator.Migrations
+{
+ [DbContext(typeof(DataContext))]
+ [Migration("20240218160304_Connections_Id")]
+ partial class Connections_Id
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.1")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Backup", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("BackupId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("LastModifiedDate")
+ .HasColumnType("bigint");
+
+ b.Property("Metadata")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Size")
+ .HasColumnType("integer");
+
+ b.Property("WorldId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("WorldId");
+
+ b.ToTable("Backups");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Connection", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Address")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("PendingUpdate")
+ .HasColumnType("boolean");
+
+ b.Property("WorldId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("WorldId");
+
+ b.ToTable("Connections");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Subscription", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("StartDate")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("SubscriptionType")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorldId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("WorldId");
+
+ b.ToTable("Subscriptions");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.World", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ActiveSlot")
+ .HasColumnType("integer");
+
+ b.Property("DaysLeft")
+ .HasColumnType("integer");
+
+ b.Property("Expired")
+ .HasColumnType("boolean");
+
+ b.Property("ExpiredTrial")
+ .HasColumnType("boolean");
+
+ b.Property("MaxPlayers")
+ .HasColumnType("integer");
+
+ b.Property("Member")
+ .HasColumnType("boolean");
+
+ b.Property("MinigameId")
+ .HasColumnType("integer");
+
+ b.Property("MinigameImage")
+ .HasColumnType("text");
+
+ b.Property("MinigameName")
+ .HasColumnType("text");
+
+ b.Property("Motd")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .HasColumnType("text");
+
+ b.Property("Owner")
+ .HasColumnType("text");
+
+ b.Property("OwnerUUID")
+ .HasColumnType("text");
+
+ b.Property("Players")
+ .IsRequired()
+ .HasColumnType("text[]");
+
+ b.Property("RemoteSubscriptionId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Slots")
+ .IsRequired()
+ .HasColumnType("jsonb[]");
+
+ b.Property("State")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorldType")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Worlds");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Backup", b =>
+ {
+ b.HasOne("Minecraft_Realms_Emulator.Entities.World", "World")
+ .WithMany()
+ .HasForeignKey("WorldId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("World");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Connection", b =>
+ {
+ b.HasOne("Minecraft_Realms_Emulator.Entities.World", "World")
+ .WithMany()
+ .HasForeignKey("WorldId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("World");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Subscription", b =>
+ {
+ b.HasOne("Minecraft_Realms_Emulator.Entities.World", "World")
+ .WithMany()
+ .HasForeignKey("WorldId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("World");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Minecraft-Realms-Emulator/Migrations/20240218160304_Connections_Id.cs b/Minecraft-Realms-Emulator/Migrations/20240218160304_Connections_Id.cs
new file mode 100644
index 0000000..f223cf3
--- /dev/null
+++ b/Minecraft-Realms-Emulator/Migrations/20240218160304_Connections_Id.cs
@@ -0,0 +1,40 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace Minecraft_Realms_Emulator.Migrations
+{
+ ///
+ public partial class Connections_Id : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "Id",
+ table: "Connections",
+ type: "integer",
+ nullable: false,
+ defaultValue: 0)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ migrationBuilder.AddPrimaryKey(
+ name: "PK_Connections",
+ table: "Connections",
+ column: "Id");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropPrimaryKey(
+ name: "PK_Connections",
+ table: "Connections");
+
+ migrationBuilder.DropColumn(
+ name: "Id",
+ table: "Connections");
+ }
+ }
+}
diff --git a/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs b/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs
index a55261b..8d9e37b 100644
--- a/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs
+++ b/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs
@@ -57,6 +57,12 @@ namespace Minecraft_Realms_Emulator.Migrations
modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Connection", b =>
{
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
b.Property("Address")
.IsRequired()
.HasColumnType("text");
@@ -67,6 +73,8 @@ namespace Minecraft_Realms_Emulator.Migrations
b.Property("WorldId")
.HasColumnType("integer");
+ b.HasKey("Id");
+
b.HasIndex("WorldId");
b.ToTable("Connections");