43 lines
1.8 KiB
C#
43 lines
1.8 KiB
C#
using GameCult.Caching;
|
|
using MessagePack;
|
|
|
|
namespace Aetheria.State.Daemon;
|
|
|
|
[CultDocument("gamecult.aetheria.ymir_persistence_marker", "gamecult.aetheria.ymir_persistence_marker.v1")]
|
|
[MessagePackObject]
|
|
public sealed class AetheriaYmirPersistenceMarkerDocument
|
|
{
|
|
public const string RecordKey = "private:aetheria.ymir.persistence.v1";
|
|
|
|
[Key(0)] public string FormatId { get; set; } = "gamecult.aetheria.ymir.persistence.v1";
|
|
[Key(1)] public string ActivatedAtUtc { get; set; } = "";
|
|
}
|
|
|
|
[CultDocument("gamecult.aetheria.ymir_journal_chunk", "gamecult.aetheria.ymir_journal_chunk.v1")]
|
|
[MessagePackObject]
|
|
public sealed class AetheriaYmirJournalChunkDocument
|
|
{
|
|
[Key(0)] public string RunId { get; set; } = "";
|
|
[Key(1)] public int ZoneIndex { get; set; }
|
|
[Key(2)] public string Channel { get; set; } = "";
|
|
[Key(3)] public string SessionGeneration { get; set; } = "";
|
|
[Key(4)] public long FirstEntryIndex { get; set; }
|
|
[Key(5)] public int EntryCount { get; set; }
|
|
[Key(6)] public byte[] Payload { get; set; } = [];
|
|
}
|
|
|
|
[CultDocument("gamecult.aetheria.ymir_resume", "gamecult.aetheria.ymir_resume.v1")]
|
|
[MessagePackObject]
|
|
public sealed class AetheriaYmirResumeDocument
|
|
{
|
|
[Key(0)] public string RunId { get; set; } = "";
|
|
[Key(1)] public int ZoneIndex { get; set; }
|
|
[Key(2)] public long FrameId { get; set; }
|
|
[Key(3)] public int SimulationStepIndex { get; set; }
|
|
[Key(4)] public string WorldSessionGeneration { get; set; } = "";
|
|
[Key(5)] public long WorldJournalEntryCount { get; set; }
|
|
[Key(6)] public byte[] WorldDescriptorPayload { get; set; } = [];
|
|
[Key(7)] public string PayloadSessionGeneration { get; set; } = "";
|
|
[Key(8)] public long PayloadJournalEntryCount { get; set; }
|
|
[Key(9)] public byte[] PayloadDescriptorPayload { get; set; } = [];
|
|
}
|