package com.quickblox.q_municate_db.models;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import java.io.Serializable;
import static com.quickblox.q_municate_db.models.UserRequest.Column.ID;
import static com.quickblox.q_municate_db.models.UserRequest.Column.REQUEST_STATUS;
import static com.quickblox.q_municate_db.models.UserRequest.Column.TABLE_NAME;
import static com.quickblox.q_municate_db.models.UserRequest.Column.TEXT_STATUS;
import static com.quickblox.q_municate_db.models.UserRequest.Column.UPDATED_DATE;
@DatabaseTable(tableName = TABLE_NAME)
public class UserRequest implements Serializable {
@DatabaseField(
generatedId = true,
unique = true,
columnName = ID)
private int requestId;
@DatabaseField(
foreign = true,
foreignAutoRefresh = true,
unique = true,
canBeNull = false,
columnName = User.Column.ID)
private User user;
@DatabaseField(
columnName = REQUEST_STATUS)
private RequestStatus requestStatus;
@DatabaseField(
columnName = TEXT_STATUS)
private String textStatus;
@DatabaseField(
columnName = UPDATED_DATE)
private long updatedDate;
public UserRequest() {
}
public UserRequest(long updatedDate, String textStatus, RequestStatus requestStatus, User user) {
this.updatedDate = updatedDate;
this.textStatus = textStatus;
this.requestStatus = requestStatus;
this.user = user;
}
public int getRequestId() {
return requestId;
}
public void setRequestId(int requestId) {
this.requestId = requestId;
}
public long getUpdatedDate() {
return updatedDate;
}
public void setUpdatedDate(long updatedDate) {
this.updatedDate = updatedDate;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getTextStatus() {
return textStatus;
}
public void setTextStatus(String textStatus) {
this.textStatus = textStatus;
}
public RequestStatus getRequestStatus() {
return requestStatus;
}
public void setRequestStatus(RequestStatus requestStatus) {
this.requestStatus = requestStatus;
}
public boolean isIncoming() {
return user.getRole() != User.Role.OWNER;
}
@Override
public String toString() {
return "UserRequest [requestId='" + requestId + "', user='" + user + "']";
}
public enum RequestStatus {
INCOMING(0),
OUTGOING(1);
private int code;
RequestStatus(int code) {
this.code = code;
}
public static RequestStatus parseByCode(int code) {
RequestStatus[] valuesArray = RequestStatus.values();
RequestStatus result = null;
for (RequestStatus value : valuesArray) {
if (value.getCode() == code) {
result = value;
break;
}
}
return result;
}
public int getCode() {
return code;
}
}
public interface Column {
String TABLE_NAME = "user_request";
String ID = "user_request_id";
String TEXT_STATUS = "text_status";
String UPDATED_DATE = "updated_date";
String REQUEST_STATUS = "request_status";
}
}