<?php
include 'verifica_login.php';
include 'conexao.php';
$conn = conectar_banco();

try {
    $conn->begin_transaction();

    // Apagar dados atuais
    $conn->query("DELETE FROM contatos_questionario");
    $conn->query("DELETE FROM qualificacao_belgo");

    // Definir status padrão "Não trabalhados" se existir
    $status_padrao = 0;
    if ($res = $conn->query("SELECT id_status FROM statusdoquestionario WHERE nome_status LIKE '%não trabalhad%' LIMIT 1")) {
        $row = $res->fetch_assoc();
        if ($row && isset($row['id_status'])) $status_padrao = (int)$row['id_status'];
    }

    // Selecionar empresas com dados cadastrais completos
    $empresas = $conn->query("SELECT ID_EMPRESA, EMPRESA, NOME_FANTASIA, CNPJ, CNAE, RUA, NUMERO, COMPL_NUM, BAIRRO, CIDADE, UF, FUNCIONARIOS, SITE, DDD, TEL FROM empresas");
    if (!$empresas) { throw new Exception('Falha ao buscar empresas'); }

    // Preparar insert de questionário (39 colunas)
    $stmt_q = $conn->prepare("INSERT INTO qualificacao_belgo (
        quem_entrevistou, data_entrevista, hora_entrevista, agendamento_data_retorno, agendamento_hora_retorno, id_status_fk,
        aceite_pesquisa, razao_social, nome_fantasia, cnae, descricao_atividade, ddd, fone, cnpj, endereco, cidade, uf, numerodefuncionarios, site,
        p1_tomador_decisao, p2_modelo_desenvolvimento,
        p3_prazo, p3_qualidade, p3_comunicacao, p3_custos, p3_escalabilidade,
        p4_tipo_demanda, p5_projetos_pipeline, p6_tamanho_operacao_ti,
        p7_abertura_conversa,
        fechamento_reuniao_data, fechamento_reuniao_hora1, fechamento_reuniao_hora2,
        fechamento_email, fechamento_telefone,
        observacao_encerramento, observacoesinternas,
        nota_total, data_registro
    ) VALUES (
        ?, ?, ?, ?, ?, ?,
        ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
        ?, ?,
        ?, ?, ?, ?, ?,
        ?, ?, ?,
        ?,
        ?, ?, ?,
        ?, ?,
        ?, ?,
        ?, ?
    )");

    // Map de empresa -> questionário
    $map = [];
    $total_q = 0;

    while ($e = $empresas->fetch_assoc()) {
        $quem_entrevistou = '';
        $data_entrevista = '';
        $hora_entrevista = '';
        $agendamento_data_retorno = '';
        $agendamento_hora_retorno = '';
        $id_status_fk = $status_padrao;
        $aceite_pesquisa = '';
        $razao_social = $e['EMPRESA'] ?? '';
        $nome_fantasia = $e['NOME_FANTASIA'] ?? '';
        $cnae = $e['CNAE'] ?? '';
        $descricao_atividade = '';
        $ddd = $e['DDD'] ?? '';
        $fone = $e['TEL'] ?? '';
        $endereco_parts = [];
        if (!empty($e['RUA'])) $endereco_parts[] = $e['RUA'];
        if (!empty($e['NUMERO'])) $endereco_parts[] = $e['NUMERO'];
        if (!empty($e['COMPL_NUM'])) $endereco_parts[] = $e['COMPL_NUM'];
        if (!empty($e['BAIRRO'])) $endereco_parts[] = $e['BAIRRO'];
        $endereco = $endereco_parts ? implode(', ', $endereco_parts) : '';
        $cnpj = $e['CNPJ'] ?? '';
        $cidade = $e['CIDADE'] ?? '';
        $uf = $e['UF'] ?? '';
        $numerodefuncionarios = $e['FUNCIONARIOS'] ?? '';
        $site = $e['SITE'] ?? '';
        $p1_tomador_decisao = '';
        $p2_modelo_desenvolvimento = '';
        $p3_prazo = 0; $p3_qualidade = 0; $p3_comunicacao = 0; $p3_custos = 0; $p3_escalabilidade = 0;
        $p4_tipo_demanda = '';
        $p5_projetos_pipeline = '';
        $p6_tamanho_operacao_ti = '';
        $p7_abertura_conversa = '';
        $fechamento_reuniao_data = '';
        $fechamento_reuniao_hora1 = '';
        $fechamento_reuniao_hora2 = '';
        $fechamento_email = '';
        $fechamento_telefone = '';
        $observacao_encerramento = '';
        $observacoesinternas = '';
        $nota_total = 0;
        $data_registro = date('Y-m-d H:i:s');

        $params = [
            $quem_entrevistou, $data_entrevista, $hora_entrevista, $agendamento_data_retorno, $agendamento_hora_retorno,
            $id_status_fk,
            $aceite_pesquisa, $razao_social, $nome_fantasia, $cnae, $descricao_atividade, $ddd, $fone, $cnpj, $endereco, $cidade, $uf, $numerodefuncionarios, $site,
            $p1_tomador_decisao, $p2_modelo_desenvolvimento,
            $p3_prazo, $p3_qualidade, $p3_comunicacao, $p3_custos, $p3_escalabilidade,
            $p4_tipo_demanda, $p5_projetos_pipeline, $p6_tamanho_operacao_ti,
            $p7_abertura_conversa,
            $fechamento_reuniao_data, $fechamento_reuniao_hora1, $fechamento_reuniao_hora2,
            $fechamento_email, $fechamento_telefone,
            $observacao_encerramento, $observacoesinternas,
            $nota_total, $data_registro
        ];

        // Montar string de tipos dinamicamente conforme os valores
        $types_q = '';
        foreach ($params as $val) {
            $types_q .= is_int($val) ? 'i' : 's';
        }

        $stmt_q->bind_param($types_q, ...$params);
        if(!$stmt_q->execute()) { throw new Exception('Falha ao inserir questionário: ' . $conn->error); }
        $qid = $conn->insert_id;
        $map[(int)$e['ID_EMPRESA']] = $qid;
        $total_q++;
    }

    // Importar contatos da empresa para contatos_questionario
    $stmt_c = $conn->prepare("INSERT INTO contatos_questionario (id, area, entrevistado, nome, sobrenome, sexo, cargo, ddd, telefone1, telefone2, email, linkedin, idcontato_status, ramal, celular, endereco_mesmo, endereco, numero, complemento, bairro, cidade, uf, cep, observacoes)
        VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
    $types_c = 'isssssssssssississssssss';

    $resCont = $conn->query("SELECT id_empresa, depto, nome, sobrenome, cargo, sexo, email, ddd, tel, celular, ramal, linkedin, status_contato FROM contatos_empresa");
    if ($resCont) {
        while ($c = $resCont->fetch_assoc()) {
            $id_empresa = (int)($c['id_empresa'] ?? 0);
            if (!isset($map[$id_empresa])) { continue; }
            $qid = $map[$id_empresa];

            $area = $c['depto'] ?? '';
            $entrevistado = 'N';
            $nome = $c['nome'] ?? '';
            $sobrenome = $c['sobrenome'] ?? '';
            $sexo = $c['sexo'] ?? '';
            $cargo = $c['cargo'] ?? '';
            $ddd = $c['ddd'] ?? '';
            $telefone1 = $c['tel'] ?? '';
            $telefone2 = $c['celular'] ?? '';
            $email = $c['email'] ?? '';
            $linkedin = $c['linkedin'] ?? '';
            $idcontato_status = 0;
            $ramal = $c['ramal'] ?? '';
            $celular = $c['celular'] ?? '';
            $endereco_mesmo = '';
            $endereco = '';
            $numero = '';
            $complemento = '';
            $bairro = '';
            $cidade = '';
            $uf = '';
            $cep = '';
            $observacoes = '';

            $paramsC = [
                $qid, $area, $entrevistado, $nome, $sobrenome, $sexo, $cargo, $ddd, $telefone1, $telefone2, $email, $linkedin, $idcontato_status, $ramal, $celular, $endereco_mesmo, $endereco, $numero, $complemento, $bairro, $cidade, $uf, $cep, $observacoes
            ];
            $stmt_c->bind_param($types_c, ...$paramsC);
            if(!$stmt_c->execute()) { throw new Exception('Falha ao inserir contato: ' . $conn->error); }
        }
        $stmt_c->close();
    }

    $conn->commit();
    header('Location: principal.php?msg=sucesso&total=' . $total_q);
    exit;

} catch (Exception $ex) {
    if ($conn) { $conn->rollback(); }
    header('Location: gerar_novo_questionario.php?msg=erro&detalhe=' . urlencode($ex->getMessage()));
    exit;
}
