Message.text constructor

const Message.text({
  1. required MessageID id,
  2. required UserID authorId,
  3. MessageID? replyToMessageId,
  4. @EpochDateTimeConverter() DateTime? createdAt,
  5. @EpochDateTimeConverter() DateTime? deletedAt,
  6. @EpochDateTimeConverter() DateTime? failedAt,
  7. @EpochDateTimeConverter() DateTime? sentAt,
  8. @EpochDateTimeConverter() DateTime? deliveredAt,
  9. @EpochDateTimeConverter() DateTime? seenAt,
  10. @EpochDateTimeConverter() DateTime? updatedAt,
  11. @EpochDateTimeConverter() DateTime? editedAt,
  12. Map<String, List<UserID>>? reactions,
  13. bool? pinned,
  14. Map<String, dynamic>? metadata,
  15. MessageStatus? status,
  16. required String text,
  17. LinkPreviewData? linkPreviewData,
})

Creates a text message.

Implementation

const factory Message.text({
  /// Unique identifier for the message.
  required MessageID id,

  /// ID of the user who sent the message.
  required UserID authorId,

  /// ID of the message this one is replying to.
  MessageID? replyToMessageId,

  /// Timestamp when the message was created.
  @EpochDateTimeConverter() DateTime? createdAt,

  /// Timestamp when the message was marked as deleted.
  @EpochDateTimeConverter() DateTime? deletedAt,

  /// Timestamp when the message failed to send.
  @EpochDateTimeConverter() DateTime? failedAt,

  /// Timestamp when the message was successfully sent.
  @EpochDateTimeConverter() DateTime? sentAt,

  /// Timestamp when the message was delivered to the recipient.
  @EpochDateTimeConverter() DateTime? deliveredAt,

  /// Timestamp when the message was seen by the recipient.
  @EpochDateTimeConverter() DateTime? seenAt,

  /// Timestamp when the message was last updated.
  @EpochDateTimeConverter() DateTime? updatedAt,

  /// Timestamp when the message was last edited.
  @EpochDateTimeConverter() DateTime? editedAt,

  /// Map of reaction keys to lists of user IDs who reacted.
  Map<String, List<UserID>>? reactions,

  /// Indicates if the message is pinned.
  bool? pinned,

  /// Additional custom metadata associated with the message.
  Map<String, dynamic>? metadata,

  /// Status of the message. Takes precedence over the timestamp based status.
  /// If not provided, the status is determined by createdAt, sentAt, seenAt etc.
  MessageStatus? status,

  /// The text content of the message.
  required String text,

  /// Optional preview data for a link found in the [text].
  LinkPreviewData? linkPreviewData,
}) = TextMessage;