deriveRepeatableBasePatternFromConcrete method

String? deriveRepeatableBasePatternFromConcrete(
  1. String fieldName
)

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