<?php
// ATIVA EXIBIÇÃO DE ERROS PARA DEBUG (Remover em produção)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

header('Content-Type: application/json'); // Tenta manter JSON
// ob_start(); // Removido temporariamente para ver erros fatais

// TENTATIVA DE CONEXÃO ROBUSTA
$caminhos_possiveis = [
    __DIR__ . '/../config/config_db.php',  // Caminho correto (1 nível acima)
    __DIR__ . '/../../config/config_db.php', // Alternativa (2 níveis)
    '../config/config_db.php',              // Relativo
    '../../config/config_db.php',           // Relativo alternativo
    '../conexao.php',                       // Nome alternativo
    '../../conexao.php'                     // Nome alternativo
];

$conectado = false;
foreach ($caminhos_possiveis as $caminho) {
    if (file_exists($caminho)) {
        require_once $caminho;
        $conectado = true;
        break;
    }
}

if (!$conectado) {
    http_response_code(500);
    die(json_encode(["status" => "Erro", "msg" => "Arquivo de conexao nao encontrado"]));
}

// LÓGICA DE CONSULTA
$id = filter_input(INPUT_GET, 'transacao_id', FILTER_SANITIZE_NUMBER_INT);
$response = ['status' => 'Pendente', 'debug_id' => $id];

if ($id) {
    try {
        // Verifica se $pdo existe (alguns sistemas usam $conn)
        if (!isset($pdo) && isset($conn)) { 
            $pdo = $conn; 
        }
        
        if (!isset($pdo)) {
            throw new Exception("Variavel \$pdo nao existe apos conexao");
        }
        
        $query = "SELECT status, produto_id, link_entregavel FROM transacoes WHERE id = :id LIMIT 1";
        $stmt = $pdo->prepare($query);
        $stmt->execute(['id' => $id]);
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($row) {
            $st = strtolower(trim($row['status']));
            if (in_array($st, ['approved', 'aprovado', 'paid', 'concluded', 'completed'])) {
                $response['status'] = 'Aprovado';
            } else {
                $response['status'] = ucfirst(strtolower(trim($row['status'])));
            }
            $response['produto_id'] = $row['produto_id'] ?? null;
            $response['link_entregavel'] = $row['link_entregavel'] ?? null;
        } else {
            $response['status'] = 'Nao encontrado';
        }
    } catch (Exception $e) {
        $response['status'] = 'Erro SQL';
        $response['msg'] = $e->getMessage();
        error_log("API check_status erro: " . $e->getMessage());
    }
} else {
    $response['status'] = 'ID invalido';
}

echo json_encode($response);
exit;
