2019-11-18 23:51:27 +01:00
|
|
|
package org.mercury_im.messenger.data.model;
|
|
|
|
|
2020-07-30 19:52:58 +02:00
|
|
|
import org.jxmpp.jid.EntityJid;
|
|
|
|
import org.mercury_im.messenger.data.converter.EntityJidConverter;
|
2019-12-21 05:34:19 +01:00
|
|
|
import org.mercury_im.messenger.data.converter.MessageDirectionConverter;
|
2020-07-18 21:38:13 +02:00
|
|
|
import org.mercury_im.messenger.entity.Encryption;
|
2020-07-30 19:52:58 +02:00
|
|
|
import org.mercury_im.messenger.entity.message.ChatMarkerState;
|
|
|
|
import org.mercury_im.messenger.entity.message.MessageDeliveryState;
|
2019-12-21 05:34:19 +01:00
|
|
|
import org.mercury_im.messenger.entity.message.MessageDirection;
|
2020-06-24 22:50:26 +02:00
|
|
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
2019-12-21 05:34:19 +01:00
|
|
|
|
2019-10-28 14:56:56 +01:00
|
|
|
import java.util.Date;
|
2019-12-21 16:30:14 +01:00
|
|
|
import java.util.UUID;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
|
|
|
import io.requery.Column;
|
2019-12-21 05:34:19 +01:00
|
|
|
import io.requery.Convert;
|
2019-10-28 14:56:56 +01:00
|
|
|
import io.requery.Entity;
|
|
|
|
import io.requery.Key;
|
|
|
|
import io.requery.Persistable;
|
|
|
|
import io.requery.Table;
|
2019-12-21 16:30:14 +01:00
|
|
|
import io.requery.converter.UUIDConverter;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
|
|
|
@Entity
|
|
|
|
@Table(name = "messages")
|
|
|
|
public abstract class AbstractMessageModel implements Persistable {
|
|
|
|
|
2019-12-21 16:30:14 +01:00
|
|
|
@Key
|
2020-06-13 19:14:38 +02:00
|
|
|
@Convert(UUIDConverter.class)
|
2019-12-21 16:30:14 +01:00
|
|
|
UUID id;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2020-06-24 22:50:26 +02:00
|
|
|
@Column(nullable = false)
|
2020-07-30 19:52:58 +02:00
|
|
|
@Convert(UUIDConverter.class)
|
2020-06-24 22:50:26 +02:00
|
|
|
UUID chatId;
|
|
|
|
|
2019-10-28 14:56:56 +01:00
|
|
|
@Column(nullable = false)
|
2020-07-30 19:52:58 +02:00
|
|
|
@Convert(EntityJidConverter.class)
|
|
|
|
EntityJid sender;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
|
|
|
@Column(nullable = false)
|
2020-07-30 19:52:58 +02:00
|
|
|
@Convert(EntityJidConverter.class)
|
|
|
|
EntityJid recipient;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2019-12-01 23:13:25 +01:00
|
|
|
@Column(name = "\"timestamp\"", nullable = false)
|
|
|
|
Date timestamp;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2019-12-21 05:34:19 +01:00
|
|
|
@Column(nullable = false)
|
|
|
|
@Convert(MessageDirectionConverter.class)
|
|
|
|
MessageDirection direction;
|
|
|
|
|
2020-06-08 17:19:40 +02:00
|
|
|
@Column(length = 65536)
|
2020-06-05 16:35:16 +02:00
|
|
|
String body;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2020-07-13 01:39:26 +02:00
|
|
|
@Column(length = 65536)
|
|
|
|
String xml;
|
|
|
|
|
2019-12-08 22:49:42 +01:00
|
|
|
@Column
|
2019-10-28 14:56:56 +01:00
|
|
|
String legacyId;
|
|
|
|
|
2020-06-24 22:50:26 +02:00
|
|
|
@Column(unique = true)
|
2019-10-28 14:56:56 +01:00
|
|
|
String originId;
|
|
|
|
|
2019-12-08 22:49:42 +01:00
|
|
|
@Column
|
2019-10-28 14:56:56 +01:00
|
|
|
String stanzaId;
|
|
|
|
|
2019-12-08 22:49:42 +01:00
|
|
|
@Column
|
2019-11-18 00:04:28 +01:00
|
|
|
String stanzaIdBy;
|
2020-06-24 22:50:26 +02:00
|
|
|
|
2020-07-18 21:38:13 +02:00
|
|
|
@Column
|
|
|
|
Encryption encryption;
|
|
|
|
|
2020-06-24 22:50:26 +02:00
|
|
|
@Column
|
|
|
|
OpenPgpV4Fingerprint senderOXFingerprint;
|
2020-07-18 21:38:13 +02:00
|
|
|
|
2020-07-30 19:52:58 +02:00
|
|
|
@Column
|
|
|
|
ChatMarkerState chatMarkerState;
|
|
|
|
|
|
|
|
@Column
|
|
|
|
MessageDeliveryState deliveryState;
|
|
|
|
|
2019-10-28 14:56:56 +01:00
|
|
|
}
|