73 lines
1.9 KiB
Java
73 lines
1.9 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 org.mercury_im.messenger.persistence.model.ChatModel;
|
|
import org.mercury_im.messenger.persistence.model.EntityModel;
|
|
|
|
import static androidx.room.ForeignKey.CASCADE;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomChatModel.KEY_ID;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomChatModel.KEY_XMPPID;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomChatModel.TABLE;
|
|
|
|
@Entity(tableName = TABLE,
|
|
indices = {@Index(KEY_ID), @Index(KEY_XMPPID)},
|
|
foreignKeys = {
|
|
@ForeignKey(entity = EntityModel.class, parentColumns = "id", childColumns = "xmppId", onDelete = CASCADE)
|
|
})
|
|
public class RoomChatModel implements ChatModel {
|
|
|
|
public static final String TABLE = "chats";
|
|
|
|
public static final String KEY_ID = "id";
|
|
public static final String KEY_XMPPID = "xmppId";
|
|
public static final String KEY_OPEN = "open";
|
|
|
|
@PrimaryKey(autoGenerate = true)
|
|
@ColumnInfo(name = KEY_ID)
|
|
private long id;
|
|
|
|
@ColumnInfo(name = KEY_XMPPID)
|
|
private long xmppIdentityId;
|
|
|
|
@ColumnInfo(name = KEY_OPEN)
|
|
private boolean isOpened;
|
|
|
|
@Override
|
|
public long getId() {
|
|
return id;
|
|
}
|
|
|
|
@Override
|
|
public RoomChatModel setId(long id) {
|
|
this.id = id;
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public long getPeerIdentityId() {
|
|
return xmppIdentityId;
|
|
}
|
|
|
|
@Override
|
|
public RoomChatModel setPeerIdentityId(long id) {
|
|
this.xmppIdentityId = id;
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public boolean isOpened() {
|
|
return isOpened;
|
|
}
|
|
|
|
@Override
|
|
public RoomChatModel setOpened(boolean opened) {
|
|
this.isOpened = opened;
|
|
return this;
|
|
}
|
|
}
|