export function mergeContentWithTranslation(defaultContent: any, translatedContent: any): any {
  if (!translatedContent) {
    return defaultContent;
  }
  
  if (Array.isArray(translatedContent) && translatedContent.length === 0) {
    return defaultContent;
  }
  
  if (typeof defaultContent === 'object' && defaultContent !== null &&
      typeof translatedContent === 'object' && translatedContent !== null) {
      
    if (Array.isArray(defaultContent)) {
      if (Array.isArray(translatedContent)) {
        return defaultContent.map((item, index) => 
          mergeContentWithTranslation(item, translatedContent[index] || {})
        );
      }
      return defaultContent;
    }

    const merged = { ...defaultContent };
    for (const key in translatedContent) {
      if (translatedContent.hasOwnProperty(key)) {
        merged[key] = mergeContentWithTranslation(defaultContent[key], translatedContent[key]);
      }
    }
    return merged;
  }
  
  return translatedContent ?? defaultContent;
}
