Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Models/Spt/Config/GiftsConfig.cs
T
2025-08-21 09:46:00 +00:00

66 lines
2.0 KiB
C#

using System.Text.Json.Serialization;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
using SPTarkov.Server.Core.Models.Eft.Profile;
using SPTarkov.Server.Core.Models.Enums;
using SPTarkov.Server.Core.Models.Spt.Dialog;
namespace SPTarkov.Server.Core.Models.Spt.Config;
public record GiftsConfig : BaseConfig
{
[JsonPropertyName("kind")]
public override string Kind { get; set; } = "spt-gifts";
[JsonPropertyName("gifts")]
public required Dictionary<string, Gift> Gifts { get; set; }
}
public record Gift
{
/// <summary>
/// Items to send to player
/// </summary>
[JsonPropertyName("items")]
public List<Item> Items { get; set; } = [];
/// <summary>
/// Who is sending the gift to player
/// </summary>
[JsonPropertyName("sender")]
public GiftSenderType Sender { get; set; }
[JsonPropertyName("senderDetails")]
public UserDialogInfo? SenderDetails { get; set; }
/// <summary>
/// Optional - supply a trader type to send from, not necessary when sending from SYSTEM or USER
/// </summary>
[JsonPropertyName("trader")]
public MongoId? Trader { get; set; }
[JsonPropertyName("messageText")]
public string? MessageText { get; set; }
/// <summary>
/// Optional - if sending text from the client locale file
/// </summary>
[JsonPropertyName("localeTextId")]
public string? LocaleTextId { get; set; }
[JsonPropertyName("associatedEvent")]
public SeasonalEventType AssociatedEvent { get; set; }
[JsonPropertyName("collectionTimeHours")]
public int? CollectionTimeHours { get; set; }
/// <summary>
/// Optional, can be used to change profile settings like level/skills
/// </summary>
[JsonPropertyName("profileChangeEvents")]
public List<ProfileChangeEvent>? ProfileChangeEvents { get; set; }
[JsonPropertyName("maxToSendPlayer")]
public int? MaxToSendPlayer { get; set; }
}