feat: Add support for message attachments

- Introduced Attachment model to handle file attachments associated with messages.
- Updated ModerationController to manage message deletions and attachment cleanup.
- Enhanced ChatService to include attachments in message retrieval.
- Implemented migration for legacy single-attachment messages to the new Attachments model.
- Added unit tests for attachment handling in message formatting and parsing.
- Updated database context and migrations to support new Attachments table.
This commit is contained in:
HueByte
2026-07-16 05:02:12 +02:00
parent e05b420ce9
commit 2d33773c24
33 changed files with 1843 additions and 454 deletions
+13 -4
View File
@@ -8,13 +8,22 @@ public record MessageDto(
string SenderUsername,
string? SenderNicknameColor,
string ChannelName,
MessageType Type,
string? AttachmentUrl,
string? AttachmentFileName,
DateTimeOffset SentAt,
long? AttachmentFileSize = null,
List<AttachmentDto>? Attachments = null,
List<EmbedDto>? Embeds = null);
/// <summary>
/// A file attached to a message. <see cref="AsciiPreview"/> holds the color-tag art for
/// images (null otherwise). For end-to-end encrypted channels the content behind
/// <see cref="Url"/> and the preview are ciphertext the server cannot read.
/// </summary>
public record AttachmentDto(
AttachmentKind Kind,
string Url,
string FileName,
long FileSize,
string? AsciiPreview = null);
public record ChannelDto(
Guid Id,
string Name,