<?php
require_once 'db_config.php';
session_start();

header('Content-Type: application/json');

if (!isset($_SESSION['usuario_id'])) {
    echo json_encode(['status' => 'error', 'message' => 'Não autorizado']);
    exit;
}

$usuario_id = $_SESSION['usuario_id'];
$tickers = $_GET['tickers'] ?? ''; // Ex: PETR4,VALE3,MGLU3

if (empty($tickers)) {
    echo json_encode(['status' => 'error', 'message' => 'Nenhum ticker fornecido']);
    exit;
}

try {
    // 1. Buscar a chave da API Brapi no banco de dados
    $stmt = $pdo->prepare("SELECT valor FROM configuracoes WHERE usuario_id = ? AND chave = 'brapi_key'");
    $stmt->execute([$usuario_id]);
    $config = $stmt->fetch();
    
    $token = $config ? $config['valor'] : '';
    
    if (empty($token)) {
        // Se não tem token, retorna erro amigável para a UI saber
        echo json_encode([
            'status' => 'error', 
            'code' => 'NO_TOKEN',
            'message' => 'Chave da API Brapi não configurada. Vá em Configurações para adicionar.'
        ]);
        exit;
    }

    // 2. Fazer a requisição para a Brapi
    $url = "https://brapi.dev/api/quote/{$tickers}?token={$token}";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Apenas para ambiente de desenvolvimento/Hostgator
    
    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    if ($http_code === 200 && $response) {
        $data = json_decode($response, true);
        
        // Formatar resposta para o nosso frontend
        $cotacoes = [];
        if (isset($data['results'])) {
            foreach ($data['results'] as $result) {
                $cotacoes[$result['symbol']] = [
                    'preco_atual' => $result['regularMarketPrice'] ?? 0,
                    'variacao_dia' => $result['regularMarketChangePercent'] ?? 0,
                    'nome' => $result['longName'] ?? $result['shortName'] ?? '',
                    'atualizado_em' => date('Y-m-d H:i:s')
                ];
            }
        }
        
        echo json_encode([
            'status' => 'success',
            'data' => $cotacoes
        ]);
    } else {
        $error_data = json_decode($response, true);
        $msg = $error_data['message'] ?? 'Erro ao conectar com a API Brapi';
        
        echo json_encode([
            'status' => 'error',
            'code' => 'API_ERROR',
            'message' => $msg,
            'http_code' => $http_code
        ]);
    }
    
} catch (Exception $e) {
    echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
}
?>
