Skip to content

Commit 1c826cf

Browse files
committed
Add backfill migration to track modded status of already uploaded planets
1 parent 2ac2b21 commit 1c826cf

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

Refresh.Database/Extensions/GameDatabaseContextExtensions.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
using Refresh.Database.Models.Assets;
2+
using Refresh.Database.Models.Users;
23

34
namespace Refresh.Database.Extensions;
45

56
public static class GameDatabaseContextExtensions
67
{
8+
public static void UpdatePlanetModdedStatus(this GameDatabaseContext database, GameUser user)
9+
{
10+
user.AreLbp2PlanetsModded = database.GetPlanetModdedStatus(user.Lbp2PlanetsHash);
11+
user.AreLbp3PlanetsModded = database.GetPlanetModdedStatus(user.Lbp3PlanetsHash);
12+
user.AreVitaPlanetsModded = database.GetPlanetModdedStatus(user.VitaPlanetsHash);
13+
user.AreBetaPlanetsModded = database.GetPlanetModdedStatus(user.BetaPlanetsHash);
14+
}
15+
716
public static bool GetPlanetModdedStatus(this GameDatabaseContext database, string rootAssetHash)
817
{
918
bool modded = false;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Refresh.Database.Extensions;
2+
using Refresh.Database.Models.Users;
3+
using Refresh.Workers;
4+
5+
namespace Refresh.Interfaces.Workers.Migrations;
6+
7+
public class BackfillModdedPlanetFlagsMigration : MigrationJob<GameUser>
8+
{
9+
protected override IQueryable<GameUser> SortAndFilter(IQueryable<GameUser> query)
10+
{
11+
return query
12+
.OrderBy(u => u.UserId)
13+
.Where(u => u.Lbp2PlanetsHash != "0"
14+
|| u.Lbp3PlanetsHash != "0"
15+
|| u.VitaPlanetsHash != "0"
16+
|| u.BetaPlanetsHash != "0");
17+
}
18+
19+
protected override void Migrate(WorkContext context, GameUser[] batch)
20+
{
21+
foreach (GameUser user in batch)
22+
{
23+
context.Database.UpdatePlanetModdedStatus(user);
24+
}
25+
26+
context.Database.SaveChanges();
27+
}
28+
}

Refresh.Interfaces.Workers/RefreshWorkerManager.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public static WorkerManager Create(Logger logger, IDataStore dataStore, GameData
2424
manager.AddJob<BackfillLevelAttributesMigration>();
2525
manager.AddJob<BackfillReviewLabelsMigration>();
2626
manager.AddJob<ClampPlayerLimitsMigration>();
27+
manager.AddJob<BackfillModdedPlanetFlagsMigration>();
2728

2829
return manager;
2930
}

0 commit comments

Comments
 (0)