buildSelectTableDescriptionMap function
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;
}