ash_cubdb/lib/ash_cub_db/query.ex

36 lines
1 KiB
Elixir

defmodule AshCubDB.Query do
@moduledoc """
A struct which holds information about a resource query as it is being built.
"""
alias Ash.{Domain, Filter, Resource}
defstruct aggregates: [],
domain: nil,
calculations: [],
distinct: nil,
distinct_sort: nil,
filter: nil,
limit: :infinity,
offset: 0,
relationships: %{},
resource: nil,
sort: nil,
tenant: nil
@type t :: %__MODULE__{
aggregates: [Resource.Aggregate.t()],
domain: Domain.t(),
calculations: [Resource.Calculation.t()],
distinct: Ash.Sort.t(),
distinct_sort: Ash.Sort.t(),
filter: nil | Filter.t(),
limit: :infinity | non_neg_integer(),
offset: non_neg_integer(),
relationships: %{optional(atom) => Ash.Resource.Relationships.relationship()},
resource: Ash.Resource.t(),
sort: nil | Ash.Sort.t(),
tenant: any
}
end