Aetheria/Aetheria.State/Documents/EveProviderAdvertisementState.cs
2026-06-13 15:59:26 +01:00

118 lines
2.5 KiB
C#

using GameCult.Caching;
using MessagePack;
namespace Aetheria.State.Documents;
[CultDocument("gamecult.eve.provider_advertisement", "gamecult.eve.provider_advertisement.v1")]
[CultGlobal]
[MessagePackObject]
public sealed class EveProviderAdvertisementState
{
[Key(0)]
[CultIndex("schema")]
public string Schema { get; set; } = "gamecult.eve.provider_advertisement.v1";
[Key(1)]
[CultName]
public string ProviderId { get; set; } = "";
[Key(2)]
public string ServiceId { get; set; } = "";
[Key(3)]
public string VerseId { get; set; } = "";
[Key(4)]
public string RootVerse { get; set; } = "asgard";
[Key(5)]
public string CanonicalService { get; set; } = "";
[Key(6)]
public string LocatedService { get; set; } = "";
[Key(7)]
public string CultMeshAddress { get; set; } = "";
[Key(8)]
public string Title { get; set; } = "";
[Key(9)]
public string Kind { get; set; } = "game.runtime";
[Key(10)]
public string UpdatedAtUtc { get; set; } = "";
[Key(11)]
public EveProviderFreshness Freshness { get; set; } = new();
[Key(12)]
public string[] Schemas { get; set; } = [];
[Key(13)]
public EveProviderWitness[] Witnesses { get; set; } = [];
[Key(14)]
public EveProviderSurfaceRef[] Surfaces { get; set; } = [];
[Key(15)]
public EveProviderCommandRef[] Commands { get; set; } = [];
}
[MessagePackObject]
public sealed class EveProviderFreshness
{
[Key(0)]
public string State { get; set; } = "fresh";
[Key(1)]
public string LastSeenAtUtc { get; set; } = "";
[Key(2)]
public int MaxAgeMs { get; set; } = 15000;
}
[MessagePackObject]
public sealed class EveProviderWitness
{
[Key(0)]
public string Kind { get; set; } = "";
[Key(1)]
public string Ref { get; set; } = "";
[Key(2)]
public string Summary { get; set; } = "";
}
[MessagePackObject]
public sealed class EveProviderSurfaceRef
{
[Key(0)]
public string Schema { get; set; } = "gamecult.eve.surface.v1";
[Key(1)]
public string SurfaceId { get; set; } = "";
[Key(2)]
public string Key { get; set; } = "";
[Key(3)]
public string Transport { get; set; } = "cultmesh";
[Key(4)]
public string Status { get; set; } = "available";
}
[MessagePackObject]
public sealed class EveProviderCommandRef
{
[Key(0)]
public string Command { get; set; } = "";
[Key(1)]
public string Transport { get; set; } = "cultmesh";
[Key(2)]
public string Summary { get; set; } = "";
}