Stream Chat Unreal SDK
Loading...
Searching...
No Matches
Message.h
1// Copyright 2026 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Channel/Attachment.h"
6#include "CoreMinimal.h"
7#include "Moderation/MessageModeration.h"
8#include "Reaction/Reactions.h"
9#include "Response/Channel/ChannelStateResponseFieldsDto.h"
10#include "Response/Message/SearchResultDto.h"
11#include "User/UserRef.h"
12
13#include "Message.generated.h"
14
15struct FMessageDto;
17
22UENUM(BlueprintType)
23enum class EMessageSendState : uint8
24{
25 None,
27 Sending,
29 Sent,
35 Failed
36};
37
43UENUM(BlueprintType)
44enum class EMessageType : uint8
45{
47 Regular,
53 Error,
57 Reply,
59 System,
62};
63
68USTRUCT(BlueprintType)
69struct STREAMCHAT_API FMessage
70{
71 GENERATED_BODY()
72
73
76 explicit FMessage(const FMessageDto&, UUserManager*);
77 explicit FMessage(const FSearchResultDto&, UUserManager*);
79 explicit FMessage(const FString& Text);
82 FMessageRequestDto ToRequestDto(const FString& ChannelCid) const;
83
85 bool IsThreadReply() const;
86
88 bool IsThreadStart() const;
89
96 bool IsBounced() const;
97
99 bool IsRemovedByModeration() const;
100
107 bool IsModerationError() const;
108
110 bool IsQuoting() const;
111
118 const FString& GetTranslation(const FString& Language) const;
119
121 UPROPERTY()
122 FString Id;
123
126 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
127 FString Cid;
128
130 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
131 FString Text;
132
134 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
136
138 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
140
142 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
144
146 UPROPERTY()
148
150 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
151 FDateTime CreatedAt = FDateTime{0};
152
154 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
155 FDateTime UpdatedAt = FDateTime{0};
156
158 TOptional<FDateTime> DeletedAt;
159
161 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
162 FReactions Reactions;
163
166 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
167 FString ParentId;
168
171 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
172 bool bShowInChannel = false;
173
175 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
176 int32 ReplyCount = 0;
177
179 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
180 TArray<FUserRef> ThreadParticipants;
181
182 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message", AdvancedDisplay)
183 bool bIsSilent = false;
184
186 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message", AdvancedDisplay)
187 bool bIsShadowed = false;
188
190 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message", AdvancedDisplay)
192
194 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
195 FString Html;
196
198 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
200
203 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
204 FString Command;
205
207 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
208 bool bPinned = false;
209
211 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
212 FDateTime PinnedAt = FDateTime{0};
213
215 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message")
216 FUserRef PinnedBy;
217
220 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
221 FDateTime PinExpires = FDateTime{0};
222
225 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Stream Chat|Message")
227
230 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message", AdvancedDisplay)
231 TMap<FString, FString> Translations;
232
234 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Stream Chat|Message", AdvancedDisplay)
235 FString OriginalLanguage;
236
237 UPROPERTY(BlueprintReadWrite, Category = "Stream Chat|Message", AdvancedDisplay)
238 FAdditionalFields ExtraData;
239};
@ State
Return channel state in response.
@ None
Do nothing.
EMessageSendState
The client-side state of a message.
Definition Message.h:24
EMessageType
Type of message, as set by the API or chat bots and custom commands.
Definition Message.h:45
@ Id
Message ID.
@ Attachments
Whether or not the message contains an attachment.
@ Text
Text of the message.
@ Type
Type of the message.
@ ParentId
The parent message ID (if the message is a reply)
@ ReplyCount
The number of replies the message has.
@ Updating
Message is shown, but user might see a "pending" icon.
@ Sent
Message is shown, and user might see a "confirmed" icon.
@ Failed
User might see a "failed" icon.
@ Sending
Message is shown, but user might see a "pending" icon.
@ Deleting
Message might be shown as deleted already, pending confirmation from API.
@ ChannelCid
The channel CID for the ban. When this parameter is not provided, both global and channel bans will b...
@ Deleted
A soft deleted message.
@ System
A message generated by a system event, like updating the channel or muting a user.
@ Regular
A regular message created in the channel.
A file, image or link attached to a message.
Definition Attachment.h:42
#/components/schemas/Message Represents any chat message. Used in responses only
Definition MessageDto.h:25
Represents a Stream Chat message.
Definition Message.h:70
TOptional< FDateTime > DeletedAt
Reserved field indicating when the message was deleted.
Definition Message.h:158
The moderation verdict for a message.
Definition MessageModeration.h:42
#/components/schemas/MessageRequest
Definition MessageRequestDto.h:18
bool bPinned
Definition MessageRequestDto.h:63
FString Html
Contains HTML markup of the message.
Definition MessageRequestDto.h:31
FString QuotedMessageId
The ID of the message this one quotes. The backend embeds the quoted message in responses.
Definition MessageRequestDto.h:67
bool bShowInChannel
Definition MessageRequestDto.h:54
TArray< FString > MentionedUsers
Definition MessageRequestDto.h:40
FDateTime PinExpires
When the pin should lapse. Leave zeroed to pin indefinitely; ignored unless bPinned.
Definition MessageRequestDto.h:58
Encapsulates a collection of reactions for a message.
Definition Reactions.h:21
#/components/schemas/SearchResult
Definition SearchResultDto.h:16
A reference to a unique User.
Definition UserRef.h:23