package com.dozuki.ifixit.model.guide;
import com.dozuki.ifixit.model.Image;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
public class GuideInfo implements Serializable {
private static final long serialVersionUID = 3L;
@SerializedName("guideid")
public int mGuideid;
@SerializedName("revisionid")
public int mRevisionid;
@SerializedName("modified_date")
public double mModifiedDate;
@SerializedName("prereq_modified_date")
public double mPrereqModifiedDate;
@SerializedName("type")
public String mType;
@SerializedName("category")
public String mTopic;
@SerializedName("subject")
public String mSubject;
@SerializedName("title")
public String mTitle;
@SerializedName("public")
public boolean mPublic;
@SerializedName("flags")
public String[] mFlags;
@SerializedName("image")
public Image mImage;
@SerializedName("url")
public String mUrl;
@SerializedName("username")
public String mAuthorName;
@SerializedName("userid")
public int mUserid;
@SerializedName("locale")
public String mLocale;
public transient boolean mEditMode = false;
public transient boolean mIsPublishing = false;
public GuideInfo(int guideid) {
mGuideid = guideid;
}
public boolean hasSubject() {
List<String> hasSubject = Arrays.asList("repair", "replacement", "installation", "disassembly");
//List<String> noSubject = Arrays.asList("technique", "maintenance", "teardown");
return mSubject != null && !mSubject.equals("") && hasSubject.contains(mType.toLowerCase());
}
public boolean hasImage() {
return mImage != null;
}
public String getImagePath(String size) {
String path = "";
if (mImage != null) {
path = mImage.getPath(size);
}
return path;
}
/**
* Returns the guide's modified date including prereq changes.
*/
public double getAbsoluteModifiedDate() {
return Math.max(mModifiedDate, mPrereqModifiedDate);
}
public String toString() {
return mGuideid + ", " + mSubject + ", " + mImage + ", " + mTitle +
", " + mType + ", " + Arrays.toString(mFlags);
}
}