Current section
Files
Jump to
Current section
Files
lib/supabase/postgrest/query_builder/behaviour.ex
defmodule Supabase.PostgREST.QueryBuilder.Behaviour do
@moduledoc "Defines the interface for the QueryBuilder module"
alias Supabase.Fetcher.Request
@type options :: [count: :exact, returning: boolean | :representation]
@type insert_options :: [count: :exact, returning: boolean | :representation, on_conflict: any]
@callback select(Request.t(), list(String.t()) | String.t()) :: Request.t()
@callback select(Request.t(), list(String.t()) | String.t(), options) :: Request.t()
@callback insert(Request.t(), map) :: Request.t()
@callback insert(Request.t(), map, insert_options) :: Request.t()
@callback upsert(Request.t(), map) :: Request.t()
@callback upsert(Request.t(), map, insert_options) :: Request.t()
@callback delete(Request.t()) :: Request.t()
@callback delete(Request.t(), options) :: Request.t()
@callback update(Request.t(), map) :: Request.t()
@callback update(Request.t(), map, options) :: Request.t()
end