<?php
// /telefonia/api/proxy.php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');

// Token da Zenvia (confirmado funcionando)
$token = 'bac7690d70ce44e43906b9069562c47f';

// Pega o endpoint da URL
$endpoint = $_GET['endpoint'] ?? '';

if (empty($endpoint)) {
    http_response_code(400);
    echo json_encode([
        'erro' => 'Endpoint não especificado',
        'exemplo' => '/telefonia/api/proxy.php?endpoint=saldo'
    ]);
    exit;
}

// Constrói a URL completa
$query = $_GET;
unset($query['endpoint']); // Remove o endpoint da query string
$queryString = http_build_query($query);

$url = "https://voice-api.zenvia.com/{$endpoint}";
if (!empty($queryString)) {
    $url .= "?{$queryString}";
}

// Log para debug
error_log("Proxy Zenvia - URL: " . $url);

// Inicializa cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

// Headers
$headers = [
    'Accept: application/json',
    'Access-Token: ' . $token
];

// Se for POST, adiciona o corpo
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    curl_setopt($ch, CURLOPT_POST, true);
    $input = file_get_contents('php://input');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $input);
    $headers[] = 'Content-Type: application/json';
    error_log("Proxy Zenvia - POST Data: " . $input);
}

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// Executa a requisição
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);

curl_close($ch);

if ($error) {
    error_log("Proxy Zenvia - Erro cURL: " . $error);
    http_response_code(500);
    echo json_encode([
        'erro' => 'Erro na comunicação com a Zenvia',
        'detalhe' => $error,
        'url' => $url
    ]);
    exit;
}

// Log da resposta
error_log("Proxy Zenvia - Resposta HTTP {$httpCode}: " . substr($response, 0, 200));

// Retorna a resposta da Zenvia
http_response_code($httpCode);
echo $response;
?>