deriveRepeatableArrayPath method

String? deriveRepeatableArrayPath(
  1. String fieldName
)

Derive the nested array path for a repeatable field name Example: "property_details0.data.floor_details{index}.floor_name" -> "property_details.0.data.floor_details"

Implementation

String? deriveRepeatableArrayPath(String fieldName) {
  if (fieldName.isEmpty) return null;

  final parts = fieldName.split('.');
  final pathParts = <String>[];

  for (final part in parts) {
    // If we reached the segment that contains the repeatable marker [{index}]
    if (part.contains('[{index}]')) {
      final key = part.split('[')[0];
      if (key.isNotEmpty) pathParts.add(key);
      break;
    }

    // Handle concrete array indices like key[0]
    if (part.contains('[')) {
      final bracketIdx = part.indexOf('[');
      final key = part.substring(0, bracketIdx);
      final idx = part.substring(
          bracketIdx + 1, part.length - 1); // number between [ ]
      if (key.isNotEmpty) pathParts.add(key);
      if (idx.isNotEmpty) pathParts.add(idx);
    } else {
      pathParts.add(part);
    }
  }

  if (pathParts.isEmpty) return null;
  return pathParts.join('.');
}