find method

Future<List<Map<String, dynamic>>> find({
  1. required String column,
  2. required dynamic value,
})

Busca registros que coincidem com um critério em uma coluna específica. Retorna uma List<Map<String, dynamic>>. Caso não encontre nada, retorna uma lista vazia.

Implementation

Future<List<Map<String, dynamic>>> find({
  required String column,
  required dynamic value,
}) async {
  // 1. Obtém todos os registros da aba (utiliza o cache/processamento do findAll)
  final allData = await findAll();

  if (allData.isEmpty) return [];

  // 2. Filtra os dados onde o valor da coluna corresponde ao critério
  // A comparação é feita convertendo para String e ignorando maiúsculas/minúsculas
  final List<Map<String, dynamic>> results = allData.where((row) {
    final cellValue = row[column]?.toString().toLowerCase() ?? "";
    final searchValue = value.toString().toLowerCase();
    return cellValue == searchValue;
  }).toList();

  return results;
}