mirror of
https://github.com/Govor-team/Govor.git
synced 2026-07-21 19:54:55 +00:00
the basis for group and private messages
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
namespace Govor.Application.Interfaces.Messages;
|
||||
|
||||
public interface IChatService : IMessageSendingService, IMessageManagementService
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
using Govor.Application.Interfaces.Messages.Parameters;
|
||||
|
||||
namespace Govor.Application.Interfaces.Messages;
|
||||
|
||||
public interface IMessageManagementService
|
||||
{
|
||||
Task<Result> EditMessageAsync(Guid editorId, Guid messageId, string newContent);
|
||||
Task<Result> DeleteMessageAsync(Guid editorId, Guid messageId);
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
namespace Govor.Application.Interfaces.Messages;
|
||||
|
||||
public interface IMessageReactionService
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
using Govor.Application.Interfaces.Messages.Parameters;
|
||||
|
||||
namespace Govor.Application.Interfaces.Messages;
|
||||
|
||||
public interface IMessageSendingService
|
||||
{
|
||||
Task<Result> SendMessageAsync(SendMessage newMessage);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Govor.Application.Interfaces.Messages.Parameters;
|
||||
using Govor.Core.Models;
|
||||
|
||||
namespace Govor.Application.Interfaces.Messages;
|
||||
|
||||
// Combining IChatService and IGroupService functionalities relevant to messages
|
||||
public interface IMessageService
|
||||
{
|
||||
Task<SendMessageResult> SendMessageAsync(SendMessage messageParameters);
|
||||
Task<EditMessageResult> EditMessageAsync(EditMessage messageParameters);
|
||||
Task<DeleteMessageResult> DeleteMessageAsync(DeleteMessage messageParameters);
|
||||
|
||||
// Potentially other message-related methods like:
|
||||
// Task<GetMessagesResult> GetMessagesAsync(Guid userId, Guid chatId, RecipientType chatType, int pageNumber, int pageSize);
|
||||
// Task<Result> MarkMessageAsReadAsync(Guid userId, Guid messageId);
|
||||
}
|
||||
|
||||
// Define specific result types for clarity, including original message for notifications if needed
|
||||
|
||||
public record SendMessageResult(bool IsSuccess, Exception? Exception, Guid MessageId)
|
||||
: Result(IsSuccess, Exception, MessageId);
|
||||
|
||||
public record EditMessageResult(bool IsSuccess, Exception? Exception, Message? OriginalMessage)
|
||||
: Result(IsSuccess, Exception, OriginalMessage?.Id ?? Guid.Empty)
|
||||
{
|
||||
// OriginalMessage can be useful for the Hub to know details like RecipientType, RecipientId for notifications
|
||||
}
|
||||
|
||||
public record DeleteMessageResult(bool IsSuccess, Exception? Exception, Message? OriginalMessage)
|
||||
: Result(IsSuccess, Exception, OriginalMessage?.Id ?? Guid.Empty);
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace Govor.Application.Interfaces.Messages.Parameters;
|
||||
|
||||
public record DeleteMessage(
|
||||
Guid DeleterId,
|
||||
Guid MessageId);
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Govor.Application.Interfaces.Messages.Parameters;
|
||||
|
||||
public record EditMessage(
|
||||
Guid EditorId,
|
||||
Guid MessageId,
|
||||
string NewContent,
|
||||
DateTime EditedAt);
|
||||
@@ -2,7 +2,4 @@ using Govor.Core.Models;
|
||||
|
||||
namespace Govor.Application.Interfaces.Messages.Parameters;
|
||||
|
||||
public record SendMedia(Guid Id,
|
||||
string EncryptedKey,
|
||||
MediaType Type,
|
||||
string MimeType);
|
||||
public record SendMedia(Guid MediaId, string EncryptedKey, MediaType Type, string MimeType);
|
||||
@@ -1,8 +1,11 @@
|
||||
using Govor.Core.Models;
|
||||
|
||||
namespace Govor.Application.Interfaces.Messages.Parameters;
|
||||
|
||||
public record SendMessage(
|
||||
string EncryptContent,
|
||||
Guid? ReplyToMessageId,
|
||||
RecipientType RecipientType,
|
||||
Guid RecipientId,
|
||||
Guid FromUserId,
|
||||
DateTime SendAt,
|
||||
|
||||
Reference in New Issue
Block a user