Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/model/RoomChatModel.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;
}
}