Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Migration/AbstractProfileMigration.cs
T
Jesse 41756041d4 More migrations (#499)
* Make abstract virtual

* Handle nullability on List

* Move migrations into their own folders, add new migration for minor 3.10 versions
2025-07-21 20:03:06 +01:00

46 lines
1.3 KiB
C#

using System.Text.Json.Nodes;
using SPTarkov.Server.Core.Models.Eft.Profile;
namespace SPTarkov.Server.Core.Migration
{
public abstract class AbstractProfileMigration : IProfileMigration
{
public abstract string FromVersion { get; }
public abstract string ToVersion { get; }
public abstract string MigrationName { get; }
public abstract IEnumerable<Type> PrerequisiteMigrations { get; }
public abstract bool CanMigrate(
JsonObject profile,
IEnumerable<IProfileMigration> previouslyRanMigrations
);
public virtual JsonObject? Migrate(JsonObject profile)
{
return profile;
}
public virtual bool PostMigrate(SptProfile profile)
{
return true;
}
protected SemanticVersioning.Version? GetProfileVersion(JsonObject profile)
{
var versionString = profile["spt"]?["version"]?.GetValue<string>();
if (versionString is null)
{
return null;
}
var versionNumber = versionString.Split(' ')[0];
return SemanticVersioning.Version.TryParse(versionNumber, out var version)
? version
: null;
}
}
}