categorizeReleaseItems static method

Map<String, List<AppReleaseItem>> categorizeReleaseItems(
  1. List<AppReleaseItem> releaseItems, {
  2. bool byTags = false,
  3. List<String> forbiddenList = const ['emxi lecturas', 'libro digital', 'libro físico'],
})

Implementation

static Map<String, List<AppReleaseItem>> categorizeReleaseItems(List<AppReleaseItem> releaseItems, {
  bool byTags = false,
  List<String> forbiddenList = const ['emxi lecturas', 'libro digital', 'libro físico']
}) {
  final Map<String, List<AppReleaseItem>> categorizedItems = {};

  for (final item in releaseItems) {
    // Selecciona la lista de claves según el modo: tags o categorías
    final List<String> keys = byTags ? (item.tags ?? []) : (item.categories);
    for (final key in keys) {
      if (forbiddenList.contains(key.toLowerCase())) continue;
      categorizedItems.putIfAbsent(key, () => []);
      categorizedItems[key]!.add(item);
    }
  }

  return categorizedItems;
}