diff --git a/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs b/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs
index 02760bce..cc97b80f 100644
--- a/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs
+++ b/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs
@@ -1,6 +1,8 @@
-using System.Security.Claims;
+using System.Net;
+using System.Security.Claims;
using System.Text.Encodings.Web;
using LBPUnion.ProjectLighthouse.Database;
+using LBPUnion.ProjectLighthouse.Helpers;
using LBPUnion.ProjectLighthouse.Types.Entities.Token;
using Microsoft.AspNetCore.Authentication;
using Microsoft.Extensions.Logging.Abstractions;
@@ -36,10 +38,17 @@ public class TokenAuthHandler : AuthenticationHandler
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "WebTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "AnnouncementId",
+ table: "WebsiteAnnouncements",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "VisitedLevelId",
+ table: "VisitedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "UserId",
+ table: "Users",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "SlotId",
+ table: "Slots",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "ScoreId",
+ table: "Scores",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "ReviewId",
+ table: "Reviews",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "ReportId",
+ table: "Reports",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "RegistrationTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "RatedReviewId",
+ table: "RatedReviews",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "RatedLevelId",
+ table: "RatedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "RatingId",
+ table: "RatedComments",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "QueuedLevelId",
+ table: "QueuedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PlaylistId",
+ table: "Playlists",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PlatformLinkAttemptId",
+ table: "PlatformLinkAttempts",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PhotoSubjectId",
+ table: "PhotoSubjects",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PhotoId",
+ table: "Photos",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "PasswordResetTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "Id",
+ table: "Notifications",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "HeartedProfileId",
+ table: "HeartedProfiles",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "HeartedPlaylistId",
+ table: "HeartedPlaylists",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "HeartedLevelId",
+ table: "HeartedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "TicketHash",
+ table: "GameTokens",
+ type: "varchar(64)",
+ maxLength: 64,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "longtext",
+ oldNullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4")
+ .OldAnnotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "GameTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AddColumn(
+ name: "LocationHash",
+ table: "GameTokens",
+ type: "varchar(64)",
+ maxLength: 64,
+ nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.AlterColumn(
+ name: "EmailVerificationTokenId",
+ table: "EmailVerificationTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "EmailSetTokenId",
+ table: "EmailSetTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "CategoryId",
+ table: "CustomCategories",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "CommentId",
+ table: "Comments",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "CaseId",
+ table: "Cases",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "BlockedProfileId",
+ table: "BlockedProfiles",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "Id",
+ table: "APIKeys",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "LocationHash",
+ table: "GameTokens");
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "WebTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "AnnouncementId",
+ table: "WebsiteAnnouncements",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "VisitedLevelId",
+ table: "VisitedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "UserId",
+ table: "Users",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "SlotId",
+ table: "Slots",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "ScoreId",
+ table: "Scores",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "ReviewId",
+ table: "Reviews",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "ReportId",
+ table: "Reports",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "RegistrationTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "RatedReviewId",
+ table: "RatedReviews",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "RatedLevelId",
+ table: "RatedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "RatingId",
+ table: "RatedComments",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "QueuedLevelId",
+ table: "QueuedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PlaylistId",
+ table: "Playlists",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PlatformLinkAttemptId",
+ table: "PlatformLinkAttempts",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PhotoSubjectId",
+ table: "PhotoSubjects",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "PhotoId",
+ table: "Photos",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "PasswordResetTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "Id",
+ table: "Notifications",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "HeartedProfileId",
+ table: "HeartedProfiles",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "HeartedPlaylistId",
+ table: "HeartedPlaylists",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "HeartedLevelId",
+ table: "HeartedLevels",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "TicketHash",
+ table: "GameTokens",
+ type: "longtext",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "varchar(64)",
+ oldMaxLength: 64,
+ oldNullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4")
+ .OldAnnotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.AlterColumn(
+ name: "TokenId",
+ table: "GameTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "EmailVerificationTokenId",
+ table: "EmailVerificationTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "EmailSetTokenId",
+ table: "EmailSetTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "CategoryId",
+ table: "CustomCategories",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "CommentId",
+ table: "Comments",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "CaseId",
+ table: "Cases",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "BlockedProfileId",
+ table: "BlockedProfiles",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ migrationBuilder.AlterColumn(
+ name: "Id",
+ table: "APIKeys",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+ }
+ }
+}
diff --git a/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs b/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs
index 34e58686..6c801706 100644
--- a/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs
+++ b/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs
@@ -3,6 +3,7 @@ using System;
using LBPUnion.ProjectLighthouse.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
@@ -16,15 +17,19 @@ namespace ProjectLighthouse.Migrations
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("ProductVersion", "8.0.2")
+ .HasAnnotation("ProductVersion", "8.0.6")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
modelBuilder.Entity("LBPUnion.ProjectLighthouse.Types.Entities.Interaction.HeartedLevelEntity", b =>
{
b.Property("HeartedLevelId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedLevelId"));
+
b.Property("SlotId")
.HasColumnType("int");
@@ -46,6 +51,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedPlaylistId"));
+
b.Property("PlaylistId")
.HasColumnType("int");
@@ -67,6 +74,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedProfileId"));
+
b.Property("HeartedUserId")
.HasColumnType("int");
@@ -88,6 +97,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("QueuedLevelId"));
+
b.Property("SlotId")
.HasColumnType("int");
@@ -109,6 +120,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatingId"));
+
b.Property("CommentId")
.HasColumnType("int");
@@ -133,6 +146,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatedLevelId"));
+
b.Property("Rating")
.HasColumnType("int");
@@ -163,6 +178,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatedReviewId"));
+
b.Property("ReviewId")
.HasColumnType("int");
@@ -187,6 +204,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("VisitedLevelId"));
+
b.Property("PlaysLBP1")
.HasColumnType("int");
@@ -217,6 +236,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CategoryId"));
+
b.Property("Description")
.HasColumnType("longtext");
@@ -243,6 +264,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PlaylistId"));
+
b.Property("CreatorId")
.HasColumnType("int");
@@ -271,6 +294,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ReviewId"));
+
b.Property("Deleted")
.HasColumnType("tinyint(1)");
@@ -318,6 +343,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ScoreId"));
+
b.Property("ChildSlotId")
.HasColumnType("int");
@@ -351,6 +378,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SlotId"));
+
b.Property("AuthorLabels")
.IsRequired()
.HasColumnType("longtext");
@@ -504,6 +533,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ReportId"));
+
b.Property("Bounds")
.HasColumnType("longtext");
@@ -550,6 +581,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CaseId"));
+
b.Property("AffectedId")
.HasColumnType("int");
@@ -604,6 +637,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
b.Property("IsDismissed")
.HasColumnType("tinyint(1)");
@@ -629,6 +664,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("BlockedProfileId"));
+
b.Property("BlockedUserId")
.HasColumnType("int");
@@ -650,6 +687,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CommentId"));
+
b.Property("Deleted")
.HasColumnType("tinyint(1)");
@@ -719,6 +758,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhotoId"));
+
b.Property("CreatorId")
.HasColumnType("int");
@@ -759,6 +800,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhotoSubjectId"));
+
b.Property("Bounds")
.HasColumnType("longtext");
@@ -783,6 +826,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PlatformLinkAttemptId"));
+
b.Property("IPAddress")
.HasColumnType("longtext");
@@ -811,6 +856,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("UserId"));
+
b.Property("AdminGrantedSlots")
.HasColumnType("int");
@@ -916,6 +963,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
b.Property("Created")
.HasColumnType("datetime(6)");
@@ -936,6 +985,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("EmailSetTokenId"));
+
b.Property("EmailToken")
.HasColumnType("longtext");
@@ -958,6 +1009,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("EmailVerificationTokenId"));
+
b.Property("EmailToken")
.HasColumnType("longtext");
@@ -980,17 +1033,24 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("ExpiresAt")
.HasColumnType("datetime(6)");
b.Property("GameVersion")
.HasColumnType("int");
+ b.Property("LocationHash")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
b.Property("Platform")
.HasColumnType("int");
b.Property("TicketHash")
- .HasColumnType("longtext");
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
b.Property("UserId")
.HasColumnType("int");
@@ -1011,6 +1071,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("Created")
.HasColumnType("datetime(6)");
@@ -1031,6 +1093,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("Created")
.HasColumnType("datetime(6)");
@@ -1051,6 +1115,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("ExpiresAt")
.HasColumnType("datetime(6)");
@@ -1074,6 +1140,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("AnnouncementId"));
+
b.Property("Content")
.HasColumnType("longtext");
diff --git a/ProjectLighthouse/Tickets/NPTicket.cs b/ProjectLighthouse/Tickets/NPTicket.cs
index bb11a93e..69173d7c 100644
--- a/ProjectLighthouse/Tickets/NPTicket.cs
+++ b/ProjectLighthouse/Tickets/NPTicket.cs
@@ -185,7 +185,7 @@ public class NPTicket
}
// Used to identify duplicate tickets
- npTicket.TicketHash = CryptoHelper.Sha1Hash(data);
+ npTicket.TicketHash = CryptoHelper.Sha256Hash(data);
#if DEBUG
Logger.Debug("npTicket data:", LogArea.Login);
diff --git a/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs b/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs
index c1bb1625..ab7d3a16 100644
--- a/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs
+++ b/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs
@@ -23,7 +23,11 @@ public class GameTokenEntity
public Platform Platform { get; set; }
+ [StringLength(64)]
public string TicketHash { get; set; }
+ [StringLength(64)]
+ public string LocationHash { get; set; }
+
public DateTime ExpiresAt { get; set; }
}
\ No newline at end of file