package org.asamk.signal.json;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import org.asamk.signal.manager.Manager;
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Reaction;
+import static org.asamk.signal.util.Util.getLegacyIdentifier;
+
public class JsonReaction {
- String emoji;
- String targetAuthor;
- long targetSentTimestamp;
- boolean isRemove;
+ @JsonProperty
+ final String emoji;
+
+ @JsonProperty
+ @Deprecated
+ final String targetAuthor;
+
+ @JsonProperty
+ final String targetAuthorNumber;
+
+ @JsonProperty
+ final String targetAuthorUuid;
+
+ @JsonProperty
+ final long targetSentTimestamp;
+
+ @JsonProperty
+ final boolean isRemove;
JsonReaction(Reaction reaction, Manager m) {
this.emoji = reaction.getEmoji();
- this.targetAuthor = m.resolveSignalServiceAddress(reaction.getTargetAuthor()).getLegacyIdentifier();
+ final var address = m.resolveSignalServiceAddress(reaction.getTargetAuthor());
+ this.targetAuthor = getLegacyIdentifier(address);
+ this.targetAuthorNumber = address.getNumber().orNull();
+ this.targetAuthorUuid = address.getUuid().toString();
this.targetSentTimestamp = reaction.getTargetSentTimestamp();
this.isRemove = reaction.isRemove();
}