toPositiveUpdateJson method

Map<String, dynamic> toPositiveUpdateJson()

Implementation

Map<String, dynamic> toPositiveUpdateJson() {
  final _extraData = extraData
    ..removeWhere((key, value) => value is! FieldValue);

  final _data = <String, dynamic>{
    'user_ids': userIds == null ? null : FieldValue.arrayUnion(userIds!),
    'typing_user_ids':
        typingUserIds == null ? null : FieldValue.arrayUnion(typingUserIds!),
    'pinned_chat_user_ids': pinnedChatUserIds == null
        ? null
        : FieldValue.arrayUnion(pinnedChatUserIds!),
    ..._extraData,
  };

  final _unreadMessages = unreadMessages ?? [];

  _unreadMessages.forEach((element) {
    if (element.uid != null) {
      _data['z_${element.uid}_unread_messages'] =
          FieldValue.increment(element.unreadMessagesCount);
    }
  });

  return _data..removeWhere((key, value) => value == null);
}