Attached.Originals.Scopes (Attached v0.1.0)

Copy Markdown View Source

Composable query scopes for Attached.Originals.Original.

Each scope takes a query (or the Original schema) and returns a refined query. Designed for the :query hook in Attached.Originals.list/1 and Attached.Originals.count/1:

Attached.Originals.list(
  query: &Attached.Originals.Scopes.orphans(&1, "users", "avatar_attached_original_id")
)

Summary

Functions

Restricts a query to originals belonging to a specific (owner_table, owner_field) group.

Restricts a query to orphaned originals within a single (owner_table, owner_field) group.

Functions

by_owner(query, owner_table, owner_field)

Restricts a query to originals belonging to a specific (owner_table, owner_field) group.

orphans(query, owner_table, owner_field)

Restricts a query to orphaned originals within a single (owner_table, owner_field) group.

An original is orphaned when no row in owner_table references it via the owner_field column. The group is required because SQL identifiers (table/column names) can't be bound per row — iterate Attached.Originals.list_owner_groups/0 to cover every group.