mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 00:26:07 +02:00
- Updated IChatService to include password parameter in JoinChannelAsync method. - Modified ChannelDto and related models to support password functionality. - Implemented password handling in ChannelService for channel creation and membership validation. - Enhanced IrcCommandHandler to manage channel join requests with passwords. - Added ChannelPasswordDialog for user input when joining protected channels. - Created database migration to add PasswordHash column to Channels table. - Updated tests to cover new password functionality in channel joining and management.
52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
using EchoHub.Core.Models;
|
|
|
|
namespace EchoHub.Core.DTOs;
|
|
|
|
public record MessageDto(
|
|
Guid Id,
|
|
string Content,
|
|
string SenderUsername,
|
|
string? SenderNicknameColor,
|
|
string ChannelName,
|
|
MessageType Type,
|
|
string? AttachmentUrl,
|
|
string? AttachmentFileName,
|
|
DateTimeOffset SentAt,
|
|
long? AttachmentFileSize = null,
|
|
List<EmbedDto>? Embeds = null);
|
|
|
|
public record ChannelDto(
|
|
Guid Id,
|
|
string Name,
|
|
string? Topic,
|
|
bool IsPublic,
|
|
int MessageCount,
|
|
DateTimeOffset CreatedAt,
|
|
bool IsProtected = false);
|
|
|
|
public record UserDto(
|
|
Guid Id,
|
|
string Username,
|
|
string? DisplayName,
|
|
string? NicknameColor,
|
|
UserStatus Status,
|
|
DateTimeOffset LastSeenAt);
|
|
|
|
public record SendMessageRequest(string ChannelName, string Content);
|
|
|
|
public record CreateChannelRequest(string Name, string? Topic = null, bool IsPublic = true, string? Password = null);
|
|
|
|
public record UpdateTopicRequest(string? Topic);
|
|
|
|
public record SendUrlRequest(string Url);
|
|
|
|
public record JoinChannelResult(bool Success, List<MessageDto> History, string? Error = null, bool PasswordRequired = false);
|
|
|
|
public record EmbedDto(
|
|
string? SiteName,
|
|
string? Title,
|
|
string? Description,
|
|
string? ImageAscii,
|
|
string Url,
|
|
string? ThemeColor = null);
|