<?php
// /telefonia/api/sincronizar.php - VERSÃO CORRIGIDA
header('Content-Type: text/html; charset=utf-8');
echo "<pre>";

$data_fim = date('Y-m-d');
$data_inicio = date('Y-m-d', strtotime('-7 days'));

echo "🔄 Buscando chamadas de $data_inicio até $data_fim...\n\n";

// 1. Buscar dados da Zenvia via proxy
$proxy_url = "https://son.tvitecnologia.com.br/telefonia/api/proxy.php?endpoint=chamada/relatorio&data_inicio=$data_inicio&data_fim=$data_fim";
echo "📡 URL: $proxy_url\n";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $proxy_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "📥 HTTP Status: $httpCode\n";

if ($httpCode != 200) {
    die("❌ Erro na requisição: HTTP $httpCode\n");
}

$data = json_decode($response, true);

if (!$data || !$data['sucesso']) {
    die("❌ Erro na API: " . ($data['mensagem'] ?? 'Resposta inválida') . "\n");
}

$chamadas = $data['dados']['relatorio'] ?? [];
echo "📞 Encontradas " . count($chamadas) . " chamadas\n\n";

// 2. Conectar ao banco de dados
$conexao_path = '/home/tvitec62/son.tvitecnologia.com.br/conexao.php';
if (!file_exists($conexao_path)) {
    die("❌ Arquivo conexao.php não encontrado em: $conexao_path\n");
}

require_once $conexao_path;
echo "✅ Banco de dados conectado\n\n";

$contador = 0;

foreach ($chamadas as $chamada) {
    $call_id = $chamada['id'] ?? null;
    if (!$call_id) continue;
    
    // Extrair dados
    $data_hora_inicio = $chamada['data_criacao'] ?? null;
    $data_hora_fim = $chamada['data_termino'] ?? null;
    $status = $chamada['status_geral'] ?? 'finalizada';
    $duracao = intval($chamada['duracao_segundos'] ?? 0);
    $custo = floatval($chamada['preco'] ?? 0);
    $url_gravacao = $chamada['url_gravacao'] ?? null;
    
    // Números
    $numero_origem = $chamada['origem']['numero'] ?? '';
    $numero_destino = $chamada['destino']['numero'] ?? '';
    
    // Verificar se já existe
    $check = $conn->prepare("SELECT id FROM chamadas_telefonicas WHERE call_id_zenvia = ?");
    $check->bind_param("s", $call_id);
    $check->execute();
    $result = $check->get_result();
    
    if ($result->num_rows == 0) {
        // Inserir nova chamada
        $insert = $conn->prepare("
            INSERT INTO chamadas_telefonicas 
            (call_id_zenvia, data_hora_inicio, data_hora_fim, status, duracao, custo, 
             numero_origem, numero_destino, gravacao_url, tenant_id)
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 1)
        ");
        $insert->bind_param("ssssissss", 
            $call_id, $data_hora_inicio, $data_hora_fim, $status, $duracao, $custo,
            $numero_origem, $numero_destino, $url_gravacao
        );
        
        if ($insert->execute()) {
            echo "✅ Inserida: $call_id\n";
            $contador++;
        } else {
            echo "❌ Erro ao inserir $call_id: " . $conn->error . "\n";
        }
        $insert->close();
    } else {
        echo "⏭️ Já existe: $call_id\n";
    }
    
    $check->close();
}

echo "\n📊 Total de chamadas inseridas: $contador\n";
echo "✅ Sincronização concluída!\n";
echo "</pre>";
?>