using System.Text.Json.Serialization; using Core.Utils.Json.Converters; namespace Core.Models.Eft.Common.Tables; public class LocationServices { [JsonPropertyName("TraderServerSettings")] public TraderServerSettings? TraderServerSettings { get; set; } [JsonPropertyName("BTRServerSettings")] public BtrServerSettings? BtrServerSettings { get; set; } } public class TraderServerSettings { [JsonPropertyName("TraderServices")] public TraderServices? TraderServices { get; set; } } public class TraderServices { [JsonPropertyName("ExUsecLoyalty")] public TraderService? ExUsecLoyalty { get; set; } [JsonPropertyName("ZryachiyAid")] public TraderService? ZryachiyAid { get; set; } [JsonPropertyName("CultistsAid")] public TraderService? CultistsAid { get; set; } [JsonPropertyName("PlayerTaxi")] public TraderService? PlayerTaxi { get; set; } [JsonPropertyName("BtrItemsDelivery")] public TraderService? BtrItemsDelivery { get; set; } [JsonPropertyName("BtrBotCover")] public TraderService? BtrBotCover { get; set; } [JsonPropertyName("TransitItemsDelivery")] public TraderService? TransitItemsDelivery { get; set; } } public class TraderService { [JsonPropertyName("TraderId")] public string? TraderId { get; set; } [JsonPropertyName("TraderServiceType")] public string? TraderServiceType { get; set; } [JsonPropertyName("Requirements")] public ServiceRequirements? Requirements { get; set; } [JsonPropertyName("ServiceItemCost")] [JsonConverter(typeof(ArrayToObjectFactoryConverter))] public Dictionary? ServiceItemCost { get; set; } [JsonPropertyName("UniqueItems")] public List? UniqueItems { get; set; } } public class ServiceRequirements { [JsonPropertyName("CompletedQuests")] public List? CompletedQuests { get; set; } [JsonPropertyName("Standings")] [JsonConverter(typeof(ArrayToObjectFactoryConverter))] public Dictionary? Standings { get; set; } } public class CompletedQuest { [JsonPropertyName("QuestId")] public string? QuestId { get; set; } } public class StandingRequirement { [JsonPropertyName("Value")] public double? Value { get; set; } } public class ServiceItemCostDetails { [JsonPropertyName("Count")] public int? Count { get; set; } } public class BtrServerSettings { [JsonPropertyName("ChanceSpawn")] public int? ChanceSpawn { get; set; } [JsonPropertyName("SpawnPeriod")] public XYZ? SpawnPeriod { get; set; } [JsonPropertyName("MoveSpeed")] public float? MoveSpeed { get; set; } [JsonPropertyName("ReadyToDepartureTime")] public float? ReadyToDepartureTime { get; set; } [JsonPropertyName("CheckTurnDistanceTime")] public float? CheckTurnDistanceTime { get; set; } [JsonPropertyName("TurnCheckSensitivity")] public float? TurnCheckSensitivity { get; set; } [JsonPropertyName("DecreaseSpeedOnTurnLimit")] public float? DecreaseSpeedOnTurnLimit { get; set; } [JsonPropertyName("EndSplineDecelerationDistance")] public float? EndSplineDecelerationDistance { get; set; } [JsonPropertyName("AccelerationSpeed")] public float? AccelerationSpeed { get; set; } [JsonPropertyName("DecelerationSpeed")] public float? DecelerationSpeed { get; set; } [JsonPropertyName("PauseDurationRange")] public XYZ? PauseDurationRange { get; set; } [JsonPropertyName("BodySwingReturnSpeed")] public float? BodySwingReturnSpeed { get; set; } [JsonPropertyName("BodySwingDamping")] public float? BodySwingDamping { get; set; } [JsonPropertyName("BodySwingIntensity")] public float? BodySwingIntensity { get; set; } [JsonPropertyName("ServerMapBTRSettings")] public Dictionary? ServerMapBTRSettings { get; set; } } public class ServerMapBtrsettings { [JsonPropertyName("MapID")] public string? MapID { get; set; } [JsonPropertyName("ChanceSpawn")] public int? ChanceSpawn { get; set; } [JsonPropertyName("SpawnPeriod")] public XYZ? SpawnPeriod { get; set; } [JsonPropertyName("MoveSpeed")] public float? MoveSpeed { get; set; } [JsonPropertyName("ReadyToDepartureTime")] public float? ReadyToDepartureTime { get; set; } [JsonPropertyName("CheckTurnDistanceTime")] public float? CheckTurnDistanceTime { get; set; } [JsonPropertyName("TurnCheckSensitivity")] public float? TurnCheckSensitivity { get; set; } [JsonPropertyName("DecreaseSpeedOnTurnLimit")] public float? DecreaseSpeedOnTurnLimit { get; set; } [JsonPropertyName("EndSplineDecelerationDistance")] public float? EndSplineDecelerationDistance { get; set; } [JsonPropertyName("AccelerationSpeed")] public float? AccelerationSpeed { get; set; } [JsonPropertyName("DecelerationSpeed")] public float? DecelerationSpeed { get; set; } [JsonPropertyName("PauseDurationRange")] public XYZ? PauseDurationRange { get; set; } [JsonPropertyName("BodySwingReturnSpeed")] public float? BodySwingReturnSpeed { get; set; } [JsonPropertyName("BodySwingDamping")] public float? BodySwingDamping { get; set; } [JsonPropertyName("BodySwingIntensity")] public float? BodySwingIntensity { get; set; } }