<?php
require_once 'conexao.php';

// Define o caminho absoluto para a pasta raiz dos currículos.
// Verifique se o caminho está 100% correto.
const CAMINHO_CURRICULOS = '/home/selflixvagas/public_html/uploads/curriculos/';

// Define o caminho absoluto da raiz do seu site (public_html).
const CAMINHO_RAIZ_DO_SITE = '/home/selflixvagas/public_html/';

if (!$pdo) {
    die("Erro: Não foi possível conectar ao banco de dados.");
}

echo "Iniciando a sincronização entre arquivos e banco de dados...\n\n";

try {
    $arquivos_sincronizados = 0;

    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator(CAMINHO_CURRICULOS, RecursiveDirectoryIterator::SKIP_DOTS)
    );

    foreach ($iterator as $item) {
        if ($item->isFile()) {
            $extensao = strtolower($item->getExtension());
            if (in_array($extensao, ['pdf', 'doc', 'docx'])) {
                // Constrói o caminho relativo completo a partir da raiz do site.
                // Esta é a parte crucial corrigida.
                $caminho_completo = $item->getPathname();
                $caminho_relativo = str_replace(CAMINHO_RAIZ_DO_SITE, '', $caminho_completo);

                // Extrai o ID do usuário do nome da pasta ou do nome do arquivo
                $id_encontrado = 0;
                $path = $item->getPathname();

                // Tenta extrair o ID da pasta (ex: .../curriculos/1234/...)
                preg_match('/\/(\d+)\//', $path, $matches);
                if (isset($matches[1])) {
                    $id_encontrado = $matches[1];
                } 
                
                // Se não encontrou na pasta, tenta extrair do nome do arquivo (ex: ...curriculo_1234_...)
                if (!$id_encontrado) {
                    preg_match('/_(\d+)_/', basename($path), $matches);
                    if (isset($matches[1])) {
                        $id_encontrado = $matches[1];
                    }
                }
                
                if ($id_encontrado) {
                    // Atualiza o registro do candidato com o caminho correto do arquivo.
                    $stmt_update = $pdo->prepare("UPDATE Candidatos SET curriculo = ? WHERE id = ?");
                    $stmt_update->execute([$caminho_relativo, $id_encontrado]);
                    
                    if ($stmt_update->rowCount() > 0) {
                        $arquivos_sincronizados++;
                        echo "ID {$id_encontrado}: Currículo atualizado com o caminho: {$caminho_relativo}\n";
                    }
                }
            }
        }
    }

    echo "\nProcesso de sincronização concluído!\n";
    echo "Total de registros de currículos corrigidos no banco de dados: {$arquivos_sincronizados}.\n";

} catch (PDOException $e) {
    die("Erro ao sincronizar dados: " . $e->getMessage());
}