<?php
// Inclui o arquivo de conexão
include_once("conexao.php");


// Verifica se o parâmetro 'p' foi passado na URL
if (isset($_GET['p'])) {
    // Obtém o valor do usuário
    $usuario = $_GET['p'];
    
    try {
        // Primeira consulta: Buscar o CadUser na tabela 'usuarios'
        $stmt = $painel_user->prepare("
        SELECT CadUser, email, celular FROM teste WHERE usuario = :usuario
        UNION
        SELECT CadUser, email, celular FROM usuario WHERE usuario = :usuario
    ");        
        $stmt->bindParam(':usuario', $usuario, PDO::PARAM_STR);
        $stmt->execute();

     
        
        // Verifica se o usuário foi encontrado
        if ($stmt->rowCount() > 0) {
            $usuarioDados = $stmt->fetch(PDO::FETCH_ASSOC);
            $cadUser = $usuarioDados['CadUser']; // Aqui temos o CadUser do usuário
            $emailcliente = $usuarioDados['email']; // Aqui você tem o e-mail do usuário
            $telefone = $usuarioDados['celular']; // Aqui você tem o e-mail do usuário
            echo '
            <!DOCTYPE html>
            <html lang="pt-br">
            <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
              <title>Seu Sistema</title>
            
              <style>
                /* Tamanho geral maior para mobile */
                body {
                  font-size: 24px;
                  padding: 10px;
                }
            
                h1, h2, h3 {
                  font-size: 2rem !important;
                }
            
                label, p, span, div {
                  font-size: 1.5rem !important;
                }
            
                input, select, textarea {
                  font-size: 1.5rem !important;
                  padding: 10px;
                }
            
                .form-check-input {
                  transform: scale(1.6);
                  margin-right: 10px;
                }
            
                .btn {
                  font-size: 1.6rem !important;
                  padding: 14px !important;
                }
            
                /* Força visualização melhor no celular */
                @media (min-width: 768px) {
                  body {
                    font-size: 18px;
                  }
            
                  h1, h2, h3 {
                    font-size: 1.8rem !important;
                  }
            
                  label, p, span, div {
                    font-size: 1.2rem !important;
                  }
                }
              </style>
            </head>
            <body>';

            // Agora vamos buscar os planos na tabela 'planos' com base no CadUser
            echo "<div class='container-fluid p-3'>";
            echo "<div class='row'>";
            echo "<div class='col-12'>";

            echo "<h2 class='text-center mb-4'>Escolha um Plano</h2>";


            $stmtPlanos = $painel_geral->prepare("SELECT * FROM planos WHERE CadUser = :CadUser");
            $stmtPlanos->bindParam(':CadUser', $cadUser, PDO::PARAM_STR);
            $stmtPlanos->execute();
            
            if ($stmtPlanos->rowCount() > 0) {
                echo "<form method='POST' action='pagamento.php?p=$usuario'>"; // Mantém o valor de p=usuario na URL
                echo "<div class='form-group'>";
                echo "<label for='plano'>Selecione um Plano:</label><br>";

                // Exibe os planos e seus valores
                while ($plano = $stmtPlanos->fetch(PDO::FETCH_ASSOC)) {
                    // Verifica se o plano foi selecionado
                    $checked = isset($_POST['plano']) && $_POST['plano'] == $plano['id'] ? "checked" : "";
                    echo "<div class='form-check mb-3'>";
                    echo "<input class='form-check-input' type='radio' name='plano' id='plano_" . $plano['id'] . "' value='" . $plano['id'] . "' $checked>";
                    echo "<label class='form-check-label h5' for='plano_" . $plano['id'] . "'>" . $plano['nome'] . " - " . $plano['dias'] . " dias - R$ " . $plano['valor'] . "</label>";
                    echo "</div>";
                    
                                    }

                echo "</div>";
                echo "<button type='submit' name='gerarPix' class='btn btn-primary btn-block'>Gerar Pix</button>";
                echo "</form>";
                

                // Se o formulário foi submetido para gerar o Pix
                if (isset($_POST['gerarPix']) && isset($_POST['plano'])) {
                    $planoEscolhido = $_POST['plano'];

                    // Consulta o plano selecionado
                    $stmtPlanoEscolhido = $painel_geral->prepare("SELECT * FROM planos WHERE id = :planoEscolhido");
                    $stmtPlanoEscolhido->bindParam(':planoEscolhido', $planoEscolhido, PDO::PARAM_INT);
                    $stmtPlanoEscolhido->execute();
                    $plano = $stmtPlanoEscolhido->fetch(PDO::FETCH_ASSOC);

                    $valorPlano = $plano['valor'];
                    $diaPlano = $plano['dias'];


                    // Agora, buscar as credenciais do Mercado Pago
                    $stmtContaMP = $painel_geral->prepare("SELECT clientid, clientsecret FROM contamercadopago WHERE CadUser = :cadUser AND bloqueado = 'N'");
                    $stmtContaMP->bindParam(':cadUser', $cadUser, PDO::PARAM_STR);

                    $stmtContaMP->execute();

                    if ($stmtContaMP->rowCount() > 0) {
                        $contaMP = $stmtContaMP->fetch(PDO::FETCH_ASSOC);
                        $clientid = $contaMP['clientid'];
                        $clientsecret = $contaMP['clientsecret'];

                        // Configura a API do Mercado Pago
                        require_once 'vendor/autoload.php'; // Certifique-se de ter o SDK do Mercado Pago instalado via Composer
                        MercadoPago\SDK::setClientId($clientid);
                        MercadoPago\SDK::setClientSecret($clientsecret);
                        
                        // Criação do pagamento via Pix
                        $payment = new MercadoPago\Payment();
                        $payment->transaction_amount = $valorPlano;
                        $payment->description = "Plano Selecionado";
                        $payment->payment_method_id = "pix";
                        $payment->payer = array(
                            "email" => $emailcliente // Usando o e-mail do usuário armazenado na variável $emailcliente
                        );

                        // Salva o pagamento
                        $payment->save();
                        $paymentId = $payment->id; 

                        $status = "pendente"; 
                        date_default_timezone_set('America/Sao_Paulo');
                        $datahora = date('Y-m-d H:i:s');
                        $stmtInserirPagamento = $painel_geral->prepare("INSERT INTO pagamentos (CadUser, usuario, email, telefone, valor, dias, status, datahora, paymentId) 
                                               VALUES (:cadUser, :usuario, :email, :telefone, :valor, :dias, :status, :datahora, :paymentId)");

                        $stmtInserirPagamento->bindParam(':cadUser', $cadUser, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':usuario', $usuario, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':email', $emailcliente, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':telefone', $telefone, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':valor', $valorPlano, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':dias', $diaPlano, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':status', $status, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':datahora', $datahora, PDO::PARAM_STR);
                        $stmtInserirPagamento->bindParam(':paymentId', $paymentId, PDO::PARAM_STR);


                        $stmtInserirPagamento->execute();


                        // Verifique se o pagamento foi criado com sucesso
                        if ($payment->status == 'approved') {
                            echo "Pagamento aprovado! Status: " . $payment->status . "<br>";
                        } elseif ($payment->status == 'in_process' || $payment->status == 'pending') {
                            // Exibe o QR Code e o link para pagamento
                            $qrCode = $payment->point_of_interaction->transaction_data->qr_code;
                            $qrCodeBase64 = $payment->point_of_interaction->transaction_data->qr_code_base64;

                            // Link para o pagamento
                            $linkPix = $qrCode;



                           
                            $qrCodeBase64 = $payment->point_of_interaction->transaction_data->qr_code_base64;
                            echo "<p class='text-center'><img src='data:image/png;base64,$qrCodeBase64' alt='QR Code' class='img-fluid' style='max-width: 60%; height: auto;'></p>";

                            // Botão para copiar o link do Pix
                            echo "<button onclick='copiarValorPix()' class='btn btn-success'>Copiar link do Pix</button>";
                            
                            

                            echo "<script>
                            function copiarValorPix() {
                                var linkPix = '$linkPix'; // O link gerado do QR Code ou Base64
                                navigator.clipboard.writeText(linkPix)
                                    .then(function() {
                                        alert('Link copiado com sucesso!');
                                    })
                                    .catch(function(error) {
                                        alert('Falha ao copiar o link: ' + error);
                                    });
                            }

                           
                            
                            </script>";
                        } else {
                            echo "Erro ao criar o pagamento: " . $payment->status . "<br>";
                        }
                    } else {
                        echo "Não foi possível encontrar as credenciais do Mercado Pago para o CadUser: $cadUser<br>"; // Depuração
                    }
                }
            } else {
                echo "Nenhum plano encontrado para o usuário $usuario.<br>"; // Depuração
            }
        } else {
            echo "Usuário não encontrado.<br>"; // Depuração
        }
    } catch (PDOException $e) {
        echo 'Erro na consulta: ' . $e->getMessage() . "<br>"; // Depuração
    }
} else {
    echo "Usuário não especificado na URL.<br>"; // Depuração
}
?>

<!-- Adicionando o Bootstrap -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<style>
    body {
        background-color: #f8f9fa;
    }
</style>
