142 lines
3.5 KiB
Java
142 lines
3.5 KiB
Java
package org.mercury_im.messenger.persistence.room.model;
|
|
|
|
import androidx.room.ColumnInfo;
|
|
import androidx.room.Entity;
|
|
import androidx.room.ForeignKey;
|
|
import androidx.room.Index;
|
|
import androidx.room.PrimaryKey;
|
|
import androidx.room.TypeConverters;
|
|
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.mercury_im.messenger.persistence.model.MessageModel;
|
|
import org.mercury_im.messenger.persistence.room.type_converter.DateConverter;
|
|
import org.mercury_im.messenger.persistence.room.type_converter.EntityBareJidConverter;
|
|
|
|
import java.util.Date;
|
|
|
|
import static androidx.room.ForeignKey.CASCADE;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomMessageModel.KEY_ACCOUNT_ID;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomMessageModel.KEY_ID;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomMessageModel.TABLE;
|
|
|
|
@Entity(tableName = TABLE,
|
|
foreignKeys = {
|
|
@ForeignKey(entity = RoomAccountModel.class,
|
|
parentColumns = RoomAccountModel.KEY_ID,
|
|
childColumns = KEY_ACCOUNT_ID,
|
|
onDelete = CASCADE)},
|
|
indices = {
|
|
@Index(KEY_ID),
|
|
@Index(KEY_ACCOUNT_ID)
|
|
})
|
|
public class RoomMessageModel implements MessageModel {
|
|
|
|
public static final String TABLE = "messages";
|
|
public static final String KEY_ID = "id";
|
|
public static final String KEY_ACCOUNT_ID = "accountId";
|
|
public static final String KEY_BODY = "body";
|
|
public static final String KEY_SEND_DATE = "sendDate";
|
|
public static final String KEY_FROM = "from";
|
|
public static final String KEY_TO = "to";
|
|
public static final String KEY_INCOMING = "incoming";
|
|
|
|
@PrimaryKey(autoGenerate = true)
|
|
@ColumnInfo(name = KEY_ID)
|
|
private long id;
|
|
|
|
@ColumnInfo(name = KEY_ACCOUNT_ID)
|
|
private long accountId;
|
|
|
|
@ColumnInfo(name = KEY_BODY)
|
|
private String body;
|
|
|
|
@TypeConverters(DateConverter.class)
|
|
@ColumnInfo(name = KEY_SEND_DATE)
|
|
private Date sendDate;
|
|
|
|
@TypeConverters(EntityBareJidConverter.class)
|
|
@ColumnInfo(name = KEY_FROM)
|
|
private EntityBareJid from;
|
|
|
|
@TypeConverters(EntityBareJidConverter.class)
|
|
@ColumnInfo(name = KEY_TO)
|
|
private EntityBareJid to;
|
|
|
|
@ColumnInfo(name = KEY_INCOMING)
|
|
private boolean incoming;
|
|
|
|
public RoomMessageModel() {
|
|
|
|
}
|
|
|
|
@Override
|
|
public long getId() {
|
|
return id;
|
|
}
|
|
|
|
@Override
|
|
public void setId(long val) {
|
|
this.id = val;
|
|
}
|
|
|
|
@Override
|
|
public long getAccountId() {
|
|
return accountId;
|
|
}
|
|
|
|
@Override
|
|
public void setAccountId(long accountId) {
|
|
this.accountId = accountId;
|
|
}
|
|
|
|
@Override
|
|
public String getBody() {
|
|
return body;
|
|
}
|
|
|
|
@Override
|
|
public void setBody(String body) {
|
|
this.body = body;
|
|
}
|
|
|
|
@Override
|
|
public Date getSendDate() {
|
|
return sendDate;
|
|
}
|
|
|
|
@Override
|
|
public void setSendDate(Date date) {
|
|
this.sendDate = date;
|
|
}
|
|
|
|
@Override
|
|
public EntityBareJid getFrom() {
|
|
return from;
|
|
}
|
|
|
|
@Override
|
|
public void setFrom(EntityBareJid sender) {
|
|
this.from = sender;
|
|
}
|
|
|
|
@Override
|
|
public EntityBareJid getTo() {
|
|
return to;
|
|
}
|
|
|
|
@Override
|
|
public void setTo(EntityBareJid recipient) {
|
|
this.to = recipient;
|
|
}
|
|
|
|
@Override
|
|
public boolean isIncoming() {
|
|
return incoming;
|
|
}
|
|
|
|
@Override
|
|
public void setIncoming(boolean isIncoming) {
|
|
this.incoming = isIncoming;
|
|
}
|
|
}
|