feat: Add invite codes and message replies functionality

- Introduced a new migration to add InviteCodes table and ReplyToMessageId column in Messages.
- Updated ChatHub to support replying to messages.
- Enhanced ChatService to handle message replies and validate reply targets.
- Modified UserService to implement invite-only registration mode with invite code consumption.
- Added configuration options for registration modes in appsettings.
- Created unit tests for new features including invite code registration and message reply formatting.
This commit is contained in:
HueByte
2026-07-17 19:47:57 +02:00
parent bb987dda82
commit 3281064720
44 changed files with 2484 additions and 74 deletions
+5 -1
View File
@@ -432,7 +432,11 @@ public sealed class IrcCommandHandler
// Replay history (decrypt — history is encrypted for SignalR transport)
foreach (var m in history)
{
var decrypted = m with { Content = _encryption.Decrypt(m.Content) };
var decrypted = m with
{
Content = _encryption.Decrypt(m.Content),
ReplyTo = m.ReplyTo is { } reply ? reply with { Content = _encryption.Decrypt(reply.Content) } : null,
};
var lines = IrcMessageFormatter.FormatMessage(decrypted, _options.PublicBaseUrl);
foreach (var line in lines)
await _conn.SendAsync(line);