buildSelectTableDescriptionMap function

Map<String, dynamic> buildSelectTableDescriptionMap(
  1. List rows,
  2. Map<String, dynamic> currentObj
)

Builds an id -> description map from related-table rows for a select_table field, honoring description_fields / separator / related_key attributes.

Implementation

Map<String, dynamic> buildSelectTableDescriptionMap(
  List<dynamic> rows,
  Map<String, dynamic> currentObj,
) {
  final String relatedKey = currentObj['related_key'] ?? '_id';
  final List<dynamic> descriptionFields =
      currentObj['description_fields'] ?? const ['name'];
  final String separator = currentObj['description_separator'] ?? ' ';
  final Map<String, dynamic> result = {};
  for (var row in rows) {
    final key = row[relatedKey]?.toString();
    if (key == null) {
      continue;
    }
    result[key] = descriptionFields
        .map((field) => row[field])
        .where((value) => value != null)
        .join(separator);
  }
  return result;
}