Message sync & realtime

This commit is contained in:
2025-05-03 23:02:44 +08:00
parent efdddf72e4
commit 7edfd56bf7
7 changed files with 761 additions and 66 deletions

View File

@ -94,3 +94,33 @@ abstract class SnChatMember with _$SnChatMember {
factory SnChatMember.fromJson(Map<String, dynamic> json) =>
_$SnChatMemberFromJson(json);
}
class MessageChangeAction {
static const String create = "create";
static const String update = "update";
static const String delete = "delete";
}
@freezed
abstract class MessageChange with _$MessageChange {
const factory MessageChange({
required String messageId,
required String action,
SnChatMessage? message,
required DateTime timestamp,
}) = _MessageChange;
factory MessageChange.fromJson(Map<String, dynamic> json) =>
_$MessageChangeFromJson(json);
}
@freezed
abstract class MessageSyncResponse with _$MessageSyncResponse {
const factory MessageSyncResponse({
@Default([]) List<MessageChange> changes,
required DateTime currentTimestamp,
}) = _MessageSyncResponse;
factory MessageSyncResponse.fromJson(Map<String, dynamic> json) =>
_$MessageSyncResponseFromJson(json);
}