diff --git a/ProjectLighthouse/Migrations/20240120214606_AddPublishedAtToWebAnnouncements.cs b/ProjectLighthouse/Migrations/20240120214606_AddPublishedAtToWebAnnouncements.cs
deleted file mode 100644
index cfd53fc9..00000000
--- a/ProjectLighthouse/Migrations/20240120214606_AddPublishedAtToWebAnnouncements.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using LBPUnion.ProjectLighthouse.Database;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace ProjectLighthouse.Migrations
-{
- [DbContext(typeof(DatabaseContext))]
- [Migration("20240120214606_AddPublishedAtToWebAnnouncements")]
- public partial class AddPublishedAtToWebAnnouncements : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.AddColumn(
- name: "PublishedAt",
- table: "WebsiteAnnouncements",
- type: "datetime(6)",
- nullable: false,
- defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropColumn(
- name: "PublishedAt",
- table: "WebsiteAnnouncements");
- }
- }
-}
diff --git a/ProjectLighthouse/Migrations/20240325034658_InitialActivity.cs b/ProjectLighthouse/Migrations/20240325034658_InitialActivity.cs
deleted file mode 100644
index 62ea0bd4..00000000
--- a/ProjectLighthouse/Migrations/20240325034658_InitialActivity.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using System;
-using LBPUnion.ProjectLighthouse.Database;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace LBPUnion.ProjectLighthouse.Migrations
-{
- [DbContext(typeof(DatabaseContext))]
- [Migration("20240325034658_InitialActivity")]
- public partial class InitialActivity : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "Activities",
- columns: table => new
- {
- ActivityId = table.Column(type: "int", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- Timestamp = table.Column(type: "datetime(6)", nullable: false),
- UserId = table.Column(type: "int", nullable: false),
- Type = table.Column(type: "int", nullable: false),
- Discriminator = table.Column(type: "varchar(34)", maxLength: 34, nullable: false)
- .Annotation("MySql:CharSet", "utf8mb4"),
- SlotId = table.Column(type: "int", nullable: true),
- CommentId = table.Column(type: "int", nullable: true),
- PhotoId = table.Column(type: "int", nullable: true),
- NewsId = table.Column(type: "int", nullable: true),
- PlaylistId = table.Column(type: "int", nullable: true),
- ReviewId = table.Column(type: "int", nullable: true),
- ScoreId = table.Column(type: "int", nullable: true),
- TargetUserId = table.Column(type: "int", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Activities", x => x.ActivityId);
- table.ForeignKey(
- name: "FK_Activities_Comments_CommentId",
- column: x => x.CommentId,
- principalTable: "Comments",
- principalColumn: "CommentId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Photos_PhotoId",
- column: x => x.PhotoId,
- principalTable: "Photos",
- principalColumn: "PhotoId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Playlists_PlaylistId",
- column: x => x.PlaylistId,
- principalTable: "Playlists",
- principalColumn: "PlaylistId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Reviews_ReviewId",
- column: x => x.ReviewId,
- principalTable: "Reviews",
- principalColumn: "ReviewId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Scores_ScoreId",
- column: x => x.ScoreId,
- principalTable: "Scores",
- principalColumn: "ScoreId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Slots_SlotId",
- column: x => x.SlotId,
- principalTable: "Slots",
- principalColumn: "SlotId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Users_TargetUserId",
- column: x => x.TargetUserId,
- principalTable: "Users",
- principalColumn: "UserId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "UserId",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Activities_WebsiteAnnouncements_NewsId",
- column: x => x.NewsId,
- principalTable: "WebsiteAnnouncements",
- principalColumn: "AnnouncementId",
- onDelete: ReferentialAction.Cascade);
- })
- .Annotation("MySql:CharSet", "utf8mb4");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_CommentId",
- table: "Activities",
- column: "CommentId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_NewsId",
- table: "Activities",
- column: "NewsId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_PhotoId",
- table: "Activities",
- column: "PhotoId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_PlaylistId",
- table: "Activities",
- column: "PlaylistId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_ReviewId",
- table: "Activities",
- column: "ReviewId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_ScoreId",
- table: "Activities",
- column: "ScoreId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_SlotId",
- table: "Activities",
- column: "SlotId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_TargetUserId",
- table: "Activities",
- column: "TargetUserId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Activities_UserId",
- table: "Activities",
- column: "UserId");
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "Activities");
- }
- }
-}
diff --git a/ProjectLighthouse/Migrations/20240514032512_AddRecentActivity.cs b/ProjectLighthouse/Migrations/20240514032512_AddRecentActivity.cs
new file mode 100644
index 00000000..93c31f11
--- /dev/null
+++ b/ProjectLighthouse/Migrations/20240514032512_AddRecentActivity.cs
@@ -0,0 +1,692 @@
+using System;
+using LBPUnion.ProjectLighthouse.Database;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace LBPUnion.ProjectLighthouse.Migrations
+{
+ [DbContext(typeof(DatabaseContext))]
+ [Migration("20240514032512_AddRecentActivity")]
+ public partial class AddRecentActivity : Migration
+ {
+ ///
+ 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: "TokenId",
+ table: "GameTokens",
+ type: "int",
+ nullable: false,
+ oldClrType: typeof(int),
+ oldType: "int")
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn);
+
+ 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);
+
+ migrationBuilder.CreateTable(
+ name: "Activities",
+ columns: table => new
+ {
+ ActivityId = table.Column(type: "int", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
+ Timestamp = table.Column(type: "datetime(6)", nullable: false),
+ UserId = table.Column(type: "int", nullable: false),
+ Type = table.Column(type: "int", nullable: false),
+ Discriminator = table.Column(type: "varchar(34)", maxLength: 34, nullable: false)
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ SlotId = table.Column(type: "int", nullable: true),
+ CommentId = table.Column(type: "int", nullable: true),
+ PhotoId = table.Column(type: "int", nullable: true),
+ NewsId = table.Column(type: "int", nullable: true),
+ PlaylistId = table.Column(type: "int", nullable: true),
+ ReviewId = table.Column(type: "int", nullable: true),
+ ScoreId = table.Column(type: "int", nullable: true),
+ Points = table.Column(type: "int", nullable: true),
+ TargetUserId = table.Column(type: "int", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Activities", x => x.ActivityId);
+ table.ForeignKey(
+ name: "FK_Activities_Comments_CommentId",
+ column: x => x.CommentId,
+ principalTable: "Comments",
+ principalColumn: "CommentId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Photos_PhotoId",
+ column: x => x.PhotoId,
+ principalTable: "Photos",
+ principalColumn: "PhotoId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Playlists_PlaylistId",
+ column: x => x.PlaylistId,
+ principalTable: "Playlists",
+ principalColumn: "PlaylistId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Reviews_ReviewId",
+ column: x => x.ReviewId,
+ principalTable: "Reviews",
+ principalColumn: "ReviewId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Scores_ScoreId",
+ column: x => x.ScoreId,
+ principalTable: "Scores",
+ principalColumn: "ScoreId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Slots_SlotId",
+ column: x => x.SlotId,
+ principalTable: "Slots",
+ principalColumn: "SlotId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Users_TargetUserId",
+ column: x => x.TargetUserId,
+ principalTable: "Users",
+ principalColumn: "UserId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_Users_UserId",
+ column: x => x.UserId,
+ principalTable: "Users",
+ principalColumn: "UserId",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_Activities_WebsiteAnnouncements_NewsId",
+ column: x => x.NewsId,
+ principalTable: "WebsiteAnnouncements",
+ principalColumn: "AnnouncementId",
+ onDelete: ReferentialAction.Cascade);
+ })
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_CommentId",
+ table: "Activities",
+ column: "CommentId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_NewsId",
+ table: "Activities",
+ column: "NewsId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_PhotoId",
+ table: "Activities",
+ column: "PhotoId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_PlaylistId",
+ table: "Activities",
+ column: "PlaylistId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_ReviewId",
+ table: "Activities",
+ column: "ReviewId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_ScoreId",
+ table: "Activities",
+ column: "ScoreId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_SlotId",
+ table: "Activities",
+ column: "SlotId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_TargetUserId",
+ table: "Activities",
+ column: "TargetUserId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Activities_UserId",
+ table: "Activities",
+ column: "UserId");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "Activities");
+
+ 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: "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 7f069036..8c6bd550 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.3")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
modelBuilder.Entity("LBPUnion.ProjectLighthouse.Types.Entities.Activity.ActivityEntity", b =>
{
b.Property("ActivityId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ActivityId"));
+
b.Property("Discriminator")
.IsRequired()
.HasMaxLength(34)
@@ -56,6 +61,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedLevelId"));
+
b.Property("SlotId")
.HasColumnType("int");
@@ -77,6 +84,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedPlaylistId"));
+
b.Property("PlaylistId")
.HasColumnType("int");
@@ -98,6 +107,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedProfileId"));
+
b.Property("HeartedUserId")
.HasColumnType("int");
@@ -119,6 +130,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("QueuedLevelId"));
+
b.Property("SlotId")
.HasColumnType("int");
@@ -140,6 +153,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatingId"));
+
b.Property("CommentId")
.HasColumnType("int");
@@ -164,6 +179,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatedLevelId"));
+
b.Property("Rating")
.HasColumnType("int");
@@ -194,6 +211,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatedReviewId"));
+
b.Property("ReviewId")
.HasColumnType("int");
@@ -218,6 +237,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("VisitedLevelId"));
+
b.Property("PlaysLBP1")
.HasColumnType("int");
@@ -248,6 +269,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CategoryId"));
+
b.Property("Description")
.HasColumnType("longtext");
@@ -274,6 +297,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PlaylistId"));
+
b.Property("CreatorId")
.HasColumnType("int");
@@ -302,6 +327,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ReviewId"));
+
b.Property("Deleted")
.HasColumnType("tinyint(1)");
@@ -349,6 +376,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ScoreId"));
+
b.Property("ChildSlotId")
.HasColumnType("int");
@@ -382,6 +411,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SlotId"));
+
b.Property("AuthorLabels")
.IsRequired()
.HasColumnType("longtext");
@@ -535,6 +566,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ReportId"));
+
b.Property("Bounds")
.HasColumnType("longtext");
@@ -581,6 +614,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CaseId"));
+
b.Property("AffectedId")
.HasColumnType("int");
@@ -635,6 +670,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
b.Property("IsDismissed")
.HasColumnType("tinyint(1)");
@@ -660,6 +697,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("BlockedProfileId"));
+
b.Property("BlockedUserId")
.HasColumnType("int");
@@ -681,6 +720,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CommentId"));
+
b.Property("Deleted")
.HasColumnType("tinyint(1)");
@@ -750,6 +791,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhotoId"));
+
b.Property("CreatorId")
.HasColumnType("int");
@@ -790,6 +833,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhotoSubjectId"));
+
b.Property("Bounds")
.HasColumnType("longtext");
@@ -814,6 +859,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PlatformLinkAttemptId"));
+
b.Property("IPAddress")
.HasColumnType("longtext");
@@ -842,6 +889,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("UserId"));
+
b.Property("AdminGrantedSlots")
.HasColumnType("int");
@@ -947,6 +996,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
b.Property("Created")
.HasColumnType("datetime(6)");
@@ -967,6 +1018,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("EmailSetTokenId"));
+
b.Property("EmailToken")
.HasColumnType("longtext");
@@ -989,6 +1042,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("EmailVerificationTokenId"));
+
b.Property("EmailToken")
.HasColumnType("longtext");
@@ -1011,6 +1066,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("ExpiresAt")
.HasColumnType("datetime(6)");
@@ -1042,6 +1099,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("Created")
.HasColumnType("datetime(6)");
@@ -1062,6 +1121,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("Created")
.HasColumnType("datetime(6)");
@@ -1082,6 +1143,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId"));
+
b.Property("ExpiresAt")
.HasColumnType("datetime(6)");
@@ -1105,6 +1168,8 @@ namespace ProjectLighthouse.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("int");
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("AnnouncementId"));
+
b.Property("Content")
.HasColumnType("longtext");
@@ -1246,6 +1311,9 @@ namespace ProjectLighthouse.Migrations
{
b.HasBaseType("LBPUnion.ProjectLighthouse.Types.Entities.Activity.ActivityEntity");
+ b.Property("Points")
+ .HasColumnType("int");
+
b.Property("ScoreId")
.HasColumnType("int");
diff --git a/ProjectLighthouse/Types/Activity/ActivityEntityEventHandler.cs b/ProjectLighthouse/Types/Activity/ActivityEntityEventHandler.cs
index f706c6e0..ef8e6fad 100644
--- a/ProjectLighthouse/Types/Activity/ActivityEntityEventHandler.cs
+++ b/ProjectLighthouse/Types/Activity/ActivityEntityEventHandler.cs
@@ -82,6 +82,7 @@ public class ActivityEntityEventHandler : IEntityEventHandler
ScoreId = score.ScoreId,
UserId = score.UserId,
SlotId = score.SlotId,
+ Points = score.Points,
},
_ => null,
},
@@ -245,6 +246,7 @@ public class ActivityEntityEventHandler : IEntityEventHandler
ScoreId = score.ScoreId,
SlotId = score.SlotId,
UserId = score.UserId,
+ Points = score.Points,
};
break;
diff --git a/ProjectLighthouse/Types/Entities/Activity/ScoreActivityEntity.cs b/ProjectLighthouse/Types/Entities/Activity/ScoreActivityEntity.cs
index 4ecc8384..6d6db824 100644
--- a/ProjectLighthouse/Types/Entities/Activity/ScoreActivityEntity.cs
+++ b/ProjectLighthouse/Types/Entities/Activity/ScoreActivityEntity.cs
@@ -22,4 +22,6 @@ public class ScoreActivityEntity : ActivityEntity
[ForeignKey(nameof(SlotId))]
public SlotEntity Slot { get; set; }
+
+ public int Points { get; set; }
}
\ No newline at end of file
diff --git a/ProjectLighthouse/Types/Serialization/Activity/Events/GameEvent.cs b/ProjectLighthouse/Types/Serialization/Activity/Events/GameEvent.cs
index f9f48a0f..0b945c51 100644
--- a/ProjectLighthouse/Types/Serialization/Activity/Events/GameEvent.cs
+++ b/ProjectLighthouse/Types/Serialization/Activity/Events/GameEvent.cs
@@ -150,6 +150,7 @@ public class GameEvent : ILbpSerializable, INeedsPreparationForSerialization
EventType.Score => new GameScoreEvent
{
ScoreId = ((ScoreActivityEntity)activity.Activity).ScoreId,
+ Score = ((ScoreActivityEntity)activity.Activity).Points,
Slot = new ReviewSlot
{
SlotId = targetId,
diff --git a/ProjectLighthouse/Types/Serialization/Activity/Events/GameScoreEvent.cs b/ProjectLighthouse/Types/Serialization/Activity/Events/GameScoreEvent.cs
index 5f26cc90..382080ab 100644
--- a/ProjectLighthouse/Types/Serialization/Activity/Events/GameScoreEvent.cs
+++ b/ProjectLighthouse/Types/Serialization/Activity/Events/GameScoreEvent.cs
@@ -32,8 +32,6 @@ public class GameScoreEvent : GameEvent
SlotEntity slot = await database.Slots.FindAsync(score.SlotId);
if (slot == null) return;
- this.Score = score.Points;
- //TODO is this correct?
this.UserCount = score.Type;
this.Slot = ReviewSlot.CreateFromEntity(slot);