Race-safe tenant tag normalization and lookup.
Summary
Functions
Fetches tenant tags strictly in first-occurrence input order.
Finds or atomically creates a normalized tenant tag.
Lists tenant tags ordered by name and ID.
Searches tenant tag names literally with a deterministic 20-row limit.
Functions
@spec fetch_many(BlogEngine.Context.t(), [term()]) :: {:ok, [BlogEngine.Schema.Tag.t()]} | {:error, BlogEngine.Error.t()}
Fetches tenant tags strictly in first-occurrence input order.
@spec find_or_create(BlogEngine.Context.t(), String.t()) :: {:ok, BlogEngine.Schema.Tag.t()} | {:error, BlogEngine.Error.t() | Ecto.Changeset.t()}
Finds or atomically creates a normalized tenant tag.
@spec list(BlogEngine.Context.t()) :: [BlogEngine.Schema.Tag.t()]
Lists tenant tags ordered by name and ID.
@spec search(BlogEngine.Context.t(), String.t()) :: [BlogEngine.Schema.Tag.t()]
Searches tenant tag names literally with a deterministic 20-row limit.