whereOr function

Creates a filter for OR condition searches.

filters: A list of lists of CoffeeQueryFilters. Each list represents a group of filters that should be OR'd together.

Returns a CoffeeQueryFilter configured for OR condition searches.

Usage Example

var filter1 = where('name', WhereOperator.equal, 'Espresso');
var filter2 = where('age', WhereOperator.greater, 18);
var filter3 = whereContains('name', 'Latte');
var filter4 = whereNotIn('id', [4, 5, 6]);

var orFilter = whereOr([
  [filter1, filter2],
  [filter3, filter4]
]);

print('OR Filter: ${orFilter.expression}, Type: ${orFilter.type}');

Implementation

CoffeeQueryFilter whereOr(List<List<CoffeeQueryFilter>> filters) {
  const operator = '@or@';
  final expression = filters.map((filter) =>
      filter.map((value) => value.expression.replaceAll(',', "@:@")).join('@:@')
  ).join(operator);
  return CoffeeQueryFilter(
    expression: expression,
    type: 'filter',
  );
}