-class JsonSyncMessage {
-
- @JsonProperty
- @JsonInclude(JsonInclude.Include.NON_NULL)
- final JsonSyncDataMessage sentMessage;
-
- @JsonProperty
- @JsonInclude(JsonInclude.Include.NON_NULL)
- final List<String> blockedNumbers;
-
- @JsonProperty
- @JsonInclude(JsonInclude.Include.NON_NULL)
- final List<String> blockedGroupIds;
-
- @JsonProperty
- @JsonInclude(JsonInclude.Include.NON_NULL)
- final List<JsonSyncReadMessage> readMessages;
-
- @JsonProperty
- @JsonInclude(JsonInclude.Include.NON_NULL)
- final JsonSyncMessageType type;
-
- JsonSyncMessage(SignalServiceSyncMessage syncMessage, Manager m) {
- this.sentMessage = syncMessage.getSent().isPresent()
- ? new JsonSyncDataMessage(syncMessage.getSent().get(), m)
+record JsonSyncMessage(
+ @JsonInclude(JsonInclude.Include.NON_NULL) JsonSyncDataMessage sentMessage,
+ @JsonInclude(JsonInclude.Include.NON_NULL) JsonSyncStoryMessage sentStoryMessage,
+ @JsonInclude(JsonInclude.Include.NON_NULL) List<String> blockedNumbers,
+ @JsonInclude(JsonInclude.Include.NON_NULL) List<String> blockedGroupIds,
+ @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonSyncReadMessage> readMessages,
+ @JsonInclude(JsonInclude.Include.NON_NULL) JsonSyncMessageType type
+) {
+
+ static JsonSyncMessage from(MessageEnvelope.Sync syncMessage) {
+ final var sentMessage = syncMessage.sent().isPresent() && syncMessage.sent().get().story().isEmpty()
+ ? JsonSyncDataMessage.from(syncMessage.sent().get())