34 lines
850 B
C#
34 lines
850 B
C#
using LightlessSync.API.Dto.Chat;
|
|
|
|
namespace LightlessSync.Services.Chat;
|
|
|
|
public sealed record ChatMessageEntry(
|
|
ChatMessageDto? Payload,
|
|
string DisplayName,
|
|
bool FromSelf,
|
|
DateTime ReceivedAtUtc,
|
|
ChatSystemEntry? SystemMessage = null)
|
|
{
|
|
public bool IsSystem => SystemMessage is not null;
|
|
}
|
|
|
|
public enum ChatSystemEntryType
|
|
{
|
|
ZoneSeparator
|
|
}
|
|
|
|
public sealed record ChatSystemEntry(ChatSystemEntryType Type, string? ZoneName);
|
|
|
|
public readonly record struct ChatChannelSnapshot(
|
|
string Key,
|
|
ChatChannelDescriptor Descriptor,
|
|
string DisplayName,
|
|
ChatChannelType Type,
|
|
bool IsConnected,
|
|
bool IsAvailable,
|
|
string? StatusText,
|
|
bool HasUnread,
|
|
int UnreadCount,
|
|
IReadOnlyList<ChatMessageEntry> Messages);
|
|
|
|
public readonly record struct ChatReportResult(bool Success, string? ErrorMessage); |