<?php
/**
 * API para verificar status de pagamento
 */

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

session_start();

if (!isset($_SESSION['user_id'])) {
    http_response_code(401);
    echo json_encode(['error' => 'Não autenticado']);
    exit;
}

require_once __DIR__ . '/../includes/config.php';

$transactionId = $_GET['id'] ?? null;

if (!$transactionId) {
    http_response_code(400);
    echo json_encode(['error' => 'ID da transação é obrigatório']);
    exit;
}

try {
    // Buscar por ID interno ou externo
    $stmt = getDB()->prepare("
        SELECT id, status, paid_at, external_id 
        FROM payment_transactions 
        WHERE (id = ? OR external_id = ?) AND user_id = ?
    ");
    $stmt->execute([$transactionId, $transactionId, $_SESSION['user_id']]);
    $transaction = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$transaction) {
        http_response_code(404);
        echo json_encode(['error' => 'Transação não encontrada']);
        exit;
    }

    echo json_encode([
        'success' => true,
        'id' => $transaction['id'],
        'status' => $transaction['status'],
        'paid_at' => $transaction['paid_at']
    ]);

} catch (\Exception $e) {
    http_response_code(500);
    echo json_encode(['error' => $e->getMessage()]);
}
