diff --git a/Minecraft-Realms-Emulator/Controllers/SubscriptionsController.cs b/Minecraft-Realms-Emulator/Controllers/SubscriptionsController.cs
index 184a432..53a8ab9 100644
--- a/Minecraft-Realms-Emulator/Controllers/SubscriptionsController.cs
+++ b/Minecraft-Realms-Emulator/Controllers/SubscriptionsController.cs
@@ -27,7 +27,7 @@ namespace Minecraft_Realms_Emulator.Controllers
var sub = new Subscription
{
- StartDate = subscription.StartDate,
+ StartDate = ((DateTimeOffset) subscription.StartDate).ToUnixTimeMilliseconds(),
DaysLeft = subscription.World.DaysLeft,
SubscriptionType = subscription.SubscriptionType
};
diff --git a/Minecraft-Realms-Emulator/Controllers/WorldsController.cs b/Minecraft-Realms-Emulator/Controllers/WorldsController.cs
index 0e9302a..d2cd56b 100644
--- a/Minecraft-Realms-Emulator/Controllers/WorldsController.cs
+++ b/Minecraft-Realms-Emulator/Controllers/WorldsController.cs
@@ -95,7 +95,7 @@ namespace Minecraft_Realms_Emulator.Controllers
var subscription = new Subscription
{
World = world,
- StartDate = ((DateTimeOffset)DateTime.Now).ToUnixTimeMilliseconds().ToString(),
+ StartDate = DateTime.UtcNow,
SubscriptionType = SubscriptionType.NORMAL.ToString()
};
diff --git a/Minecraft-Realms-Emulator/Entities/Subscription.cs b/Minecraft-Realms-Emulator/Entities/Subscription.cs
index ed08048..fdd1c0b 100644
--- a/Minecraft-Realms-Emulator/Entities/Subscription.cs
+++ b/Minecraft-Realms-Emulator/Entities/Subscription.cs
@@ -4,7 +4,7 @@
{
public int Id { get; set; }
public World World { get; set; }
- public string StartDate { get; set; } = ((DateTimeOffset) DateTime.Now).ToUnixTimeMilliseconds().ToString();
+ public DateTime StartDate { get; set; } = DateTime.Now;
public string SubscriptionType { get; set; } = "NORMAL";
}
}
\ No newline at end of file
diff --git a/Minecraft-Realms-Emulator/Migrations/20240315231009_Subscriptions_StartDate_Readable_Field.Designer.cs b/Minecraft-Realms-Emulator/Migrations/20240315231009_Subscriptions_StartDate_Readable_Field.Designer.cs
new file mode 100644
index 0000000..ec79e39
--- /dev/null
+++ b/Minecraft-Realms-Emulator/Migrations/20240315231009_Subscriptions_StartDate_Readable_Field.Designer.cs
@@ -0,0 +1,323 @@
+//
+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("20240315231009_Subscriptions_StartDate_Readable_Field")]
+ partial class Subscriptions_StartDate_Readable_Field
+ {
+ ///
+ 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.Configuration", b =>
+ {
+ b.Property("Key")
+ .HasColumnType("text");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Key");
+
+ b.ToTable("Configuration");
+ });
+
+ 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.Invite", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Date")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("InvitationId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("RecipeintUUID")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorldId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("WorldId");
+
+ b.ToTable("Invites");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Player", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Accepted")
+ .HasColumnType("boolean");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Online")
+ .HasColumnType("boolean");
+
+ b.Property("Operator")
+ .HasColumnType("boolean");
+
+ b.Property("Permission")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Uuid")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorldId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("WorldId");
+
+ b.ToTable("Players");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.Subscription", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("StartDate")
+ .HasColumnType("timestamp with time zone");
+
+ 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("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.Invite", 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.Player", b =>
+ {
+ b.HasOne("Minecraft_Realms_Emulator.Entities.World", "World")
+ .WithMany("Players")
+ .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");
+ });
+
+ modelBuilder.Entity("Minecraft_Realms_Emulator.Entities.World", b =>
+ {
+ b.Navigation("Players");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Minecraft-Realms-Emulator/Migrations/20240315231009_Subscriptions_StartDate_Readable_Field.cs b/Minecraft-Realms-Emulator/Migrations/20240315231009_Subscriptions_StartDate_Readable_Field.cs
new file mode 100644
index 0000000..cb8070a
--- /dev/null
+++ b/Minecraft-Realms-Emulator/Migrations/20240315231009_Subscriptions_StartDate_Readable_Field.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace Minecraft_Realms_Emulator.Migrations
+{
+ ///
+ public partial class Subscriptions_StartDate_Readable_Field : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.Sql("ALTER TABLE \"Subscriptions\" ALTER COLUMN \"StartDate\" TYPE timestamptz USING \"StartDate\"::timestamptz");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.Sql("ALTER TABLE \"Subscriptions\" ALTER COLUMN \"StartDate\" TYPE text USING \"StartDate\"::text");
+ }
+ }
+}
diff --git a/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs b/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs
index e760e0e..1620085 100644
--- a/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs
+++ b/Minecraft-Realms-Emulator/Migrations/DataContextModelSnapshot.cs
@@ -170,9 +170,8 @@ namespace Minecraft_Realms_Emulator.Migrations
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
- b.Property("StartDate")
- .IsRequired()
- .HasColumnType("text");
+ b.Property("StartDate")
+ .HasColumnType("timestamp with time zone");
b.Property("SubscriptionType")
.IsRequired()
diff --git a/Minecraft-Realms-Emulator/Responses/Subscription.cs b/Minecraft-Realms-Emulator/Responses/Subscription.cs
index 1307794..3b02630 100644
--- a/Minecraft-Realms-Emulator/Responses/Subscription.cs
+++ b/Minecraft-Realms-Emulator/Responses/Subscription.cs
@@ -2,7 +2,7 @@
{
public class Subscription
{
- public string StartDate { get; set; }
+ public long StartDate { get; set; }
public int DaysLeft { get; set; }
public string SubscriptionType { get; set; }
}