127 lines
3.3 KiB
Java
127 lines
3.3 KiB
Java
package org.mercury_im.messenger.persistence.room.model;
|
|
|
|
import androidx.annotation.NonNull;
|
|
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 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_ENTITY;
|
|
import static org.mercury_im.messenger.persistence.room.model.RoomChatModel.TABLE;
|
|
|
|
@Entity(tableName = TABLE,
|
|
indices = {
|
|
@Index(KEY_ID), @Index(KEY_ENTITY)
|
|
},
|
|
foreignKeys = {
|
|
@ForeignKey(entity = RoomEntityModel.class,
|
|
parentColumns = RoomEntityModel.KEY_ID,
|
|
childColumns = KEY_ENTITY,
|
|
onDelete = CASCADE)
|
|
})
|
|
public class RoomChatModel implements ChatModel {
|
|
|
|
public static final String TABLE = "chats";
|
|
public static final String KEY_ID = "pk_chat_id";
|
|
|
|
public static final String KEY_ENTITY = "fk_entity_id";
|
|
public static final String KEY_ACTIVE = "active";
|
|
public static final String KEY_LAST_READ_MSG = "last_read_message";
|
|
public static final String KEY_MOST_RECENT_MAM_MSG = "most_recent_mam_msg";
|
|
public static final String KEY_EARLIEST_MAM_MSG = "earliest_mam_msg";
|
|
|
|
@PrimaryKey(autoGenerate = true)
|
|
@ColumnInfo(name = KEY_ID)
|
|
private long id;
|
|
|
|
@ColumnInfo(name = KEY_ENTITY)
|
|
private long peerEntityId;
|
|
|
|
@ColumnInfo(name = KEY_ACTIVE)
|
|
private boolean isActive;
|
|
|
|
@ColumnInfo(name = KEY_LAST_READ_MSG)
|
|
private long lastReadMessageId;
|
|
|
|
@ColumnInfo(name = KEY_MOST_RECENT_MAM_MSG)
|
|
private String mostRecentMamMessageId;
|
|
|
|
@ColumnInfo(name = KEY_EARLIEST_MAM_MSG)
|
|
private String earliestMamMessageId;
|
|
|
|
@Override
|
|
public long getId() {
|
|
return id;
|
|
}
|
|
|
|
@Override
|
|
public void setId(long id) {
|
|
this.id = id;
|
|
}
|
|
|
|
@Override
|
|
public long getPeerEntityId() {
|
|
return peerEntityId;
|
|
}
|
|
|
|
@Override
|
|
public void setPeerEntityId(long id) {
|
|
this.peerEntityId = id;
|
|
}
|
|
|
|
@Override
|
|
public boolean isActive() {
|
|
return isActive;
|
|
}
|
|
|
|
@Override
|
|
public void setActive(boolean active) {
|
|
this.isActive = active;
|
|
}
|
|
|
|
@Override
|
|
public long getLastReadMessageId() {
|
|
return lastReadMessageId;
|
|
}
|
|
|
|
@Override
|
|
public void setLastReadMessageId(long messageId) {
|
|
this.lastReadMessageId = messageId;
|
|
}
|
|
|
|
@Override
|
|
public String getMostRecentMamMessageId() {
|
|
return mostRecentMamMessageId;
|
|
}
|
|
|
|
@Override
|
|
public void setMostRecentMamMessageId(String uid) {
|
|
this.mostRecentMamMessageId = uid;
|
|
}
|
|
|
|
@Override
|
|
public String getEarliestMamMessageId() {
|
|
return earliestMamMessageId;
|
|
}
|
|
|
|
@Override
|
|
public void setEarliestMamMessageId(String uid) {
|
|
this.earliestMamMessageId = uid;
|
|
}
|
|
|
|
@Override
|
|
@NonNull
|
|
public String toString() {
|
|
return "ChatModel[" +
|
|
KEY_ID + ": " + getId() + ", " +
|
|
KEY_ENTITY + ": " + getPeerEntityId() + ", " +
|
|
KEY_ACTIVE + ": " + isActive() +
|
|
"]";
|
|
}
|
|
}
|