sharp-chat/SharpChatCommon/Messages/Message.cs

35 lines
1.2 KiB
C#

using System.Text.Json;
namespace SharpChat.Messages;
public class Message(
long id,
string type,
string? senderId,
string senderName,
ColourInheritable senderColour,
int senderRank,
UserPermissions senderPermissions,
string senderNickName,
DateTimeOffset created,
DateTimeOffset? deleted,
string? channelName,
JsonDocument data,
MessageFlags flags
) {
public long Id { get; } = id;
public string Type { get; } = type;
public string? SenderId { get; } = senderId;
public string SenderName { get; } = senderName;
public ColourInheritable SenderColour { get; } = senderColour;
public int SenderRank { get; } = senderRank;
public UserPermissions SenderPermissions { get; } = senderPermissions;
public string SenderNickName { get; } = senderNickName;
public DateTimeOffset Created { get; } = created;
public DateTimeOffset? Deleted { get; } = deleted;
public string? ChannelName { get; } = channelName;
public MessageFlags Flags { get; } = flags;
public JsonDocument Data { get; } = data;
public string SenderLegacyName => string.IsNullOrWhiteSpace(SenderNickName) ? SenderName : $"~{SenderNickName}";
}