Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Models/Eft/Match/EndLocalRaidRequestData.cs
T

139 lines
3.7 KiB
C#

using System.Text.Json.Serialization;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
using SPTarkov.Server.Core.Models.Enums;
using SPTarkov.Server.Core.Models.Utils;
namespace SPTarkov.Server.Core.Models.Eft.Match;
public record EndLocalRaidRequestData : IRequestData
{
[JsonExtensionData]
public Dictionary<string, object> ExtensionData { get; init; } = [];
/// <summary>
/// ID of server player just left
/// </summary>
[JsonPropertyName("serverId")]
public string? ServerId { get; set; }
[JsonPropertyName("results")]
public EndRaidResult? Results { get; set; }
/// <summary>
/// Insured items left in raid by player
/// </summary>
[JsonPropertyName("lostInsuredItems")]
public IEnumerable<Item>? LostInsuredItems { get; set; }
/// <summary>
/// Items sent via traders to player, keyed to service e.g. BTRTransferStash
/// </summary>
[JsonPropertyName("transferItems")]
public Dictionary<string, IEnumerable<Item>>? TransferItems { get; set; }
[JsonPropertyName("locationTransit")]
public LocationTransit? LocationTransit { get; set; }
}
public record EndRaidResult
{
[JsonExtensionData]
public Dictionary<string, object> ExtensionData { get; init; } = [];
[JsonPropertyName("profile")]
public PmcData? Profile { get; set; }
/// <summary>
/// "Survived/Transit" etc
/// </summary>
[JsonPropertyName("result")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public ExitStatus? Result { get; set; }
[JsonPropertyName("killerId")]
public MongoId? KillerId { get; set; }
[JsonPropertyName("killerAid")]
public string? KillerAid { get; set; }
/// <summary>
/// "Gate 3" etc
/// </summary>
[JsonPropertyName("exitName")]
public string? ExitName { get; set; }
[JsonPropertyName("inSession")]
public bool? InSession { get; set; }
[JsonPropertyName("favorite")]
public bool? Favorite { get; set; }
/// <summary>
/// Seconds in raid
/// </summary>
[JsonPropertyName("playTime")]
public double? PlayTime { get; set; }
}
public record LocationTransit
{
[JsonExtensionData]
public Dictionary<string, object> ExtensionData { get; init; } = [];
[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<string, TransitProfile>? 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; }
/// <summary>
/// The location player last visited
/// </summary>
[JsonPropertyName("sptLastVisitedLocation")]
public string? SptLastVisitedLocation { get; set; }
/// <summary>
/// Name of exit taken
/// </summary>
[JsonPropertyName("sptExitName")]
public string? SptExitName { get; set; }
}
public record TransitProfile
{
[JsonExtensionData]
public Dictionary<string, object> ExtensionData { get; init; } = [];
[JsonPropertyName("_id")]
public string? Id { get; set; }
[JsonPropertyName("keyId")]
public string? KeyId { get; set; }
[JsonPropertyName("isSolo")]
public bool? IsSolo { get; set; }
}