Refactor: Revert to hard deletes for messages. Remove IsDeleted flag and update repository and configurations accordingly.

This commit is contained in:
google-labs-jules[bot]
2025-07-04 06:03:14 +00:00
parent fab3d6b67b
commit 204e8dba9c
21 changed files with 1299 additions and 185 deletions
@@ -0,0 +1,30 @@
using Govor.Application.Interfaces.Messages.Parameters;
using Govor.Core.Models; // For Result
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);