<?php
/**
 * Script de despliegue automático para La Cabaña
 * Sube todos los archivos del proyecto al servidor FTP
 */

// Configuración FTP (desde .vscode/sftp.json)
$ftp_host = '108.167.172.137';
$ftp_port = 21;
$ftp_user = 'cursor@imbroker.com.mx';
$ftp_pass = 'Amaril10.';
$ftp_remote_path = '/public_html/lacabana/';

// Directorio local
$local_path = __DIR__;

// Archivos y directorios a ignorar
$ignore = [
    '.',
    '..',
    '.DS_Store',
    '.git',
    '.vscode',
    'deploy.php',
    'README.md',
    'README.txt'
];

echo "🚀 Iniciando despliegue de La Cabaña...\n\n";

// Conectar al servidor FTP
$conn_id = ftp_connect($ftp_host, $ftp_port);
if (!$conn_id) {
    die("❌ Error: No se pudo conectar al servidor FTP\n");
}

echo "✅ Conectado al servidor FTP\n";

// Iniciar sesión
if (!ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    die("❌ Error: No se pudo autenticar en el servidor FTP\n");
}

echo "✅ Autenticación exitosa\n";

// Habilitar modo pasivo
ftp_pasv($conn_id, true);

// Crear directorio remoto si no existe
$remote_dirs = ['', 'css', 'js', 'gallery_lacabana'];
foreach ($remote_dirs as $dir) {
    $remote_dir = $ftp_remote_path . $dir;
    @ftp_mkdir($conn_id, $remote_dir);
}

/**
 * Función recursiva para subir archivos
 */
function uploadDirectory($ftp_conn, $local_dir, $remote_dir, $ignore_list) {
    $files = scandir($local_dir);
    $uploaded = 0;
    $errors = 0;
    
    foreach ($files as $file) {
        if (in_array($file, $ignore_list)) {
            continue;
        }
        
        $local_file = $local_dir . '/' . $file;
        $remote_file = $remote_dir . '/' . $file;
        
        if (is_dir($local_file)) {
            // Crear directorio remoto
            @ftp_mkdir($ftp_conn, $remote_file);
            echo "📁 Creando directorio: $remote_file\n";
            
            // Subir contenido del directorio recursivamente
            $result = uploadDirectory($ftp_conn, $local_file, $remote_file, $ignore_list);
            $uploaded += $result['uploaded'];
            $errors += $result['errors'];
        } else {
            // Subir archivo
            echo "⬆️  Subiendo: $file... ";
            if (ftp_put($ftp_conn, $remote_file, $local_file, FTP_BINARY)) {
                echo "✅\n";
                $uploaded++;
            } else {
                echo "❌ Error\n";
                $errors++;
            }
        }
    }
    
    return ['uploaded' => $uploaded, 'errors' => $errors];
}

// Subir archivos
echo "\n📤 Subiendo archivos...\n\n";
$result = uploadDirectory($conn_id, $local_path, $ftp_remote_path, $ignore);

// Cerrar conexión
ftp_close($conn_id);

// Resumen
echo "\n" . str_repeat("=", 50) . "\n";
echo "📊 RESUMEN DEL DESPLIEGUE\n";
echo str_repeat("=", 50) . "\n";
echo "✅ Archivos subidos: {$result['uploaded']}\n";
if ($result['errors'] > 0) {
    echo "❌ Errores: {$result['errors']}\n";
} else {
    echo "✅ Sin errores\n";
}
echo "\n🎉 Despliegue completado!\n";
echo "🌐 Visita: https://zeguros.com.mx/lacabana/\n";

?>
