feat: Implement message management features including sending, deleting, updating, and reacting to messages

This commit is contained in:
Dayron
2025-10-20 17:34:09 +02:00
parent 3d902ffa74
commit a2e366e1ce
9 changed files with 1354 additions and 20 deletions

View File

@@ -0,0 +1,94 @@
import 'package:equatable/equatable.dart';
abstract class MessageEvent extends Equatable {
const MessageEvent();
@override
List<Object?> get props => [];
}
class LoadMessages extends MessageEvent {
final String groupId;
const LoadMessages(this.groupId);
@override
List<Object?> get props => [groupId];
}
class SendMessage extends MessageEvent {
final String groupId;
final String text;
final String senderId;
final String senderName;
const SendMessage({
required this.groupId,
required this.text,
required this.senderId,
required this.senderName,
});
@override
List<Object?> get props => [groupId, text, senderId, senderName];
}
class DeleteMessage extends MessageEvent {
final String groupId;
final String messageId;
const DeleteMessage({
required this.groupId,
required this.messageId,
});
@override
List<Object?> get props => [groupId, messageId];
}
class UpdateMessage extends MessageEvent {
final String groupId;
final String messageId;
final String newText;
const UpdateMessage({
required this.groupId,
required this.messageId,
required this.newText,
});
@override
List<Object?> get props => [groupId, messageId, newText];
}
class ReactToMessage extends MessageEvent {
final String groupId;
final String messageId;
final String userId;
final String reaction;
const ReactToMessage({
required this.groupId,
required this.messageId,
required this.userId,
required this.reaction,
});
@override
List<Object?> get props => [groupId, messageId, userId, reaction];
}
class RemoveReaction extends MessageEvent {
final String groupId;
final String messageId;
final String userId;
const RemoveReaction({
required this.groupId,
required this.messageId,
required this.userId,
});
@override
List<Object?> get props => [groupId, messageId, userId];
}