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; }
}