when method

QueryBuilderInterface<T> when(
  1. bool condition,
  2. QueryBuilderInterface<T> currentQuery,
  3. QueryBuilderInterface<T> scopeFunction(
    1. QueryBuilderInterface<T>
    )
)

Conditionally apply a scope based on a condition

Implementation

QueryBuilderInterface<T> when(
  bool condition,
  QueryBuilderInterface<T> currentQuery,
  QueryBuilderInterface<T> Function(QueryBuilderInterface<T>) scopeFunction,
) {
  if (condition) {
    return scopeFunction(currentQuery);
  }
  return currentQuery;
}