# SPDX-FileCopyrightText: 2023 ash_sqlite contributors <https://github.com/ash-project/ash_sqlite/graphs.contributors>
#
# SPDX-License-Identifier: MIT
defmodule AshSqlite.ManualRelationship do
@moduledoc "A behavior for sqlite-specific manual relationship functionality"
@callback ash_sqlite_join(
source_query :: Ecto.Query.t(),
opts :: Keyword.t(),
current_binding :: term,
destination_binding :: term,
type :: :inner | :left,
destination_query :: Ecto.Query.t()
) :: {:ok, Ecto.Query.t()} | {:error, term}
@callback ash_sqlite_subquery(
opts :: Keyword.t(),
current_binding :: term,
destination_binding :: term,
destination_query :: Ecto.Query.t()
) :: {:ok, Ecto.Query.t()} | {:error, term}
defmacro __using__(_) do
quote do
@behaviour AshSqlite.ManualRelationship
end
end
end