<?php
/**
 * Integração com Make (Integromat) para automação de leads
 * 
 * O Make é uma plataforma de automação que permite criar workflows
 * e integrações entre diferentes serviços.
 * 
 * Para usar esta integração:
 * 1. Crie um cenário no Make
 * 2. Adicione um módulo "Webhooks" > "Custom webhook"
 * 3. Copie a URL do webhook
 * 4. Cole a URL no config.php (MAKE_WEBHOOK_URL)
 */

require_once 'config.php';

/**
 * Envia dados do lead para o Make via webhook
 * 
 * @param array $data Dados do formulário
 * @return bool|string Retorna true em caso de sucesso, false em caso de falha, ou string com erro
 */
function sendToMake($data) {
    // Verificar se a integração está habilitada
    if (!defined('MAKE_ENABLED') || !MAKE_ENABLED) {
        return false;
    }
    
    // Verificar se a URL do webhook está configurada
    if (!defined('MAKE_WEBHOOK_URL') || empty(MAKE_WEBHOOK_URL)) {
        error_log('Make: URL do webhook não configurada');
        return false;
    }
    
    // Preparar payload para o Make
    // O Make receberá todos os dados do formulário em formato JSON
    $payload = [
        'event' => 'new_lead',
        'source' => 'gimak_website',
        'timestamp' => date('Y-m-d H:i:s'),
        'data' => [
            'nome' => $data['nome'] ?? '',
            'cnpj' => $data['cnpj'] ?? '',
            'telefone' => $data['telefone'] ?? '',
            'cidade' => $data['cidade'] ?? '',
            'segmento' => $data['segmento'] ?? '',
            'volume' => $data['volume'] ?? '',
            'data' => $data['data'] ?? date('Y-m-d H:i:s'),
            'ip' => $data['ip'] ?? $_SERVER['REMOTE_ADDR'] ?? 'N/A'
        ]
    ];
    
    // Configurar requisição cURL
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, MAKE_WEBHOOK_URL);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Accept: application/json',
        'User-Agent: GIMAK-Website/1.0'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); // Timeout de 30 segundos
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    
    // Executar requisição
    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $curl_error = curl_error($ch);
    curl_close($ch);
    
    // Verificar resultado
    if ($curl_error) {
        error_log("Make: Erro cURL ao enviar dados. Erro: $curl_error");
        return false;
    }
    
    // O Make geralmente retorna 200 ou 202 para sucesso
    if ($http_code >= 200 && $http_code < 300) {
        error_log("Make: Dados enviados com sucesso para o webhook. HTTP Code: $http_code");
        return true;
    } else {
        error_log("Make: Erro ao enviar dados. HTTP Code: $http_code, Resposta: $response");
        return false;
    }
}

/**
 * Testa a conexão com o Make
 * 
 * @return array Resultado do teste
 */
function testMakeConnection() {
    if (!defined('MAKE_ENABLED') || !MAKE_ENABLED) {
        return [
            'success' => false,
            'message' => 'Integração do Make está desabilitada'
        ];
    }
    
    if (!defined('MAKE_WEBHOOK_URL') || empty(MAKE_WEBHOOK_URL)) {
        return [
            'success' => false,
            'message' => 'URL do webhook do Make não está configurada'
        ];
    }
    
    // Enviar dados de teste
    $test_data = [
        'nome' => 'Teste Make',
        'cnpj' => '12345678000190',
        'telefone' => '(47) 99999-9999',
        'cidade' => 'Teste',
        'segmento' => 'Teste',
        'volume' => '1',
        'data' => date('Y-m-d H:i:s'),
        'ip' => '127.0.0.1'
    ];
    
    $result = sendToMake($test_data);
    
    if ($result === true) {
        return [
            'success' => true,
            'message' => 'Conexão com Make estabelecida com sucesso!'
        ];
    } else {
        return [
            'success' => false,
            'message' => 'Erro ao conectar com Make. Verifique a URL do webhook e os logs.'
        ];
    }
}

