where method

QueryBuilder where(
  1. String field, {
  2. dynamic isEqualTo,
  3. dynamic isNotEqualTo,
  4. dynamic isGreaterThan,
  5. dynamic isGreaterThanOrEqualTo,
  6. dynamic isLessThan,
  7. dynamic isLessThanOrEqualTo,
  8. String? startsWith,
  9. String? endsWith,
  10. String? contains,
  11. dynamic arrayContains,
  12. List? arrayContainsAny,
  13. List? whereIn,
  14. List? whereNotIn,
  15. bool? isNull,
})

Adds a filter condition to the query

Implementation

QueryBuilder where(
  String field, {
  dynamic isEqualTo,
  dynamic isNotEqualTo,
  dynamic isGreaterThan,
  dynamic isGreaterThanOrEqualTo,
  dynamic isLessThan,
  dynamic isLessThanOrEqualTo,
  String? startsWith,
  String? endsWith,
  String? contains,
  dynamic arrayContains,
  List<dynamic>? arrayContainsAny,
  List<dynamic>? whereIn,
  List<dynamic>? whereNotIn,
  bool? isNull,
}) {
  // Add filter based on which parameter is provided
  if (isEqualTo != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isEqualTo,
      value: isEqualTo,
    ));
  }
  if (isNotEqualTo != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isNotEqualTo,
      value: isNotEqualTo,
    ));
  }
  if (isGreaterThan != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isGreaterThan,
      value: isGreaterThan,
    ));
  }
  if (isGreaterThanOrEqualTo != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isGreaterThanOrEqualTo,
      value: isGreaterThanOrEqualTo,
    ));
  }
  if (isLessThan != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isLessThan,
      value: isLessThan,
    ));
  }
  if (isLessThanOrEqualTo != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isLessThanOrEqualTo,
      value: isLessThanOrEqualTo,
    ));
  }
  if (startsWith != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.startsWith,
      value: startsWith,
    ));
  }
  if (endsWith != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.endsWith,
      value: endsWith,
    ));
  }
  if (contains != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.contains,
      value: contains,
    ));
  }
  if (arrayContains != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.arrayContains,
      value: arrayContains,
    ));
  }
  if (arrayContainsAny != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.arrayContainsAny,
      value: arrayContainsAny,
    ));
  }
  if (whereIn != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.whereIn,
      value: whereIn,
    ));
  }
  if (whereNotIn != null) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.whereNotIn,
      value: whereNotIn,
    ));
  }
  if (isNull == true) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isNull,
      value: null,
    ));
  }
  if (isNull == false) {
    _filters.add(QueryFilter(
      field: field,
      operator: QueryOperator.isNotNull,
      value: null,
    ));
  }

  return this;
}