deriveRepeatableBasePatternFromConcrete method
From a concrete field name, derive the base path (with prior fixed indices kept)
Example: "property_details0.data.floor_details2.floor_name" -> "property_details0.data.floor_details"
Implementation
String? deriveRepeatableBasePatternFromConcrete(String fieldName) {
if (fieldName.isEmpty) return null;
final parts = fieldName.split('.');
int lastBracketSegmentIndex = -1;
String lastBracketKey = '';
for (int idx = 0; idx < parts.length; idx++) {
final segment = parts[idx];
if (RegExp(r'\[\d+\]').hasMatch(segment)) {
lastBracketSegmentIndex = idx;
lastBracketKey = segment.split('[')[0];
}
}
if (lastBracketSegmentIndex == -1) {
// Fallback to first token before any '['
return fieldName.split('[')[0];
}
final leading = parts.sublist(0,
lastBracketSegmentIndex); // keep as-is, includes fixed indices like key[0]
final result = [...leading, lastBracketKey].join('.');
debugPrint(
'deriveRepeatableBasePatternFromConcrete: $fieldName -> $result');
return result;
}