EctoOrderable.Order behaviour (ecto_orderable v0.1.0)
defmodule TaskOrder do
use EctoOrderable.Order,
repo: MyApp.Repo,
order_field: :order_index,
order_increment: 1000.0
def set_query(organization, opts) do
...
end
def set_query_for_item(task, opts) do
...
end
def item_query(task, opts) do
...
end
end
TaskOrder.set(organization) |> EctoOrderable.first_order()
TaskOrder.set(organization) |> EctoOrderable.last_order()
TaskOrder.set(organization) |> EctoOrderable.next_order()
TaskOrder.item(task) |> EctoOrderable.move(:up)
TaskOrder.item(task) |> EctoOrderable.current_order()
TaskOrder.item(task) |> EctoOrderable.insert(:up)
TaskOrder.item(task) |> EctoOrderable.reposition(1000.0)
TaskOrder.item(task) |> EctoOrderable.reposition(1000.0)
Summary
Callbacks
Given a struct that represents an item in an OrderableSet, must return a query that filters for this specific item in the set.
Given a struct that represents a container for the set of all items in an OrderableSet, must return a query that filters for all the items in the set.
Given a struct that represents an item in an OrderableSet, must return a query that filters for all the items in the set.
Types
Callbacks
@callback item_query( struct(), Keyword.t() ) :: Ecto.Query.t()
Given a struct that represents an item in an OrderableSet, must return a query that filters for this specific item in the set.
@callback set_query(struct() | atom(), Keyword.t()) :: Ecto.Query.t()
Given a struct that represents a container for the set of all items in an OrderableSet, must return a query that filters for all the items in the set.
@callback set_query_for_item( struct(), Keyword.t() ) :: Ecto.Query.t()
Given a struct that represents an item in an OrderableSet, must return a query that filters for all the items in the set.