base/src/sqwl/cms/datamodel.scala
changeset 4 1a1347e8c5be
child 7 50a354e5bda4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/base/src/sqwl/cms/datamodel.scala	Thu Nov 29 12:20:20 2018 +0100
@@ -0,0 +1,33 @@
+package sqwl.cms
+
+import java.nio.file.Path
+
+trait Named {
+  def name: String
+}
+
+trait Navigable {
+  def pathSegment: String
+}
+
+trait iCategory extends Named with Navigable
+
+trait iTag extends Named with Navigable
+
+trait iArticle extends Navigable {
+  def title: String
+  def htmlContent: String
+  def category: Option[iCategory]
+  def tags: Seq[iTag]
+  def assets: Path
+}
+
+trait iContent {
+  def articlesByTag(t: iTag): Seq[iArticle]
+  def articlesByCategory(c: iCategory): Seq[iArticle]
+  def tags: Seq[iTag]
+  def categories: Seq[iCategory]
+  def articleByPath(path: String): Option[iArticle]
+  def categoryByPath(path: String): Option[iCategory]
+  def tagByPath(path: String): Option[iTag]
+}