<?php
// /telefonia/api/sincronizar_mensal.php
// Busca chamadas dos últimos 30 dias automaticamente

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

echo "🔄 INICIANDO SINCRONIZAÇÃO MENSAL\n";
echo "====================================\n\n";

// 1. DEFINIR DATAS DINÂMICAS
$data_fim = date('Y-m-d'); // Hoje
$data_inicio = date('Y-m-d', strtotime('-30 days')); // 30 dias atrás

echo "📅 Período: $data_inicio até $data_fim\n\n";

// 2. CONECTAR AO BANCO
$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";

// 3. BUSCAR DADOS DA ZENVIA
$proxy_url = "https://son.tvitecnologia.com.br/telefonia/api/proxy.php?endpoint=chamada/relatorio&data_inicio=$data_inicio&data_fim=$data_fim";
echo "📡 Buscando dados: $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);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_error($ch)) {
    die("❌ Erro cURL: " . curl_error($ch) . "\n");
}
curl_close($ch);

if ($httpCode != 200) {
    die("❌ Erro 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 no período\n\n";

// 4. INSERIR NO BANCO
$inseridas = 0;
$existentes = 0;
$erros = 0;

foreach ($chamadas as $chamada) {
    $call_id = $chamada['id'];
    
    // 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'] ?? '';
    
    // Usuário (thiago.vieira)
    $usuario_id = 64;
    
    // 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, usuario_id)
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 17, ?)
        ");
        $insert->bind_param("ssssissssi", 
            $call_id, 
            $data_hora_inicio, 
            $data_hora_fim, 
            $status, 
            $duracao, 
            $custo,
            $numero_origem, 
            $numero_destino, 
            $url_gravacao,
            $usuario_id
        );
        
        if ($insert->execute()) {
            $inseridas++;
        } else {
            $erros++;
        }
        $insert->close();
    } else {
        $existentes++;
    }
    
    $check->close();
}

echo "\n====================================\n";
echo "📊 RESUMO DA SINCRONIZAÇÃO:\n";
echo "📅 Período: $data_inicio a $data_fim\n";
echo "✅ Inseridas: $inseridas\n";
echo "⏭️  Existentes: $existentes\n";
echo "❌ Erros: $erros\n";
echo "📞 Total na Zenvia: " . count($chamadas) . "\n";
echo "====================================\n";
?>