using System.Text.Json.Serialization; using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Profile; using Core.Models.Enums; using Core.Models.Spt.Dialog; namespace Core.Models.Spt.Config; public class GiftsConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-gifts"; [JsonPropertyName("gifts")] public Dictionary Gifts { get; set; } } public class Gift { /// /// Items to send to player /// [JsonPropertyName("items")] public List Items { get; set; } /// /// Who is sending the gift to player /// [JsonPropertyName("sender")] public GiftSenderType Sender { get; set; } /// /// Optional - supply a users id to send from, not necessary when sending from SYSTEM or TRADER /// [JsonPropertyName("senderId")] public string? SenderId { get; set; } [JsonPropertyName("senderDetails")] public UserDialogInfo SenderDetails { get; set; } /// /// Optional - supply a trader type to send from, not necessary when sending from SYSTEM or USER /// [JsonPropertyName("trader")] public string? Trader { get; set; } [JsonPropertyName("messageText")] public string MessageText { get; set; } /// /// Optional - if sending text from the client locale file /// [JsonPropertyName("localeTextId")] public string? LocaleTextId { get; set; } /// /// Optional - Used by Seasonal events to send on specific day /// [JsonPropertyName("timestampToSend")] public long? TimestampToSend { get; set; } [JsonPropertyName("associatedEvent")] public SeasonalEventType AssociatedEvent { get; set; } [JsonPropertyName("collectionTimeHours")] public int CollectionTimeHours { get; set; } /// /// Optional, can be used to change profile settings like level/skills /// [JsonPropertyName("profileChangeEvents")] public List? ProfileChangeEvents { get; set; } [JsonPropertyName("maxToSendPlayer")] public int? MaxToSendPlayer { get; set; } [JsonPropertyName("maxToSendToPlayer")] public int? MaxToSendToPlayer { get; set; } }