<?php
// processar_curriculo.php - ENDPOINT EXCLUSIVO PARA O UPLOAD DO MODAL

// Suprimir alertas de depreciação de ambiente que atrapalham o log
ini_set('display_errors', '0'); 
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);

if (session_status() == PHP_SESSION_NONE) { session_start(); }
require_once 'conexao.php';
require_once 'env.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header("Location: login.php");
    exit;
}

if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Candidatos') {
    header("Location: login.php");
    exit();
}

if (!isset($_POST['csrf_token']) || !isset($_SESSION['csrf_token']) || !hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) {
    die("Erro de segurança.");
}

$id_cand_form = (int)($_POST['id'] ?? 0);
if ($id_cand_form !== (int)$_SESSION['id']) {
    die("Acesso negado.");
}

try {
    if (isset($_FILES['curriculo']) && $_FILES['curriculo']['error'] === UPLOAD_ERR_OK) {
        $extensao = strtolower(pathinfo($_FILES['curriculo']['name'], PATHINFO_EXTENSION));
        
        // A regra é aceitar apenas PDF
        if ($extensao === 'pdf') {
            
            // Pasta de destino definida pela regra de negócio
            $upload_dir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/curriculos/atualizado/';
            
            if (!is_dir($upload_dir)) {
                if (!mkdir($upload_dir, 0777, true)) {
                    throw new Exception("Falha ao criar o diretório de arquivos no servidor.");
                }
            }
            
            $file_name = "curriculo_" . $id_cand_form . "_" . time() . ".pdf";
            $caminho_final = $upload_dir . $file_name;
            
            if (move_uploaded_file($_FILES['curriculo']['tmp_name'], $caminho_final)) {
                $caminho_banco = 'uploads/curriculos/atualizado/' . $file_name;
                
                $pdo->prepare("INSERT INTO CandidatoCurriculos (candidato_id, caminho_arquivo) VALUES (?, ?)")
                    ->execute([$id_cand_form, $caminho_banco]);
                
                $_SESSION['sucesso_edicao'] = true;
                header("Location: editar_cadastro.php");
                exit();
            } else {
                throw new Exception("Falha ao mover arquivo. Path: " . $caminho_final);
            }
        } else {
            throw new Exception("O sistema permite apenas arquivos no formato PDF.");
        }
    } else {
        throw new Exception("Falha no upload do arquivo. Tente novamente.");
    }
} catch (Exception $e) {
    $_SESSION['mensagem'] = $e->getMessage();
    $_SESSION['tipo_mensagem'] = "danger";
    header("Location: editar_cadastro.php");
    exit();
}