From 08dbd33f62a6e2376ba1aded4f7558ea7c6c2fd6 Mon Sep 17 00:00:00 2001 From: CWX Date: Tue, 7 Jan 2025 11:40:15 +0000 Subject: [PATCH] added more types and callbacks filled in --- Core/Callbacks/ItemEventCallbacks.cs | 17 +- Core/Callbacks/LauncherCallbacks.cs | 27 +-- Core/Callbacks/LocationCallbacks.cs | 7 +- Core/Callbacks/MatchCallbacks.cs | 144 ++++++++++++++++ .../Tables/LocationsGenerateAllResponse.cs | 12 ++ Core/Models/Eft/Launcher/ChangeRequestData.cs | 9 + Core/Models/Eft/Launcher/LoginRequestData.cs | 12 ++ Core/Models/Eft/Launcher/RegisterData.cs | 9 + Core/Models/Eft/Launcher/RemoveProfileData.cs | 6 + .../Eft/Location/GetAirdropLootRequest.cs | 9 + .../Eft/Location/GetAirdropLootResponse.cs | 15 ++ .../Eft/Match/EndLocalRaidRequestData.cs | 122 +++++++++++++ .../Match/GetRaidConfigurationRequestData.cs | 12 ++ Core/Models/Eft/Match/GroupCharacter.cs | 113 ++++++++++++ .../Eft/Match/MatchGroupCurrentResponse.cs | 9 + .../Eft/Match/MatchGroupInviteSendRequest.cs | 12 ++ .../Match/MatchGroupPlayerRemoveRequest.cs | 9 + .../Eft/Match/MatchGroupStartGameRequest.cs | 12 ++ .../Eft/Match/MatchGroupStatusRequest.cs | 25 +++ .../Eft/Match/MatchGroupStatusResponse.cs | 12 ++ .../Eft/Match/MatchGroupTransferRequest.cs | 9 + .../Models/Eft/Match/ProfileStatusResponse.cs | 12 ++ .../Models/Eft/Match/PutMetricsRequestData.cs | 162 ++++++++++++++++++ Core/Models/Eft/Match/RaidSettings.cs | 96 +++++++++++ Core/Models/Eft/Match/RequestIdRequest.cs | 9 + Core/Models/Eft/Match/Server.cs | 15 ++ Core/Models/Eft/Match/SessionStatus.cs | 42 +++++ .../Eft/Match/StartLocalRaidRequestData.cs | 32 ++++ .../Eft/Match/StartLocalRaidResponseData.cs | 48 ++++++ Core/Models/Enums/ExitStatus.cs | 11 ++ Core/Models/Enums/PlayersSpawnPlace.cs | 8 + Core/Models/Enums/RaidMode.cs | 8 + Core/Models/Enums/RaidSettings/BotAmount.cs | 11 ++ .../Enums/RaidSettings/BotDifficulty.cs | 11 ++ .../TimeAndWeather/CloudinessType.cs | 11 ++ .../RaidSettings/TimeAndWeather/FogType.cs | 10 ++ .../RaidSettings/TimeAndWeather/RainType.cs | 10 ++ .../TimeAndWeather/TimeFlowType.cs | 13 ++ .../RaidSettings/TimeAndWeather/WindSpeed.cs | 10 ++ Core/Models/Enums/SideType.cs | 8 + Core/Models/Enums/TransitionType.cs | 8 + 41 files changed, 1121 insertions(+), 16 deletions(-) create mode 100644 Core/Callbacks/MatchCallbacks.cs create mode 100644 Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs create mode 100644 Core/Models/Eft/Launcher/ChangeRequestData.cs create mode 100644 Core/Models/Eft/Launcher/LoginRequestData.cs create mode 100644 Core/Models/Eft/Launcher/RegisterData.cs create mode 100644 Core/Models/Eft/Launcher/RemoveProfileData.cs create mode 100644 Core/Models/Eft/Location/GetAirdropLootRequest.cs create mode 100644 Core/Models/Eft/Location/GetAirdropLootResponse.cs create mode 100644 Core/Models/Eft/Match/EndLocalRaidRequestData.cs create mode 100644 Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs create mode 100644 Core/Models/Eft/Match/GroupCharacter.cs create mode 100644 Core/Models/Eft/Match/MatchGroupCurrentResponse.cs create mode 100644 Core/Models/Eft/Match/MatchGroupInviteSendRequest.cs create mode 100644 Core/Models/Eft/Match/MatchGroupPlayerRemoveRequest.cs create mode 100644 Core/Models/Eft/Match/MatchGroupStartGameRequest.cs create mode 100644 Core/Models/Eft/Match/MatchGroupStatusRequest.cs create mode 100644 Core/Models/Eft/Match/MatchGroupStatusResponse.cs create mode 100644 Core/Models/Eft/Match/MatchGroupTransferRequest.cs create mode 100644 Core/Models/Eft/Match/ProfileStatusResponse.cs create mode 100644 Core/Models/Eft/Match/PutMetricsRequestData.cs create mode 100644 Core/Models/Eft/Match/RaidSettings.cs create mode 100644 Core/Models/Eft/Match/RequestIdRequest.cs create mode 100644 Core/Models/Eft/Match/Server.cs create mode 100644 Core/Models/Eft/Match/SessionStatus.cs create mode 100644 Core/Models/Eft/Match/StartLocalRaidRequestData.cs create mode 100644 Core/Models/Eft/Match/StartLocalRaidResponseData.cs create mode 100644 Core/Models/Enums/ExitStatus.cs create mode 100644 Core/Models/Enums/PlayersSpawnPlace.cs create mode 100644 Core/Models/Enums/RaidMode.cs create mode 100644 Core/Models/Enums/RaidSettings/BotAmount.cs create mode 100644 Core/Models/Enums/RaidSettings/BotDifficulty.cs create mode 100644 Core/Models/Enums/RaidSettings/TimeAndWeather/CloudinessType.cs create mode 100644 Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs create mode 100644 Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs create mode 100644 Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs create mode 100644 Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs create mode 100644 Core/Models/Enums/SideType.cs create mode 100644 Core/Models/Enums/TransitionType.cs diff --git a/Core/Callbacks/ItemEventCallbacks.cs b/Core/Callbacks/ItemEventCallbacks.cs index 6e23dff1..df9697ae 100644 --- a/Core/Callbacks/ItemEventCallbacks.cs +++ b/Core/Callbacks/ItemEventCallbacks.cs @@ -1,8 +1,21 @@ -namespace Core.Callbacks; +using Core.Models.Eft.HttpResponse; +using Core.Models.Eft.ItemEvent; + +namespace Core.Callbacks; public class ItemEventCallbacks { - public GetBodyResponseData HandleEvents(string url, ItemEventRouterRequest info, string sessionID) + public async Task> HandleEvents(string url, ItemEventRouterRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public bool IsCriticalError(List warnings) + { + throw new NotImplementedException(); + } + + public int GetErrorCode(List warnings) { throw new NotImplementedException(); } diff --git a/Core/Callbacks/LauncherCallbacks.cs b/Core/Callbacks/LauncherCallbacks.cs index aff610c3..9d7ed912 100644 --- a/Core/Callbacks/LauncherCallbacks.cs +++ b/Core/Callbacks/LauncherCallbacks.cs @@ -1,4 +1,7 @@ -namespace Core.Callbacks; +using Core.Models.Eft.Common; +using Core.Models.Eft.Launcher; + +namespace Core.Callbacks; public class LauncherCallbacks { @@ -37,22 +40,12 @@ public class LauncherCallbacks throw new NotImplementedException(); } - public string GetMiniProfile(string url, GetMiniProfileRequestData info, string sessionID) - { - throw new NotImplementedException(); - } - - public string GetAllMiniProfiles(string url, object info, string sessionID) - { - throw new NotImplementedException(); - } - public string GetServerVersion() { throw new NotImplementedException(); } - public string Ping(string url, object info, string sessionID) + public string Ping(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } @@ -66,4 +59,14 @@ public class LauncherCallbacks { throw new NotImplementedException(); } + + public string GetLoadedServerMods() + { + throw new NotImplementedException(); + } + + public string GetServerModsProfileUsed(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Callbacks/LocationCallbacks.cs b/Core/Callbacks/LocationCallbacks.cs index cb028a29..5adc014a 100644 --- a/Core/Callbacks/LocationCallbacks.cs +++ b/Core/Callbacks/LocationCallbacks.cs @@ -1,15 +1,18 @@ using Core.Models.Eft.Common; +using Core.Models.Eft.Common.Tables; +using Core.Models.Eft.HttpResponse; +using Core.Models.Eft.Location; namespace Core.Callbacks; public class LocationCallbacks { - public GetBodyResponseData GetLocationData(string url, object info, string sessionID) + public GetBodyResponseData GetLocationData(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } - public GetBodyResponseData GetLocation(string url, GetLocationRequestData info, string sessionID) + public GetBodyResponseData GetAirdropLoot(string url, GetAirdropLootRequest info, string sessionID) { throw new NotImplementedException(); } diff --git a/Core/Callbacks/MatchCallbacks.cs b/Core/Callbacks/MatchCallbacks.cs new file mode 100644 index 00000000..d43061bc --- /dev/null +++ b/Core/Callbacks/MatchCallbacks.cs @@ -0,0 +1,144 @@ +using Core.Models.Eft.Common; +using Core.Models.Eft.Common.Tables; +using Core.Models.Eft.HttpResponse; +using Core.Models.Eft.Match; + +namespace Core.Callbacks; + +public class MatchCallbacks +{ + public NullResponseData UpdatePing(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData ExitMatch(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData ExitFromMenu(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData GroupCurrent(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData StartGroupSearch(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData StopGroupSearch(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData SendGroupInvite(string url, MatchGroupInviteSendRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData> AcceptGroupInvite(string url, RequestIdRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData DeclineGroupInvite(string url, RequestIdRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData CancelGroupInvite(string url, RequestIdRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData TransferGroup(string url, MatchGroupTransferRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData CancelAllGroupInvite(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData PutMetrics(string url, PutMetricsRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData EventDisconnect(string url, PutMetricsRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData ServerAvailable(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData JoinMatch(string url, MatchGroupStartGameRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData GetMetrics(string url, object info, string sessionID) // TODO: No type given + { + throw new NotImplementedException(); + } + + public GetBodyResponseData GetGroupStatus(string url, MatchGroupStatusRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData DeleteGroup(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData LeaveGroup(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData RemovePlayerFromGroup(string url, MatchGroupPlayerRemoveRequest info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData StartLocalRaid(string url, StartLocalRaidRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData EndLocalRaid(string url, EndLocalRaidRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData GetRaidConfiguration(string url, GetRaidConfigurationRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData GetConfigurationByProfile(string url, GetRaidConfigurationRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData RaidReady(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public GetBodyResponseData NotRaidReady(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs b/Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs new file mode 100644 index 00000000..2de6130b --- /dev/null +++ b/Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Common.Tables; + +public class LocationsGenerateAllResponse +{ + [JsonPropertyName("locations")] + public Locations Locations { get; set; } + + [JsonPropertyName("paths")] + public List Paths { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/ChangeRequestData.cs b/Core/Models/Eft/Launcher/ChangeRequestData.cs new file mode 100644 index 00000000..c2ccc0a4 --- /dev/null +++ b/Core/Models/Eft/Launcher/ChangeRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Launcher; + +public class ChangeRequestData : LoginRequestData +{ + [JsonPropertyName("change")] + public string Change { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/LoginRequestData.cs b/Core/Models/Eft/Launcher/LoginRequestData.cs new file mode 100644 index 00000000..ca39527c --- /dev/null +++ b/Core/Models/Eft/Launcher/LoginRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Launcher; + +public class LoginRequestData +{ + [JsonPropertyName("username")] + public string Username { get; set; } + + [JsonPropertyName("password")] + public string Password { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/RegisterData.cs b/Core/Models/Eft/Launcher/RegisterData.cs new file mode 100644 index 00000000..6bc847ef --- /dev/null +++ b/Core/Models/Eft/Launcher/RegisterData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Launcher; + +public class RegisterData : LoginRequestData +{ + [JsonPropertyName("edition")] + public string Edition { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/RemoveProfileData.cs b/Core/Models/Eft/Launcher/RemoveProfileData.cs new file mode 100644 index 00000000..fb4d6834 --- /dev/null +++ b/Core/Models/Eft/Launcher/RemoveProfileData.cs @@ -0,0 +1,6 @@ +namespace Core.Models.Eft.Launcher; + +public class RemoveProfileData : LoginRequestData +{ + +} \ No newline at end of file diff --git a/Core/Models/Eft/Location/GetAirdropLootRequest.cs b/Core/Models/Eft/Location/GetAirdropLootRequest.cs new file mode 100644 index 00000000..867866fb --- /dev/null +++ b/Core/Models/Eft/Location/GetAirdropLootRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Location; + +public class GetAirdropLootRequest +{ + [JsonPropertyName("containerId")] + public string ContainerId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Location/GetAirdropLootResponse.cs b/Core/Models/Eft/Location/GetAirdropLootResponse.cs new file mode 100644 index 00000000..1aef8a79 --- /dev/null +++ b/Core/Models/Eft/Location/GetAirdropLootResponse.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; +using Core.Models.Enums; + +namespace Core.Models.Eft.Location; + +public class GetAirdropLootResponse +{ + // The type of airdrop + [JsonPropertyName("icon")] + public AirdropTypeEnum Icon { get; set; } + + [JsonPropertyName("container")] + public List Container { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/EndLocalRaidRequestData.cs b/Core/Models/Eft/Match/EndLocalRaidRequestData.cs new file mode 100644 index 00000000..0a5d7632 --- /dev/null +++ b/Core/Models/Eft/Match/EndLocalRaidRequestData.cs @@ -0,0 +1,122 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common; +using Core.Models.Eft.Common.Tables; +using Core.Models.Enums; + +namespace Core.Models.Eft.Match; + +public class EndLocalRaidRequestData +{ + /// + /// ID of server player just left + /// + [JsonPropertyName("serverId")] + public string ServerId { get; set; } + + [JsonPropertyName("results")] + public EndRaidResult Results { get; set; } + + /// + /// Insured items left in raid by player + /// + [JsonPropertyName("lostInsuredItems")] + public List LostInsuredItems { get; set; } + + /// + /// Items sent via traders to player, keyed to service e.g. BTRTransferStash + /// + [JsonPropertyName("transferItems")] + public Dictionary> TransferItems { get; set; } + + [JsonPropertyName("locationTransit")] + public LocationTransit LocationTransit { get; set; } +} + +public class EndRaidResult +{ + public PmcData Profile { get; set; } + + /// + /// "Survived/Transit" etc + /// + [JsonPropertyName("result")] + public ExitStatus Result { get; set; } + + [JsonPropertyName("killerId")] + public string KillerId { get; set; } + + [JsonPropertyName("killerAid")] + public string KillerAid { get; set; } + + /// + /// "Gate 3" etc + /// + [JsonPropertyName("exitName")] + public string ExitName { get; set; } + + [JsonPropertyName("inSession")] + public bool InSession { get; set; } + + [JsonPropertyName("favorite")] + public bool Favorite { get; set; } + + /// + /// Seconds in raid + /// + [JsonPropertyName("playTime")] + public int PlayTime { get; set; } +} + +public class LocationTransit +{ + [JsonPropertyName("hash")] + public string Hash { get; set; } + + [JsonPropertyName("playersCount")] + public int PlayersCount { get; set; } + + [JsonPropertyName("ip")] + public string Ip { get; set; } + + [JsonPropertyName("location")] + public string Location { get; set; } + + [JsonPropertyName("profiles")] + public Dictionary Profiles { get; set; } + + [JsonPropertyName("transitionRaidId")] + public string TransitionRaidId { get; set; } + + [JsonPropertyName("raidMode")] + public string RaidMode { get; set; } + + [JsonPropertyName("side")] + public string Side { get; set; } + + [JsonPropertyName("dayTime")] + public string DayTime { get; set; } + + /// + /// The location player last visited + /// + [JsonPropertyName("sptLastVisitedLocation")] + public string SptLastVisitedLocation { get; set; } + + /// + /// Name of exit taken + /// + [JsonPropertyName("sptExitName")] + public string? SptExitName { get; set; } +} + +public class TransitProfile +{ + [JsonPropertyName("_id")] + public string Id { get; set; } + + [JsonPropertyName("keyId")] + public string KeyId { get; set; } + + [JsonPropertyName("isSolo")] + public bool IsSolo { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs b/Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs new file mode 100644 index 00000000..1f9081f4 --- /dev/null +++ b/Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class GetRaidConfigurationRequestData : RaidSettings +{ + [JsonPropertyName("keyId")] + public string KeyId { get; set; } + + [JsonPropertyName("MaxGroupCount")] + public int MaxGroupCount { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/GroupCharacter.cs b/Core/Models/Eft/Match/GroupCharacter.cs new file mode 100644 index 00000000..96cdcf8b --- /dev/null +++ b/Core/Models/Eft/Match/GroupCharacter.cs @@ -0,0 +1,113 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; +using Core.Models.Enums; + +namespace Core.Models.Eft.Match; + +public class GroupCharacter +{ + [JsonPropertyName("_id")] + public string Id { get; set; } + + [JsonPropertyName("aid")] + public int Aid { get; set; } + + [JsonPropertyName("Info")] + public CharacterInfo Info { get; set; } + + [JsonPropertyName("PlayerVisualRepresentation")] + public PlayerVisualRepresentation? VisualRepresentation { get; set; } + + [JsonPropertyName("isLeader")] + public bool IsLeader { get; set; } + + [JsonPropertyName("isReady")] + public bool? IsReady { get; set; } + + [JsonPropertyName("region")] + public string? Region { get; set; } + + [JsonPropertyName("lookingGroup")] + public bool? LookingGroup { get; set; } +} + +public class CharacterInfo +{ + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } + + [JsonPropertyName("Side")] + public string Side { get; set; } + + [JsonPropertyName("Level")] + public int Level { get; set; } + + [JsonPropertyName("MemberCategory")] + public MemberCategory MemberCategory { get; set; } + + [JsonPropertyName("GameVersion")] + public string? GameVersion { get; set; } + + [JsonPropertyName("SavageLockTime")] + public int? SavageLockTime { get; set; } + + [JsonPropertyName("SavageNickname")] + public string? SavageNickname { get; set; } + + [JsonPropertyName("hasCoopExtension")] + public bool? HasCoopExtension { get; set; } +} + +public class PlayerVisualRepresentation +{ + [JsonPropertyName("Info")] + public VisualInfo Info { get; set; } + + [JsonPropertyName("Customization")] + public Customization Customization { get; set; } + + [JsonPropertyName("Equipment")] + public Equipment Equipment { get; set; } +} + +public class VisualInfo +{ + [JsonPropertyName("Side")] + public string Side { get; set; } + + [JsonPropertyName("Level")] + public int Level { get; set; } + + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } + + [JsonPropertyName("MemberCategory")] + public MemberCategory MemberCategory { get; set; } + + [JsonPropertyName("GameVersion")] + public string GameVersion { get; set; } +} + +public class Customization +{ + [JsonPropertyName("Head")] + public string Head { get; set; } + + [JsonPropertyName("Body")] + public string Body { get; set; } + + [JsonPropertyName("Feet")] + public string Feet { get; set; } + + [JsonPropertyName("Hands")] + public string Hands { get; set; } +} + +public class Equipment +{ + [JsonPropertyName("Id")] + public string Id { get; set; } + + [JsonPropertyName("Items")] + public List Items { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupCurrentResponse.cs b/Core/Models/Eft/Match/MatchGroupCurrentResponse.cs new file mode 100644 index 00000000..f186ff10 --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupCurrentResponse.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class MatchGroupCurrentResponse +{ + [JsonPropertyName("squad")] + public List Squad { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupInviteSendRequest.cs b/Core/Models/Eft/Match/MatchGroupInviteSendRequest.cs new file mode 100644 index 00000000..d02eccdd --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupInviteSendRequest.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class MatchGroupInviteSendRequest +{ + [JsonPropertyName("to")] + public string To { get; set; } + + [JsonPropertyName("inLobby")] + public bool InLobby { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupPlayerRemoveRequest.cs b/Core/Models/Eft/Match/MatchGroupPlayerRemoveRequest.cs new file mode 100644 index 00000000..fc848c55 --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupPlayerRemoveRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class MatchGroupPlayerRemoveRequest +{ + [JsonPropertyName("aidToKick")] + public string AidToKick { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupStartGameRequest.cs b/Core/Models/Eft/Match/MatchGroupStartGameRequest.cs new file mode 100644 index 00000000..1fabafe6 --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupStartGameRequest.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class MatchGroupStartGameRequest +{ + [JsonPropertyName("groupId")] + public string GroupId { get; set; } + + [JsonPropertyName("servers")] + public List Servers { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupStatusRequest.cs b/Core/Models/Eft/Match/MatchGroupStatusRequest.cs new file mode 100644 index 00000000..ea9de1f5 --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupStatusRequest.cs @@ -0,0 +1,25 @@ +using System.Text.Json.Serialization; +using Core.Models.Enums; + +namespace Core.Models.Eft.Match; + +public class MatchGroupStatusRequest +{ + [JsonPropertyName("location")] + public string Location { get; set; } + + [JsonPropertyName("savage")] + public bool IsSavage { get; set; } + + [JsonPropertyName("dt")] + public string DateTime { get; set; } + + [JsonPropertyName("keyId")] + public string KeyId { get; set; } + + [JsonPropertyName("raidMode")] + public RaidMode RaidMode { get; set; } + + [JsonPropertyName("spawnPlace")] + public string SpawnPlace { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupStatusResponse.cs b/Core/Models/Eft/Match/MatchGroupStatusResponse.cs new file mode 100644 index 00000000..e3c6aca8 --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupStatusResponse.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class MatchGroupStatusResponse +{ + [JsonPropertyName("players")] + public List Players { get; set; } + + [JsonPropertyName("maxPveCountExceeded")] + public bool MaxPveCountExceeded { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupTransferRequest.cs b/Core/Models/Eft/Match/MatchGroupTransferRequest.cs new file mode 100644 index 00000000..46bb8eaf --- /dev/null +++ b/Core/Models/Eft/Match/MatchGroupTransferRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class MatchGroupTransferRequest +{ + [JsonPropertyName("aidToChange")] + public string AidToChange { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/ProfileStatusResponse.cs b/Core/Models/Eft/Match/ProfileStatusResponse.cs new file mode 100644 index 00000000..9aebb616 --- /dev/null +++ b/Core/Models/Eft/Match/ProfileStatusResponse.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class ProfileStatusResponse +{ + [JsonPropertyName("maxPveCountExceeded")] + public bool MaxPveCountExceeded { get; set; } + + [JsonPropertyName("profiles")] + public List Profiles { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/PutMetricsRequestData.cs b/Core/Models/Eft/Match/PutMetricsRequestData.cs new file mode 100644 index 00000000..637b8677 --- /dev/null +++ b/Core/Models/Eft/Match/PutMetricsRequestData.cs @@ -0,0 +1,162 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class PutMetricsRequestData +{ + [JsonPropertyName("sid")] + public string SessionId { get; set; } + + [JsonPropertyName("settings")] + public object Settings { get; set; } + + [JsonPropertyName("SharedSettings")] + public SharedSettings SharedSettings { get; set; } + + [JsonPropertyName("HardwareDescription")] + public HardwareDescription HardwareDescription { get; set; } + + [JsonPropertyName("Location")] + public string Location { get; set; } + + [JsonPropertyName("Metrics")] + public object Metrics { get; set; } + + [JsonPropertyName("ClientEvents")] + public ClientEvents ClientEvents { get; set; } + + [JsonPropertyName("SpikeSamples")] + public List SpikeSamples { get; set; } + + [JsonPropertyName("mode")] + public string Mode { get; set; } +} + +public class SharedSettings +{ + [JsonPropertyName("StatedFieldOfView")] + public double StatedFieldOfView { get; set; } +} + +public class HardwareDescription +{ + [JsonPropertyName("deviceUniqueIdentifier")] + public string DeviceUniqueIdentifier { get; set; } + + [JsonPropertyName("systemMemorySize")] + public double SystemMemorySize { get; set; } + + [JsonPropertyName("graphicsDeviceID")] + public double GraphicsDeviceId { get; set; } + + [JsonPropertyName("graphicsDeviceName")] + public string GraphicsDeviceName { get; set; } + + [JsonPropertyName("graphicsDeviceType")] + public string GraphicsDeviceType { get; set; } + + [JsonPropertyName("graphicsDeviceVendor")] + public string GraphicsDeviceVendor { get; set; } + + [JsonPropertyName("graphicsDeviceVendorID")] + public double GraphicsDeviceVendorId { get; set; } + + [JsonPropertyName("graphicsDeviceVersion")] + public string GraphicsDeviceVersion { get; set; } + + [JsonPropertyName("graphicsMemorySize")] + public double GraphicsMemorySize { get; set; } + + [JsonPropertyName("graphicsMultiThreaded")] + public bool GraphicsMultiThreaded { get; set; } + + [JsonPropertyName("graphicsShaderLevel")] + public double GraphicsShaderLevel { get; set; } + + [JsonPropertyName("operatingSystem")] + public string OperatingSystem { get; set; } + + [JsonPropertyName("processorCount")] + public double ProcessorCount { get; set; } + + [JsonPropertyName("processorFrequency")] + public double ProcessorFrequency { get; set; } + + [JsonPropertyName("processorType")] + public string ProcessorType { get; set; } + + [JsonPropertyName("driveType")] + public string DriveType { get; set; } + + [JsonPropertyName("swapDriveType")] + public string SwapDriveType { get; set; } +} + +public class ClientEvents +{ + [JsonPropertyName("MatchingCompleted")] + public double MatchingCompleted { get; set; } + + [JsonPropertyName("MatchingCompletedReal")] + public double MatchingCompletedReal { get; set; } + + [JsonPropertyName("LocationLoaded")] + public double LocationLoaded { get; set; } + + [JsonPropertyName("LocationLoadedReal")] + public double LocationLoadedReal { get; set; } + + [JsonPropertyName("GamePrepared")] + public double GamePrepared { get; set; } + + [JsonPropertyName("GamePreparedReal")] + public double GamePreparedReal { get; set; } + + [JsonPropertyName("GameCreated")] + public double GameCreated { get; set; } + + [JsonPropertyName("GameCreatedReal")] + public double GameCreatedReal { get; set; } + + [JsonPropertyName("GamePooled")] + public double GamePooled { get; set; } + + [JsonPropertyName("GamePooledReal")] + public double GamePooledReal { get; set; } + + [JsonPropertyName("GameRunned")] + public double GameRunned { get; set; } + + [JsonPropertyName("GameRunnedReal")] + public double GameRunnedReal { get; set; } + + [JsonPropertyName("GameSpawn")] + public double GameSpawn { get; set; } + + [JsonPropertyName("GameSpawnReal")] + public double GameSpawnReal { get; set; } + + [JsonPropertyName("PlayerSpawnEvent")] + public double PlayerSpawnEvent { get; set; } + + [JsonPropertyName("PlayerSpawnEventReal")] + public double PlayerSpawnEventReal { get; set; } + + [JsonPropertyName("GameSpawned")] + public double GameSpawned { get; set; } + + [JsonPropertyName("GameSpawnedReal")] + public double GameSpawnedReal { get; set; } + + [JsonPropertyName("GameStarting")] + public double GameStarting { get; set; } + + [JsonPropertyName("GameStartingReal")] + public double GameStartingReal { get; set; } + + [JsonPropertyName("GameStarted")] + public double GameStarted { get; set; } + + [JsonPropertyName("GameStartedReal")] + public double GameStartedReal { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/RaidSettings.cs b/Core/Models/Eft/Match/RaidSettings.cs new file mode 100644 index 00000000..f733ba56 --- /dev/null +++ b/Core/Models/Eft/Match/RaidSettings.cs @@ -0,0 +1,96 @@ +using System.Text.Json.Serialization; +using Core.Models.Enums; +using Core.Models.Enums.RaidSettings; +using Core.Models.Enums.RaidSettings.TimeAndWeather; + +namespace Core.Models.Eft.Match; + +public class RaidSettings +{ + [JsonPropertyName("keyId")] + public string KeyId { get; set; } + + [JsonPropertyName("location")] + public string Location { get; set; } + + [JsonPropertyName("isLocationTransition")] + public bool IsLocationTransition { get; set; } + + [JsonPropertyName("timeVariant")] + public DateTime TimeVariant { get; set; } + + [JsonPropertyName("metabolismDisabled")] + public bool MetabolismDisabled { get; set; } + + [JsonPropertyName("timeAndWeatherSettings")] + public TimeAndWeatherSettings TimeAndWeatherSettings { get; set; } + + [JsonPropertyName("botSettings")] + public BotSettings BotSettings { get; set; } + + [JsonPropertyName("wavesSettings")] + public WavesSettings WavesSettings { get; set; } + + [JsonPropertyName("side")] + public SideType Side { get; set; } + + [JsonPropertyName("raidMode")] + public RaidMode RaidMode { get; set; } + + [JsonPropertyName("playersSpawnPlace")] + public PlayersSpawnPlace PlayersSpawnPlace { get; set; } + + [JsonPropertyName("canShowGroupPreview")] + public bool CanShowGroupPreview { get; set; } +} + +public class TimeAndWeatherSettings +{ + [JsonPropertyName("isRandomTime")] + public bool IsRandomTime { get; set; } + + [JsonPropertyName("isRandomWeather")] + public bool IsRandomWeather { get; set; } + + [JsonPropertyName("cloudinessType")] + public CloudinessType CloudinessType { get; set; } + + [JsonPropertyName("rainType")] + public RainType RainType { get; set; } + + [JsonPropertyName("fogType")] + public FogType FogType { get; set; } + + [JsonPropertyName("windType")] + public WindSpeed WindType { get; set; } + + [JsonPropertyName("timeFlowType")] + public TimeFlowType TimeFlowType { get; set; } + + [JsonPropertyName("hourOfDay")] + public int HourOfDay { get; set; } +} + +public class BotSettings +{ + [JsonPropertyName("isScavWars")] + public bool IsScavWars { get; set; } + + [JsonPropertyName("botAmount")] + public BotAmount BotAmount { get; set; } +} + +public class WavesSettings +{ + [JsonPropertyName("botAmount")] + public BotAmount BotAmount { get; set; } + + [JsonPropertyName("botDifficulty")] + public BotDifficulty BotDifficulty { get; set; } + + [JsonPropertyName("isBosses")] + public bool IsBosses { get; set; } + + [JsonPropertyName("isTaggedAndCursed")] + public bool IsTaggedAndCursed { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/RequestIdRequest.cs b/Core/Models/Eft/Match/RequestIdRequest.cs new file mode 100644 index 00000000..d5f2622d --- /dev/null +++ b/Core/Models/Eft/Match/RequestIdRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class RequestIdRequest +{ + [JsonPropertyName("requestId")] + public string RequestId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/Server.cs b/Core/Models/Eft/Match/Server.cs new file mode 100644 index 00000000..64a01fdb --- /dev/null +++ b/Core/Models/Eft/Match/Server.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class Server +{ + [JsonPropertyName("ping")] + public int Ping { get; set; } + + [JsonPropertyName("ip")] + public string Ip { get; set; } + + [JsonPropertyName("port")] + public int Port { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/SessionStatus.cs b/Core/Models/Eft/Match/SessionStatus.cs new file mode 100644 index 00000000..773224f5 --- /dev/null +++ b/Core/Models/Eft/Match/SessionStatus.cs @@ -0,0 +1,42 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Match; + +public class SessionStatus +{ + [JsonPropertyName("profileid")] + public string ProfileId { get; set; } + + [JsonPropertyName("profileToken")] + public string ProfileToken { get; set; } + + [JsonPropertyName("status")] + public string Status { get; set; } + + [JsonPropertyName("ip")] + public string Ip { get; set; } + + [JsonPropertyName("port")] + public int Port { get; set; } + + [JsonPropertyName("sid")] + public string Sid { get; set; } + + [JsonPropertyName("version")] + public string? Version { get; set; } + + [JsonPropertyName("location")] + public string? Location { get; set; } + + [JsonPropertyName("raidMode")] + public string? RaidMode { get; set; } + + [JsonPropertyName("mode")] + public string? Mode { get; set; } + + [JsonPropertyName("shortId")] + public string? ShortId { get; set; } + + [JsonPropertyName("additional_info")] + public List? AdditionalInfo { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/StartLocalRaidRequestData.cs b/Core/Models/Eft/Match/StartLocalRaidRequestData.cs new file mode 100644 index 00000000..d09d5c1a --- /dev/null +++ b/Core/Models/Eft/Match/StartLocalRaidRequestData.cs @@ -0,0 +1,32 @@ +using System.Text.Json.Serialization; +using Core.Models.Enums; + +namespace Core.Models.Eft.Match; + +public class StartLocalRaidRequestData +{ + [JsonPropertyName("serverId")] + public string ServerId { get; set; } + + [JsonPropertyName("location")] + public string Location { get; set; } + + [JsonPropertyName("timeVariant")] + public string TimeVariant { get; set; } + + [JsonPropertyName("mode")] + public string Mode { get; set; } + + [JsonPropertyName("playerSide")] + public string PlayerSide { get; set; } + + [JsonPropertyName("transitionType")] + public TransitionType TransitionType { get; set; } + + [JsonPropertyName("transition")] + public Transition Transition { get; set; } + + /** Should loot generation be skipped, default false */ + [JsonPropertyName("sptSkipLootGeneration")] + public bool? ShouldSkipLootGeneration { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Match/StartLocalRaidResponseData.cs b/Core/Models/Eft/Match/StartLocalRaidResponseData.cs new file mode 100644 index 00000000..a489e511 --- /dev/null +++ b/Core/Models/Eft/Match/StartLocalRaidResponseData.cs @@ -0,0 +1,48 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common; +using Core.Models.Eft.Common.Tables; +using Core.Models.Enums; + +namespace Core.Models.Eft.Match; + +public class StartLocalRaidResponseData +{ + [JsonPropertyName("serverId")] + public string ServerId { get; set; } + + [JsonPropertyName("serverSettings")] + public LocationServices ServerSettings { get; set; } + + [JsonPropertyName("profile")] + public ProfileInsuredItems Profile { get; set; } + + [JsonPropertyName("locationLoot")] + public LocationBase LocationLoot { get; set; } + + [JsonPropertyName("transitionType")] + public TransitionType TransitionType { get; set; } + + [JsonPropertyName("transition")] + public Transition Transition { get; set; } +} + +public class ProfileInsuredItems +{ + [JsonPropertyName("insuredItems")] + public List InsuredItems { get; set; } +} + +public class Transition +{ + [JsonPropertyName("transitionType")] + public TransitionType TransitionType { get; set; } + + [JsonPropertyName("transitionRaidId")] + public string TransitionRaidId { get; set; } + + [JsonPropertyName("transitionCount")] + public int TransitionCount { get; set; } + + [JsonPropertyName("visitedLocations")] + public List VisitedLocations { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Enums/ExitStatus.cs b/Core/Models/Enums/ExitStatus.cs new file mode 100644 index 00000000..3c19762b --- /dev/null +++ b/Core/Models/Enums/ExitStatus.cs @@ -0,0 +1,11 @@ +namespace Core.Models.Enums; + +public enum ExitStatus +{ + SURVIVED, + KILLED, + LEFT, + RUNNER, + MISSINGINACTION, + TRANSIT +} \ No newline at end of file diff --git a/Core/Models/Enums/PlayersSpawnPlace.cs b/Core/Models/Enums/PlayersSpawnPlace.cs new file mode 100644 index 00000000..91c4ec72 --- /dev/null +++ b/Core/Models/Enums/PlayersSpawnPlace.cs @@ -0,0 +1,8 @@ +namespace Core.Models.Enums; + +public enum PlayersSpawnPlace +{ + SAME_PLACE, + DIFFERENT_PLACES, + AT_THE_ENDS_OF_THE_MAP +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidMode.cs b/Core/Models/Enums/RaidMode.cs new file mode 100644 index 00000000..428f33c1 --- /dev/null +++ b/Core/Models/Enums/RaidMode.cs @@ -0,0 +1,8 @@ +namespace Core.Models.Enums; + +public enum RaidMode +{ + ONLINE, + LOCAL, + COOP +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/BotAmount.cs b/Core/Models/Enums/RaidSettings/BotAmount.cs new file mode 100644 index 00000000..5fcaa5a4 --- /dev/null +++ b/Core/Models/Enums/RaidSettings/BotAmount.cs @@ -0,0 +1,11 @@ +namespace Core.Models.Enums.RaidSettings; + +public enum BotAmount +{ + AS_ONLINE, + NO_BOTS, + LOW, + MEDIUM, + HIGH, + HORDE, +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/BotDifficulty.cs b/Core/Models/Enums/RaidSettings/BotDifficulty.cs new file mode 100644 index 00000000..9a50d541 --- /dev/null +++ b/Core/Models/Enums/RaidSettings/BotDifficulty.cs @@ -0,0 +1,11 @@ +namespace Core.Models.Enums.RaidSettings; + +public enum BotDifficulty +{ + AS_ONLINE, + EASY, + MEDIUM, + HARD, + IMPOSSIBLE, + RANDOM, +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/CloudinessType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/CloudinessType.cs new file mode 100644 index 00000000..afeb8aa9 --- /dev/null +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/CloudinessType.cs @@ -0,0 +1,11 @@ +namespace Core.Models.Enums.RaidSettings.TimeAndWeather; + +public enum CloudinessType +{ + CLEAR, + PARTLY_CLOUDY, + CLOUDY, + CLOUDY_WITH_GAPS, + HEAVY_CLOUD_COVER, + THUNDER_CLOUD +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs new file mode 100644 index 00000000..6b1c8daa --- /dev/null +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs @@ -0,0 +1,10 @@ +namespace Core.Models.Enums.RaidSettings.TimeAndWeather; + +public enum FogType +{ + NO_FOG, + FAINT, + FOG, + HEAVY, + CONTINUOUS, +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs new file mode 100644 index 00000000..69bbdfd3 --- /dev/null +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs @@ -0,0 +1,10 @@ +namespace Core.Models.Enums.RaidSettings.TimeAndWeather; + +public enum RainType +{ + NO_RAIN, + DRIZZLING, + RAIN, + HEAVY, + SHOWER, +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs new file mode 100644 index 00000000..442ae0dd --- /dev/null +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs @@ -0,0 +1,13 @@ +namespace Core.Models.Enums.RaidSettings.TimeAndWeather; + +public enum TimeFlowType +{ + X0, + X0_14, + X0_25, + X0_5, + X1, + X2, + X4, + X8, +} \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs new file mode 100644 index 00000000..cdfa8ce4 --- /dev/null +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs @@ -0,0 +1,10 @@ +namespace Core.Models.Enums.RaidSettings.TimeAndWeather; + +public enum WindSpeed +{ + LIGHT, + MODERATE, + STRONG, + VERY_STRONG, + HURRICANE, +} \ No newline at end of file diff --git a/Core/Models/Enums/SideType.cs b/Core/Models/Enums/SideType.cs new file mode 100644 index 00000000..8da83b7d --- /dev/null +++ b/Core/Models/Enums/SideType.cs @@ -0,0 +1,8 @@ +namespace Core.Models.Enums; + +public enum SideType +{ + PMC, + SAVAGE, + RANDOM +} \ No newline at end of file diff --git a/Core/Models/Enums/TransitionType.cs b/Core/Models/Enums/TransitionType.cs new file mode 100644 index 00000000..044463cf --- /dev/null +++ b/Core/Models/Enums/TransitionType.cs @@ -0,0 +1,8 @@ +namespace Core.Models.Enums; + +public enum TransitionType +{ + NONE = 0, + COMMON = 1, + EVENT = 2 +} \ No newline at end of file