docs: function(threadId, pushMessageVO) {
                  /**
                   * + MessageVO                       {object}
                   *    - id                           {long}
                   *    - threadId                     {long}
                   *    - ownerId                      {long}
                   *    - uniqueId                     {string}
                   *    - previousId                   {long}
                   *    - message                      {string}
                   *    - messageType                  {int}
                   *    - edited                       {boolean}
                   *    - editable                     {boolean}
                   *    - deletable                    {boolean}
                   *    - delivered                    {boolean}
                   *    - seen                         {boolean}
                   *    - participant                  {object : ParticipantVO}
                   *    - conversation                 {object : ConversationVO}
                   *    - replyInfo                    {object : replyInfoVO}
                   *    - forwardInfo                  {object : forwardInfoVO}
                   *    - metadata                     {string}
                   *    - systemMetadata               {string}
                   *    - time                         {long}
                   *    - timeNanos                    {long}
                   */
  
                  var message = {
                      id: pushMessageVO.id,
                      threadId: threadId,
                      ownerId: (pushMessageVO.ownerId)
                          ? pushMessageVO.ownerId
                          : undefined,
                      uniqueId: pushMessageVO.uniqueId,
                      previousId: pushMessageVO.previousId,
                      message: pushMessageVO.message,
                      messageType: pushMessageVO.messageType,
                      edited: pushMessageVO.edited,
                      editable: pushMessageVO.editable,
                      deletable: pushMessageVO.deletable,
                      delivered: pushMessageVO.delivered,
                      seen: pushMessageVO.seen,
                      participant: undefined,
                      conversation: undefined,
                      replyInfo: undefined,
                      forwardInfo: undefined,
                      metadata: pushMessageVO.metadata,
                      systemMetadata: pushMessageVO.systemMetadata,
                      time: (pushMessageVO.timeNanos)
                          ? (parseInt(parseInt(pushMessageVO.time) / 1000) * 1000000000) + parseInt(pushMessageVO.timeNanos)
                          : (parseInt(pushMessageVO.time)),
                      timeMiliSeconds: parseInt(pushMessageVO.time),
                      timeNanos: parseInt(pushMessageVO.timeNanos)
                  };
  
                  if (pushMessageVO.participant) {
                      message.ownerId = pushMessageVO.participant.id;
                  }
  
                  if (pushMessageVO.conversation) {
                      message.conversation = formatDataToMakeConversation(pushMessageVO.conversation);
                      message.threadId = pushMessageVO.conversation.id;
                  }
  
                  if (pushMessageVO.replyInfoVO) {
                      message.replyInfo = formatDataToMakeReplyInfo(pushMessageVO.replyInfoVO, threadId);
                  }
  
                  if (pushMessageVO.forwardInfo) {
                      message.forwardInfo = formatDataToMakeForwardInfo(pushMessageVO.forwardInfo, threadId);
                  }
  
                  if (pushMessageVO.participant) {
                      message.participant = formatDataToMakeParticipant(pushMessageVO.participant, threadId);
                  }
  
                  return message;
              }