Files
SPT-Server-Build/Libraries/Core/Models/Spt/Dialog/SendMessageDetails.cs
T
TetrisGG 28a434a622 Update Models Comments
Changed Comments to adhere to xml standard in all Models.
Added missing comments.
2025-03-04 22:38:11 +01:00

190 lines
3.6 KiB
C#

using System.Text.Json.Serialization;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Profile;
using Core.Models.Enums;
namespace Core.Models.Spt.Dialog;
public record SendMessageDetails
{
/// <summary>
/// Player id
/// </summary>
[JsonPropertyName("recipientId")]
public string? RecipientId
{
get;
set;
}
/// <summary>
/// Who is sending this message
/// </summary>
[JsonPropertyName("sender")]
public MessageType? Sender
{
get;
set;
}
/// <summary>
/// Optional - leave blank to use sender value
/// </summary>
[JsonPropertyName("dialogType")]
public MessageType? DialogType
{
get;
set;
}
/// <summary>
/// Optional - if sender is USER these details are used
/// </summary>
[JsonPropertyName("senderDetails")]
public UserDialogInfo? SenderDetails
{
get;
set;
}
/// <summary>
/// Optional - the trader sending the message
/// </summary>
[JsonPropertyName("trader")]
public string? Trader
{
get;
set;
}
/// <summary>
/// Optional - used in player/system messages, otherwise templateId is used
/// </summary>
[JsonPropertyName("messageText")]
public string? MessageText
{
get;
set;
}
/// <summary>
/// Optional - Items to send to player
/// </summary>
[JsonPropertyName("items")]
public List<Item>? Items
{
get;
set;
}
/// <summary>
/// Optional - How long items will be stored in mail before expiry
/// </summary>
[JsonPropertyName("itemsMaxStorageLifetimeSeconds")]
public long? ItemsMaxStorageLifetimeSeconds
{
get;
set;
}
/// <summary>
/// Optional - Used when sending messages from traders who send text from locale json
/// </summary>
[JsonPropertyName("templateId")]
public string? TemplateId
{
get;
set;
}
/// <summary>
/// Optional - ragfair related
/// </summary>
[JsonPropertyName("systemData")]
public SystemData? SystemData
{
get;
set;
}
/// <summary>
/// Optional - Used by ragfair messages
/// </summary>
[JsonPropertyName("ragfairDetails")]
public MessageContentRagfair? RagfairDetails
{
get;
set;
}
/// <summary>
/// OPTIONAL - allows modification of profile settings via mail
/// </summary>
[JsonPropertyName("profileChangeEvents")]
public List<ProfileChangeEvent>? ProfileChangeEvents
{
get;
set;
}
/// <summary>
/// Optional - the MongoID of the dialogue message to reply to
/// </summary>
[JsonPropertyName("replyTo")]
public string? ReplyTo
{
get;
set;
}
}
public record ProfileChangeEvent
{
[JsonPropertyName("_id")]
public string? Id
{
get;
set;
}
[JsonPropertyName("Type")]
public ProfileChangeEventType? Type
{
get;
set;
}
[JsonPropertyName("value")]
public double? Value
{
get;
set;
}
[JsonPropertyName("entity")]
public string? Entity
{
get;
set;
}
[JsonPropertyName("data")]
public string? Data
{
get;
set;
}
}
public enum ProfileChangeEventType
{
TraderSalesSum,
TraderStanding,
ProfileLevel,
SkillPoints,
ExamineAllItems,
UnlockTrader,
AssortmentUnlockRule,
HideoutAreaLevel
}