118 lines
2.5 KiB
C#
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; } = "";
|
||
|
|
}
|