sharp-chat/SharpChatCommon/Messages/Message.cs
2025-04-27 18:45:32 +00:00

36 lines
1.3 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
) {
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 JsonDocument Data { get; } = data;
public bool IsPrivate => !string.IsNullOrEmpty(ChannelName) && ChannelName.StartsWith('@');
public bool IsBroadcast => string.IsNullOrEmpty(ChannelName);
public string SenderLegacyName => string.IsNullOrWhiteSpace(SenderNickName) ? SenderName : $"~{SenderNickName}";
}