Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/model/RoomMessageModel.java

103 lines
2.2 KiB
Java

package org.mercury_im.messenger.persistence.room.model;
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;
@Entity(tableName = "messages", foreignKeys = @ForeignKey(entity = RoomAccountModel.class,
parentColumns = "id", childColumns = "accountId", onDelete = CASCADE),
indices = {@Index("id")})
public class RoomMessageModel implements MessageModel {
@PrimaryKey(autoGenerate = true)
private long id;
private long accountId;
private String body;
@TypeConverters(DateConverter.class)
private Date sendDate;
@TypeConverters(EntityBareJidConverter.class)
private EntityBareJid from;
@TypeConverters(EntityBareJidConverter.class)
private EntityBareJid to;
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;
}
}