package models.origo.core.navigation;
import models.origo.core.Alias;
import models.origo.core.BasicPage;
import origo.helpers.SettingsHelper;
import play.data.validation.Required;
import play.data.validation.Unique;
import play.db.jpa.Model;
import javax.persistence.Entity;
import java.util.Collection;
import java.util.Date;
@Entity
public class PageIdNavigation extends Model {
@Required
@Unique
public String identifier;
@Required
public String pageId;
public String getLink() {
Collection<Alias> aliases = Alias.findWithPageId(pageId);
if (aliases == null || aliases.isEmpty()) {
if (SettingsHelper.Core.getStartPage().equals(pageId)) {
return SettingsHelper.Core.getBaseUrl();
}
return SettingsHelper.Core.getBaseUrl() + BasicPage.findCurrentVersion(pageId, new Date()).getNodeId();
} else {
Alias alias = aliases.iterator().next();
return SettingsHelper.Core.getBaseUrl() + alias.path;
}
}
public static PageIdNavigation findWithIdentifier(String identifier) {
return PageIdNavigation.find("select distinct n from PageIdNavigation n where identifier=:identifier").
bind("identifier", identifier).
first();
}
}