fromJson static method
Implementation
static Message? fromJson(Map<String, dynamic>? json) {
if (json == null) {
return null;
}
return Message(
id: (json['id'] as int?) ?? 0,
senderId: MessageSender.fromJson(tdMapFromJson(json['sender_id'])),
receiverId: MessageSender.fromJson(tdMapFromJson(json['receiver_id'])),
chatId: (json['chat_id'] as int?) ?? 0,
sendingState: MessageSendingState.fromJson(
tdMapFromJson(json['sending_state']),
),
schedulingState: MessageSchedulingState.fromJson(
tdMapFromJson(json['scheduling_state']),
),
isOutgoing: (json['is_outgoing'] as bool?) ?? false,
isPinned: (json['is_pinned'] as bool?) ?? false,
isFromOffline: (json['is_from_offline'] as bool?) ?? false,
canBeSaved: (json['can_be_saved'] as bool?) ?? false,
hasTimestampedMedia: (json['has_timestamped_media'] as bool?) ?? false,
isChannelPost: (json['is_channel_post'] as bool?) ?? false,
isPaidStarSuggestedPost:
(json['is_paid_star_suggested_post'] as bool?) ?? false,
isPaidGramSuggestedPost:
(json['is_paid_gram_suggested_post'] as bool?) ?? false,
containsUnreadMention:
(json['contains_unread_mention'] as bool?) ?? false,
containsUnreadPollVotes:
(json['contains_unread_poll_votes'] as bool?) ?? false,
date: (json['date'] as int?) ?? 0,
editDate: (json['edit_date'] as int?) ?? 0,
forwardInfo: MessageForwardInfo.fromJson(
tdMapFromJson(json['forward_info']),
),
importInfo: MessageImportInfo.fromJson(
tdMapFromJson(json['import_info']),
),
interactionInfo: MessageInteractionInfo.fromJson(
tdMapFromJson(json['interaction_info']),
),
unreadReactions: List<UnreadReaction>.from(
tdListFromJson(json['unread_reactions'])
.map((item) => UnreadReaction.fromJson(tdMapFromJson(item)))
.whereType<UnreadReaction>(),
),
factCheck: FactCheck.fromJson(tdMapFromJson(json['fact_check'])),
suggestedPostInfo: SuggestedPostInfo.fromJson(
tdMapFromJson(json['suggested_post_info']),
),
replyTo: MessageReplyTo.fromJson(tdMapFromJson(json['reply_to'])),
topicId: MessageTopic.fromJson(tdMapFromJson(json['topic_id'])),
selfDestructType: MessageSelfDestructType.fromJson(
tdMapFromJson(json['self_destruct_type']),
),
selfDestructIn: ((json['self_destruct_in'] as num?) ?? 0.0).toDouble(),
autoDeleteIn: ((json['auto_delete_in'] as num?) ?? 0.0).toDouble(),
viaBotUserId: (json['via_bot_user_id'] as int?) ?? 0,
guestBotCallerId: MessageSender.fromJson(
tdMapFromJson(json['guest_bot_caller_id']),
),
senderBusinessBotUserId:
(json['sender_business_bot_user_id'] as int?) ?? 0,
senderBoostCount: (json['sender_boost_count'] as int?) ?? 0,
senderTag: (json['sender_tag'] as String?) ?? '',
paidMessageStarCount: (json['paid_message_star_count'] as int?) ?? 0,
authorSignature: (json['author_signature'] as String?),
mediaAlbumId:
int.tryParse((json['media_album_id'] as dynamic)?.toString() ?? '') ??
0,
effectId:
int.tryParse((json['effect_id'] as dynamic)?.toString() ?? '') ?? 0,
restrictionInfo: RestrictionInfo.fromJson(
tdMapFromJson(json['restriction_info']),
),
summaryLanguageCode: (json['summary_language_code'] as String?) ?? '',
content: MessageContent.fromJson(tdMapFromJson(json['content'])),
replyMarkup: ReplyMarkup.fromJson(tdMapFromJson(json['reply_markup'])),
ephemeralMessageId: (json['ephemeral_message_id'] as int?),
);
}