'POST', 'callback' => 'brandgap_execute_cyber_diagnostic', 'permission_callback' => '__return_true', )); }); function brandgap_execute_cyber_diagnostic(WP_REST_Request $request) { // Sua chave de API inserida de forma segura no servidor $gemini_api_key = 'AIzaSyBeRuuaEnZI0VRElYT3dLgYBRyMLjFD0ZE'; $params = $request->get_json_params(); if (empty($params)) { return new WP_REST_Response(array('error' => 'Nenhum dado recebido pelo servidor.'), 400); } // Montagem do Prompt Estratégico utilizando as variáveis enviadas pelo seu formulário $prompt = "Atue como um Engenheiro de Posicionamento de Marca e Estrategista de Negócios Sênior.\n"; $prompt .= "Analise as seguintes respostas do briefing de uma empresa e gere um diagnóstico de marca estruturado em formato JSON rigoroso.\n\n"; $prompt .= "--- DADOS DO BRIEFING ---\n"; $prompt .= "Nome da Empresa/Marca: " . sanitize_text_field($params['nome_empresa']) . "\n"; $prompt .= "Segmento de Atuação: " . sanitize_text_field($params['segmento']) . "\n"; $prompt .= "Modelo Comercial: " . sanitize_text_field($params['modelo']) . "\n"; $prompt .= "Concorrentes/Inspirações: " . sanitize_textarea_field($params['concorrentes']) . "\n"; $prompt .= "Pilar de Reputação Escolhido (Escolha Forçada): " . sanitize_text_field($params['escolha_forcada']) . "\n"; $prompt .= "Drivers de Valor Selecionados: " . implode(', ', array_map('sanitize_text_field', (array)$params['valores'])) . "\n"; $prompt .= "Auto-percepção de Temperamento: " . sanitize_textarea_field($params['auto_percepcao']) . "\n"; $prompt .= "Gargalo Comercial/Imagem: " . sanitize_textarea_field($params['gargalos']) . "\n\n"; $prompt .= "--- REQUISITOS DE SAÍDA ---\n"; $prompt .= "Sua resposta DEVE ser exclusivamente um objeto JSON válido, sem blocos de código markdown (sem os caracteres ```json), sem explicações extras. Siga estritamente esta estrutura de chaves:\n"; $prompt .= "{\n"; $prompt .= " \"arquetipo\": \"NOME DO ARQUÉTIPO PRINCIPAL\",\n"; $prompt .= " \"arquetipo_desc\": \"Texto explicativo e profundo justificando a aplicação deste arquétipo com base nos gargalos informados.\",\n"; $prompt .= " \"voz_tom\": \"Definição do estilo e tom de voz da marca\",\n"; $prompt .= " \"pos_x\": número inteiro de -100 a 100 (onde -100 é Tradicional e 100 é Inovador),\n"; $prompt .= " \"pos_y\": número inteiro de -100 a 100 (onde -100 é Acessível e 100 é Premium),\n"; $prompt .= " \"falar\": [\"Diretriz verbal 1\", \"Diretriz verbal 2\", \"Diretriz verbal 3\"],\n"; $prompt .= " \"nao_falar\": [\"Barreira verbal 1\", \"Barreira verbal 2\", \"Barreira verbal 3\"],\n"; $prompt .= " \"plano_acao\": [\n"; $prompt .= " { \"titulo\": \"Ação 1\", \"desc\": \"Descrição prática de implementação\" },\n"; $prompt .= " { \"titulo\": \"Ação 2\", \"desc\": \"Descrição prática de implementação\" },\n"; $prompt .= " { \"titulo\": \"Ação 3\", \"desc\": \"Descrição prática de implementação\" }\n"; $prompt .= " ]\n"; $prompt .= "}"; // Chamada oficial utilizando o modelo estável 1.5-flash $url = '[https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=](https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=)' . $gemini_api_key; $body = array( 'contents' => array( array('parts' => array(array('text' => $prompt))) ), 'generationConfig' => array( 'responseMimeType' => 'application/json' ) ); $args = array( 'body' => json_encode($body), 'headers' => array('Content-Type' => 'application/json'), 'timeout' => 45, 'sslverify' => false, // Evita bloqueios de SSL em servidores compartilhados 'data_format' => 'body' ); $response = wp_remote_post($url, $args); if (is_wp_error($response)) { return new WP_REST_Response(array('error' => 'Falha de comunicação com a IA: ' . $response->get_error_message()), 500); } $response_body = wp_remote_retrieve_body($response); $data = json_decode($response_body, true); if (!isset($data['candidates'][0]['content']['parts'][0]['text'])) { return new WP_REST_Response(array('error' => 'Resposta inválida do motor da IA.', 'debug' => $data), 500); } $raw_text = trim($data['candidates'][0]['content']['parts'][0]['text']); // Sanatização extra de strings markdown $raw_text = preg_replace('/^ ```json/', '', $raw_text); $raw_text = preg_replace('/```$/', '', $raw_text); $raw_text = trim($raw_text); $clean_json = json_decode($raw_text, true); if (json_last_error() !== JSON_ERROR_NONE) { return new WP_REST_Response(array('error' => 'Falha no parseamento dos dados estruturados.', 'raw' => $raw_text), 500); } // [Opcional] Grava os leads no banco de dados para segurança de dados comerciais update_option('bg_lead_' . time(), array( 'data' => current_time('mysql'), 'nome' => $params['lead_nome'], 'email' => $params['lead_email'], 'whatsapp' => $params['lead_whats'], 'empresa' => $params['nome_empresa'] )); return new WP_REST_Response($clean_json, 200); } // ========================================================================= // 2. FRONT-END: SEU CÓDIGO ORIGINAL INTEGRAVEL POR SHORTCODE // ========================================================================= add_shortcode('brandgap_app', 'brandgap_render_cyber_interface'); function brandgap_render_cyber_interface() { ob_start(); ?>
BRAND//GAP

01// ACESSO AO DIAGNÓSTICO

Insira seus dados para iniciar a análise estratégica e liberar o relatório.

02// IDENTIDADE DA EMPRESA

Qual o nome do projeto e mercado de atuação?

03// MODELO OPERACIONAL

Como sua empresa monetiza e entrega valor?

B2B Foco em vender para outras empresas
B2C Foco em vender para o consumidor final

04// CAMPO DE BATALHA

Quem são os players que disputam a atenção do seu cliente?

05// ESCOLHA FORÇADA

Se você tivesse que salvar apenas um pilar de reputação agora, qual seria?

Inovação VanguardistaSer o primeiro do mercado a ditar tendências.
Tradição InabalávelGarantia, herança e risco zero para o cliente.

06// DRIVERS DE VALOR

Quais sentimentos colaterais sua marca deve evocar? (Escolha até 3)

Status & Luxo
Tecnologia
Pertencimento
Praticidade
Blindagem/Soberania

07// PSICOLOGIA DE MARCA

Como você descreveria a personalidade da sua empresa se ela fosse uma pessoa?

08// VULNERABILIDADES

O que impede sua marca de cobrar 3x mais caro hoje?