advancedSearch<T> static method

List<T> advancedSearch<T>({
  1. required List<T> items,
  2. required String searchTerm,
  3. required List<String> getSearchableFields(
    1. T item
    ),
})

Função de busca avançada com normalização de texto

Implementation

static List<T> advancedSearch<T>({
  required List<T> items,
  required String searchTerm,
  required List<String> Function(T item) getSearchableFields,
}) {
  if (searchTerm.isEmpty) {
    return items;
  }

  final normalizedSearchTerm = normalizeText(searchTerm);

  return items.where((item) {
    final searchableFields = getSearchableFields(item);

    return searchableFields.any(
      (field) => normalizeText(field).contains(normalizedSearchTerm),
    );
  }).toList();
}