81 lines
1.8 KiB
Java
81 lines
1.8 KiB
Java
package org.mercury_im.messenger.data.model;
|
|
|
|
import org.jxmpp.jid.EntityJid;
|
|
import org.mercury_im.messenger.data.converter.EntityJidConverter;
|
|
import org.mercury_im.messenger.data.converter.MessageDirectionConverter;
|
|
import org.mercury_im.messenger.entity.Encryption;
|
|
import org.mercury_im.messenger.entity.message.ChatMarkerState;
|
|
import org.mercury_im.messenger.entity.message.MessageDeliveryState;
|
|
import org.mercury_im.messenger.entity.message.MessageDirection;
|
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
|
|
|
import java.util.Date;
|
|
import java.util.UUID;
|
|
|
|
import io.requery.Column;
|
|
import io.requery.Convert;
|
|
import io.requery.Entity;
|
|
import io.requery.Key;
|
|
import io.requery.Persistable;
|
|
import io.requery.Table;
|
|
import io.requery.converter.UUIDConverter;
|
|
|
|
@Entity
|
|
@Table(name = "messages")
|
|
public abstract class AbstractMessageModel implements Persistable {
|
|
|
|
@Key
|
|
@Convert(UUIDConverter.class)
|
|
UUID id;
|
|
|
|
@Column(nullable = false)
|
|
@Convert(UUIDConverter.class)
|
|
UUID chatId;
|
|
|
|
@Column(nullable = false)
|
|
@Convert(EntityJidConverter.class)
|
|
EntityJid sender;
|
|
|
|
@Column(nullable = false)
|
|
@Convert(EntityJidConverter.class)
|
|
EntityJid recipient;
|
|
|
|
@Column(name = "\"timestamp\"", nullable = false)
|
|
Date timestamp;
|
|
|
|
@Column(nullable = false)
|
|
@Convert(MessageDirectionConverter.class)
|
|
MessageDirection direction;
|
|
|
|
@Column(length = 65536)
|
|
String body;
|
|
|
|
@Column(length = 65536)
|
|
String xml;
|
|
|
|
@Column
|
|
String legacyId;
|
|
|
|
@Column(unique = true)
|
|
String originId;
|
|
|
|
@Column
|
|
String stanzaId;
|
|
|
|
@Column
|
|
String stanzaIdBy;
|
|
|
|
@Column
|
|
Encryption encryption;
|
|
|
|
@Column
|
|
OpenPgpV4Fingerprint senderOXFingerprint;
|
|
|
|
@Column
|
|
ChatMarkerState chatMarkerState;
|
|
|
|
@Column
|
|
MessageDeliveryState deliveryState;
|
|
|
|
}
|