<?php
// processar_criar_anuncio_gratuito.php
ob_start();

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

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

$site_url = 'https://appselflix.gexcore.com.br'; 

$utils_path = __DIR__ . '/include/emails-anuncios/gratuito.php';
if (file_exists($utils_path)) {
    require_once $utils_path;
}

if (!function_exists('gerarSlugBase')) {
    function gerarSlugBase($string) {
        $slug = mb_strtolower($string, 'UTF-8');
        $slug = preg_replace('/[^a-z0-9]/', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $slug));
        $slug = preg_replace('/-+/', '-', $slug);
        return trim($slug, '-') ?: 'vaga';
    }
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id_empresa = $_SESSION['id'];
    $titulo     = trim($_POST['titulo_vaga'] ?? '');
    $email_cv   = filter_var(trim($_POST['email_para_curriculo'] ?? ''), FILTER_SANITIZE_EMAIL);
    $cidade     = trim($_POST['cidade_vaga'] ?? 'N/D');
    $estado     = trim($_POST['estado'] ?? 'N/D');
    $segmento   = trim($_POST['segmento_vaga'] ?? 'N/D');
    
    // --- CAPTURA BLINDADA DO WHATSAPP ---
    // Tenta capturar de qualquer nome possível vindo do formulário
    $whatsapp = $_POST['whatsapp_contato'] ?? $_POST['whatsapp_vaga'] ?? $_POST['telefone_vaga'] ?? 'N/D';

    // --- BUSCA DADOS DA EMPRESA (Para Fallback e E-mail) ---
    $stmt_emp = $pdo->prepare("SELECT nome_empresa, email, telefone_comercial, celular FROM Empresas WHERE id = ?");
    $stmt_emp->execute([$id_empresa]);
    $empresa = $stmt_emp->fetch(PDO::FETCH_ASSOC);

    // Se o whatsapp da vaga estiver vazio, usa o celular do cadastro da empresa
    if ($whatsapp === 'N/D' || empty($whatsapp)) {
        $whatsapp = !empty($empresa['celular']) ? $empresa['celular'] : $empresa['telefone_comercial'];
    }

    // --- RESTANTE DOS DADOS ---
    $tipo       = trim($_POST['tipo_vaga'] ?? 'N/D');
    $modelo     = trim($_POST['modelo_contratacao'] ?? 'N/D');
    $pcd        = trim($_POST['PCD'] ?? 'Não');
    $descricao  = trim($_POST['descricao_vaga'] ?? 'N/D');
    $requisitos = trim($_POST['requisitos_contratacao'] ?? 'N/D');

    // Salário
    $salario_input = $_POST['salario_input'] ?? '';
    $salario_option = $_POST['salario_option'] ?? 'a_combinar';
    $salario_para_db = 0.00;
    $salario_a_combinar = 1;
    if ($salario_option === 'outro' && !empty($salario_input)) {
        $val = str_replace(['R$', ' '], '', $salario_input);
        if (strpos($val, ',') !== false) {
            $val = str_replace('.', '', $val); 
            $val = str_replace(',', '.', $val); 
        }
        $salario_para_db = (float)$val;
        $salario_a_combinar = 0;
    }

    try {
        $pdo->beginTransaction(); 

        // Inserção na tabela anuncio_gratuito usando a coluna celular_contato
        $sql = "INSERT INTO anuncio_gratuito (
                    titulo_vaga, email_para_curriculo, cidade_vaga, estado, 
                    segmento_vaga, tipo_vaga, modelo_contratacao, PCD, 
                    descricao_vaga, requisitos_contratacao, salario, salario_a_combinar,
                    celular_contato, id_empresa, data_criacao, status
                ) VALUES (
                    :titulo, :email, :cidade, :estado, 
                    :segmento, :tipo, :modelo, :pcd, 
                    :descricao, :requisitos, :salario, :combinar,
                    :whatsapp, :id_emp, NOW(), 'ativo'
                )";

        $stmt = $pdo->prepare($sql);
        $stmt->execute([
            ':titulo'     => $titulo,
            ':email'      => $email_cv,
            ':cidade'     => $cidade,
            ':estado'     => $estado,
            ':segmento'   => $segmento,
            ':tipo'       => $tipo,
            ':modelo'     => $modelo,
            ':pcd'        => $pcd,
            ':descricao'  => $descricao,
            ':requisitos' => $requisitos,
            ':salario'    => $salario_para_db,
            ':combinar'   => $salario_a_combinar,
            ':whatsapp'   => $whatsapp, 
            ':id_emp'     => $id_empresa
        ]);

        $id_novo = $pdo->lastInsertId();
        $slug = gerarSlugBase($titulo) . "-" . $id_novo;
        $pdo->prepare("UPDATE anuncio_gratuito SET slug = ? WHERE id = ?")->execute([$slug, $id_novo]);

        $pdo->commit();

        if ($empresa) {
            $link_vaga = $site_url . "/vaga-gratuita.php?id=" . $slug;

            // MAPEAMENTO DE TAGS PARA O E-MAIL
            $dadosParaEmail = [
                'criado_por'    => (stripos($_SESSION['role'], 'admin') !== false ? 'Administrador' : $empresa['nome_empresa']),
                'titulo_vaga'   => $titulo,
                'link_vaga'     => $link_vaga,
                'data_vaga'     => date('d/m/Y'),
                'nome_empresa'  => $empresa['nome_empresa'],
                'nome_contato'  => trim($_POST['nome_contato'] ?? $empresa['nome_empresa']),
                'setor'         => $segmento,
                'email_contato' => $email_cv,
                'whatsapp'      => $whatsapp, // Preenche a tag {{whatsapp}}
                'telefone'      => $whatsapp, // Preenche a tag {{telefone}}
                'cidade'        => $cidade,
                'uf'            => $estado
            ];

            if (function_exists('enviarEmailVagaGratuitaDinamico')) {
                enviarEmailVagaGratuitaDinamico($pdo, $empresa['email'], 'gratuito_empresa', $dadosParaEmail);
                $email_admin = $_ENV['SMTP_FROM_EMAIL'] ?? 'admin@selflixvagas.com.br';
                enviarEmailVagaGratuitaDinamico($pdo, $email_admin, 'gratuito_admin', $dadosParaEmail);
            }
        }

        header("Location: listar-anuncios-gratuito.php?sucesso=1");
        exit();

    } catch (Exception $e) {
        if ($pdo->inTransaction()) { $pdo->rollBack(); }
        error_log("Erro ao cadastrar vaga gratuita: " . $e->getMessage());
        header("Location: criar-anuncio-gratuito.php?erro=1");
        exit();
    }
}