using System.Text.Json.Serialization; using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Config; public record InsuranceConfig : BaseConfig { [JsonPropertyName("kind")] public override string Kind { get; set; } = "spt-insurance"; /// /// Chance item is returned as insurance, keyed by trader id /// [JsonPropertyName("returnChancePercent")] public Dictionary ReturnChancePercent { get; set; } = []; /// /// Item slots that should never be returned as insurance /// [JsonPropertyName("blacklistedEquipment")] public List BlacklistedEquipment { get; set; } = []; /// /// Some slots should always be removed, e.g. 'cartridges' /// [JsonPropertyName("slotIdsToAlwaysRemove")] public List SlotIdsToAlwaysRemove { get; set; } = []; /// /// Override to control how quickly insurance is processed/returned in seconds /// [JsonPropertyName("returnTimeOverrideSeconds")] public double ReturnTimeOverrideSeconds { get; set; } /// /// Override to control how long insurance returns stay in mail before expiring - in seconds /// [JsonPropertyName("storageTimeOverrideSeconds")] public double StorageTimeOverrideSeconds { get; set; } /// /// How often server should process insurance in seconds /// [JsonPropertyName("runIntervalSeconds")] public double RunIntervalSeconds { get; set; } /// /// Lowest rouble price for an attachment to be allowed to be taken /// [JsonPropertyName("minAttachmentRoublePriceToBeTaken")] public double MinAttachmentRoublePriceToBeTaken { get; set; } /// /// Chance out of 100% no attachments from a parent are taken /// [JsonPropertyName("chanceNoAttachmentsTakenPercent")] public double ChanceNoAttachmentsTakenPercent { get; set; } [JsonPropertyName("simulateItemsBeingTaken")] public bool SimulateItemsBeingTaken { get; set; } }