defmodule Ash.Resource.ManualRelationship do
@moduledoc """
A module to implement manual relationships.
"""
@type context :: %{
relationship: Ash.Resource.Relationships.relationship(),
query: Ash.Query.t(),
root_query: Ash.Query.t(),
actor: term,
tenant: term,
authorize?: term,
api: module
}
@callback load(
list(Ash.Resource.record()),
opts :: Keyword.t(),
context :: context()
) ::
{:ok, map} | {:error, term}
defmacro __using__(_) do
quote do
@behaviour Ash.Resource.ManualRelationship
end
end
end