#!/bin/bash

# Script to fix AdminLayoutProcessor usage across all admin controllers
# Replaces primitive obsession with proper Value Object pattern

files=(
    "src/Application/Admin/Content/ImageManagerController.php"
    "src/Application/Admin/Content/ImageSlotsController.php"
    "src/Application/Admin/Analytics/AnalyticsController.php"
    "src/Application/Admin/System/HealthController.php"
    "src/Application/Admin/System/PhpInfoController.php"
    "src/Application/Admin/System/EnvironmentController.php"
    "src/Application/Admin/System/PerformanceController.php"
    "src/Application/Admin/Development/WafTestController.php"
    "src/Application/Admin/Development/DesignSystemController.php"
    "src/Application/Admin/Development/StyleguideController.php"
    "src/Application/Admin/Development/RoutesController.php"
    "src/Application/Admin/Infrastructure/ServicesController.php"
    "src/Application/Admin/Infrastructure/CacheMetricsController.php"
    "src/Application/Admin/Infrastructure/LogViewerController.php"
    "src/Application/Admin/Infrastructure/RedisController.php"
)

for file in "${files[@]}"; do
    if [ -f "$file" ]; then
        echo "Fixing $file..."

        # Replace the method call pattern
        sed -i 's/\$layoutData = \$this->layoutProcessor->processAdminLayout(\$data);/\$finalData = \$this->layoutProcessor->processLayoutFromArray(\$data);/g' "$file"

        # Replace the ViewResult data pattern
        sed -i 's/data: array_merge(\$layoutData, \$data)/data: \$finalData/g' "$file"

        echo "Fixed $file"
    else
        echo "File not found: $file"
    fi
done

echo "All files processed!"