sendMessage method

dynamic sendMessage(
  1. ChatModal message, {
  2. required CollectionReference<Object?> chatCollection,
  3. String messageType = MessageType.text,
  4. required String chatId,
})

Implementation

sendMessage(ChatModal message,
    {

      required CollectionReference chatCollection,
      String messageType = MessageType.text,
      // ChatListModal? chatListModal,
      required String chatId,

    }) async
{
  // customPrint('The notification message is 2: $notificationMessage');
  Map<String, dynamic> users = {
    // "users": [
    //   message.from,
    //   // message.to,
    // ],
    "users": FieldValue.arrayUnion([message.from]),
    'lastMessage': message.message,
    'lastMessageType': message.messageType,
    ApiKeys.updatedAt: message.createdAt,
    message.from: userData!.fullData,
    // message.to: otherUserObject,

    // "unreadCount_${message.to}": ///unread count get karke plus karna he
  };
  // users['unreadCount_${message.to}'] = FieldValue.increment(1);
  // users['${message.to}']['unreadCount'] = FieldValue.increment(1);
  // customPrint('dlkfsl ${users[message.to]['unreadCount']}');

  var chatDoc = await chatCollection.doc(chatId).get();
  customLogs('The chat exist before status : ${chatDoc.exists}....${message.messageType}: ${message.message}');
  try {
    if (chatDoc.exists) {
      chatCollection
          .doc(chatId)
          .update(users,);
      customPrint('chatddddddddddddddd');
    } else {
      chatCollection
          .doc(chatId)
          .set(users);
    }
  } catch (e) {
    customPrint('Error in catch block $e');
  }
  await chatCollection
      .doc(chatId)
      .collection('messages')
      .add(message.toJson());



}