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