BaseMessage constructor

BaseMessage({
  1. required String channelUrl,
  2. required ChannelType channelType,
  3. required String message,
  4. required SendingStatus? sendingStatus,
  5. String? data,
  6. String? customType,
  7. MentionType mentionType = MentionType.users,
  8. List<User> mentionedUsers = const <User>[],
  9. List<MessageMetaArray>? allMetaArrays,
  10. Map<String, dynamic>? extendedMessage,
  11. int createdAt = 0,
  12. int updatedAt = 0,
  13. Sender? sender,
  14. int messageId = 0,
  15. String? requestId,
  16. bool isReplyToChannel = false,
  17. int? parentMessageId,
  18. Map<String, dynamic>? parentMessage,
  19. ThreadInfo? threadInfo,
  20. int? messageSurvivalSeconds,
  21. bool forceUpdateLastMessage = false,
  22. bool isSilent = false,
  23. int? errorCode,
  24. bool isOperatorMessage = false,
  25. OGMetaData? ogMetaData,
  26. List<Reaction>? reactions = const <Reaction>[],
  27. ScheduledInfo? scheduledInfo,
})

Implementation

BaseMessage({
  required super.channelUrl,
  required super.channelType,
  required this.message,
  required this.sendingStatus,
  super.data,
  super.customType,
  super.mentionType,
  super.mentionedUsers,
  super.allMetaArrays,
  super.extendedMessage,
  super.createdAt,
  super.updatedAt,
  Sender? sender,
  this.messageId = 0,
  this.requestId,
  this.isReplyToChannel = false,
  this.parentMessageId,
  Map<String, dynamic>? parentMessage,
  this.threadInfo,
  this.messageSurvivalSeconds,
  this.forceUpdateLastMessage = false,
  this.isSilent = false,
  this.errorCode,
  this.isOperatorMessage = false,
  this.ogMetaData,
  this.reactions = const <Reaction>[],
  this.scheduledInfo,
}) : _sender = sender {
  if (parentMessage != null && parentMessageId != null) {
    parentMessage['message_id'] = parentMessageId;
    parentMessage['channel_url'] = channelUrl;
    parentMessage['channel_type'] = channelType;

    this.parentMessage = RootMessage.fromJson(parentMessage) as BaseMessage;
  }

  if (sendingStatus == null) {
    if (messageId > 0) {
      sendingStatus = SendingStatus.succeeded;
    } else if (requestId != null) {
      sendingStatus = SendingStatus.pending;
    } else {
      sendingStatus = SendingStatus.none;
    }
  }
}