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}"; }