<?php
// processar_editar_anuncio_gratuito.php
ob_start();
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

// Debug para segurança
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once 'conexao.php';
require_once 'env.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    die("Erro: Método inválido.");
}

$id_anuncio_edit = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
$id_empresa_sessao = $_SESSION['id'] ?? null;
$role_sessao = $_SESSION['role'] ?? '';

if (!$id_anuncio_edit || !$id_empresa_sessao) {
    die("Erro: Sessão ou ID inválidos.");
}

// Validação CSRF
$csrf_post = $_POST['csrf_token'] ?? '';
$csrf_session = $_SESSION['csrf_token_gratuito_edit'] ?? '';
if (empty($csrf_post) || !hash_equals($csrf_session, $csrf_post)) {
    die("Erro: Token de segurança inválido.");
}

// Coleta de Dados
$dados = [
    'titulo'      => trim($_POST['titulo_vaga'] ?? ''),
    'email'       => trim($_POST['email_para_curriculo'] ?? ''),
    'descricao'   => trim($_POST['descricao_vaga'] ?? ''),
    'cidade'      => trim($_POST['cidade_vaga'] ?? ''),
    'estado'      => trim($_POST['estado'] ?? ''),
    'segmento'    => trim($_POST['segmento_vaga'] ?? ''),
    'tipo'        => trim($_POST['tipo_vaga'] ?? ''),
    'modelo'      => trim($_POST['modelo_contratacao'] ?? ''),
    'requisitos'  => trim($_POST['requisitos_contratacao'] ?? ''),
    'whatsapp'    => trim($_POST['celular'] ?? '')
];

// Lógica de Salário
$salario_option = $_POST['salario_option'] ?? 'a_combinar';
$salario_input  = $_POST['salario_input'] ?? '0,00';
$salario_db = 0.00;
$a_combinar = ($salario_option === 'a_combinar') ? 1 : 0;

if (!$a_combinar) {
    $valor = str_replace(['R$', ' ', '.'], '', $salario_input);
    $valor = str_replace(',', '.', $valor);
    $salario_db = (float)$valor;
}

// Parâmetros mapeados para a estrutura real do seu SQL
$params = [
    $dados['titulo'],      // 1
    $dados['email'],       // 2
    $dados['descricao'],   // 3
    $dados['cidade'],      // 4
    $dados['estado'],      // 5
    $dados['segmento'],    // 6
    $dados['tipo'],        // 7
    $dados['modelo'],      // 8
    $dados['requisitos'],  // 9
    $salario_db,           // 10
    $a_combinar,           // 11
    $dados['whatsapp'],    // 12 -> Vai para celular_contato
    $id_anuncio_edit,      // 13
    $id_empresa_sessao,    // 14
    $role_sessao           // 15
];

try {
    $pdo->beginTransaction();

    // SQL AJUSTADO PARA AS COLUNAS REAIS DO SEU .SQL:
    // celular_contato (em vez de celular ou celular_vaga)
    // removido data_atualizacao
    $sql = "UPDATE anuncio_gratuito SET 
                titulo_vaga = ?, 
                email_para_curriculo = ?, 
                descricao_vaga = ?, 
                cidade_vaga = ?, 
                estado = ?, 
                segmento_vaga = ?, 
                tipo_vaga = ?, 
                modelo_contratacao = ?, 
                requisitos_contratacao = ?, 
                salario = ?, 
                salario_a_combinar = ?, 
                celular_contato = ?
            WHERE id = ? 
            AND (id_empresa = ? OR ? IN ('Administrador', 'Administradores'))";

    $stmt = $pdo->prepare($sql);
    $stmt->execute($params);
    $pdo->commit();

    unset($_SESSION['form_data_gratuito_edit']);
    $_SESSION['mensagem_geral'] = "Anúncio atualizado com sucesso!";
    $_SESSION['tipo_mensagem_geral'] = "success";
    
    header("Location: listar-anuncios-gratuito.php");
    ob_end_flush();
    exit();

} catch (PDOException $e) {
    if ($pdo->inTransaction()) $pdo->rollBack();
    
    echo "<div style='background: #fee; border: 2px solid #f00; padding: 20px; font-family: sans-serif; margin: 20px;'>";
    echo "<h3 style='color: #a00;'>❌ Erro Crítico de Banco de Dados</h3>";
    echo "<p><strong>O erro retornado foi:</strong> " . $e->getMessage() . "</p>";
    echo "<p><strong>Sugestão:</strong> Verifique se o nome da coluna de contato é 'celular_contato'.</p>";
    echo "<h4>Dados que tentou salvar:</h4><pre>";
    print_r($dados);
    echo "</pre>";
    echo "<a href='editar-anuncio-gratuito.php?id=$id_anuncio_edit' style='background: #a00; color: #fff; padding: 10px 20px; text-decoration: none; border-radius: 5px;'>Voltar e tentar novamente</a>";
    echo "</div>";
    exit();
}