     |> Preload.categories(options)
   end
 
+  @doc """
+  Return Categories.
+
+  Fetch options:
+
+    * preview -  return staff preview or publicly published list of editorials?
+    * before -   pagination cursor
+    * per_page - how many per page.
+  """
+  @spec editorials(options) :: [Editorial.t]
   def editorials(%{preview: false} = options) do
     Editorial
     |> where([e], not is_nil(e.published_position))

  @doc """
  Find a single category by slug or id

  Loads promotionals if `promotionals` option is set to true - default false.
  Skips images only if `image` option is false - default true.
  """
  @spec category(options) :: Category.t
  def category(%{id_or_slug: slug} = options) when is_binary(slug) do

  end

  @doc """
  Return C (filtered by other options)ategories.

  Fetch options:

    * ids -          fetch by ids - if not present all categories returned (filtered by other options).
    * inactive -     include inactive category
    * meta -         include meta categories
    * primary -      only return primary categories
  """
  @spec categories(options) :: [Category.t]
  def categories(%{ids: ids} = options) do
