#!/usr/bin/env php
<?php
/**
 * Add Missing Titles to All Course Pages
 */

function generateTitleFromFilename($filename) {
    $name = str_replace('.php', '', $filename);
    $name = str_replace('-', ' ', $name);
    
    // Common replacements
    $replacements = [
        'training' => 'Training',
        'certification' => 'Certification', 
        'course' => 'Course',
        'class' => 'Class',
        'csm' => 'CSM',
        'csp' => 'CSP',
        'csd' => 'CSD',
        'cspo' => 'CSPO',
        'itil' => 'ITIL',
        'pmp' => 'PMP',
        'capm' => 'CAPM',
        'safe' => 'SAFe',
        'aws' => 'AWS',
        'azure' => 'Azure',
        'gcp' => 'GCP',
        'docker' => 'Docker',
        'kubernetes' => 'Kubernetes',
        'devops' => 'DevOps',
        'agile' => 'Agile',
        'scrum' => 'Scrum',
        'kanban' => 'Kanban',
    ];
    
    foreach ($replacements as $find => $replace) {
        $name = str_replace($find, $replace, $name);
    }
    
    return ucwords($name);
}

echo "=== ADDING MISSING TITLES ===\n\n";

$fixed = 0;
$skipped = 0;
$failed = 0;

// Process all directories
$directories = glob(__DIR__ . '/*', GLOB_ONLYDIR);

foreach ($directories as $dir) {
    $dirName = basename($dir);
    
    // Skip non-course directories
    if (in_array($dirName, ['.backup', '.git', 'assets', 'includes', 'admin', '.windsurf'])) {
        continue;
    }
    
    $phpFiles = glob($dir . '/*.php');
    
    foreach ($phpFiles as $file) {
        $filename = basename($file);
        
        // Skip index and system files
        if ($filename === 'index.php' || !str_contains($filename, '-')) {
            continue;
        }
        
        $content = file_get_contents($file);
        
        // Check if already has title with value
        if (preg_match("/'title'\s*=>\s*'([^']{5,})'/", $content)) {
            $skipped++;
            continue;
        }
        
        // Generate title
        $title = generateTitleFromFilename($filename);
        
        echo "[$dirName/$filename] Adding title: '$title' ... ";
        
        // Add title after the array opening
        if (preg_match("/'category' => '([^']+)'/", $content, $matches)) {
            $category = $matches[0];
            $replacement = "'title' => '" . $title . "',\n  " . $category;
            $newContent = str_replace($category, $replacement, $content);
            
            if (file_put_contents($file, $newContent) !== false) {
                echo "OK\n";
                $fixed++;
            } else {
                echo "FAILED\n";
                $failed++;
            }
        } else {
            echo "NO CATEGORY FOUND\n";
            $failed++;
        }
    }
}

echo "\n=== COMPLETE ===\n";
echo "Fixed: $fixed\n";
echo "Skipped: $skipped\n";
echo "Failed: $failed\n";
