<?php
session_start();
require_once 'inc/functions.php';
check404();
securityCheck();
define('CRYPTO_BOT_TOKEN', '531563:AABWVHAQ53cPlnH8kkQO03oh5h088Rlz1so');
define('CRYPTO_API_URL', 'https://pay.crypt.bot/api/');
define('USDT_RATE', 90); // 1 USDT = 90 RUB (можно получать динамически)

if (!isLoggedIn()) {
    header('Location: index.php');
    exit;
}

$user = getUserById($_SESSION['user_id']);
if (!$user) {
    session_destroy();
    header('Location: index.php');
    exit;
}

/**
 * Создаёт инвойс в Crypto Pay
 */
function createCryptoInvoice($amountRUB, $userId, $packageId) {
    $token = CRYPTO_BOT_TOKEN;
    $url = CRYPTO_API_URL . 'createInvoice';

    // Конвертация рублей в USDT
    $amountUSDT = round($amountRUB / USDT_RATE, 2);

    $payload = json_encode([
        'user_id' => $userId,
        'package_id' => $packageId
    ]);

    $data = [
        'asset' => 'USDT',
        'amount' => (string)$amountUSDT,
        'description' => "Покупка золота (пакет #$packageId)",
        'payload' => $payload,
        'paid_btn_name' => 'callback',
        'paid_btn_url' => 'https://ваш-сайт.ru/profile.php' // измените на свой URL
    ];

    $headers = [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token
    ];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode == 200) {
        $result = json_decode($response, true);
        if ($result['ok']) {
            return $result['result'];
        }
    }
    error_log("Crypto Pay error: " . $response);
    return false;
}

// Обработка покупки пакета
if (isset($_GET['buy'])) {
    $packageId = (int)$_GET['buy'];
    // Пакеты золота: id => [gold, bonus, price, icon, name]
    $packagesData = [
        1 => [50,  0,  100,   '10.gif',   '50 золотых'],
        2 => [250, 50,  500,   '50.gif',   '250 золотых'],
        3 => [500, 150, 1000,  '100.gif',  '500 золота'],
        4 => [2500,900, 5000,  '500.gif',  '2500 золота'],
        5 => [7500,2000,15000, '1000.gif', '7500 золота'],
    ];

    if (!isset($packagesData[$packageId])) {
        $_SESSION['error'] = 'Пакет не найден';
        header('Location: gold_shop.php');
        exit;
    }

    $pkg = $packagesData[$packageId];
    $gold   = $pkg[0];
    $bonus  = $pkg[1];
    $price  = $pkg[2]; // цена в рублях
    $totalGold = $gold + $bonus;

    // Создаём инвойс в Crypto Pay
    $invoice = createCryptoInvoice($price, $user['id'], $packageId);
    if (!$invoice) {
        $_SESSION['error'] = 'Ошибка создания платежа. Попробуйте позже.';
        header('Location: gold_shop.php');
        exit;
    }

    // Сохраняем платеж в БД (функция из functions.php)
    createPayment($user['id'], $packageId, $totalGold, $price, $invoice['invoice_id']);

    // Редиректим на страницу оплаты
    header('Location: ' . $invoice['pay_url']);
    exit;
}

require_once 'inc/header.php';
?>

<span class="ttl"><b>Покупка золота</b></span>
<div class="clb"></div>
<div class="hr"></div>

<div class="small cntr">
    Пополни баланс и получи бонусные монеты в подарок! Оплата через Crypto Bot (USDT).
</div>
<div class="hr"></div>

<strong class="cntr amount bl">Crypto Bot (USDT)</strong>
<div class="hr"></div>

<?php
// Те же пакеты для отображения
$packages = [
    1 => [50,  0,  100,   '10.gif',   '50 золотых'],
    2 => [250, 50,  500,   '50.gif',   '250 золотых'],
    3 => [500, 150, 1000,  '100.gif',  '500 золота'],
    4 => [2500,900, 5000,  '500.gif',  '2500 золота'],
    5 => [7500,2000,15000, '1000.gif', '7500 золота'],
];

foreach ($packages as $id => $pkg):
    $gold   = $pkg[0];
    $bonus  = $pkg[1];
    $price  = $pkg[2];
    $icon   = $pkg[3];
    $name   = $pkg[4];
    $total  = $gold + $bonus;
?>
<div>
    <img src="/images/icons/<?= htmlspecialchars($icon) ?>" alt="" width="48" height="48" class="fll inbl" style="margin-right:10px;"/>
    <b><img width="16" height="16" src="/images/icons/money_gold.png" alt="" border="0"/> <?= $gold ?> золотых</b><br/>
    <?php if ($bonus > 0): ?>
        <span class="rc"><img width="16" height="16" src="/images/icons/money_gold.png" alt="" border="0"/> +<?= $bonus ?> в подарок</span><br/>
    <?php endif; ?>
    <a class="btn" href="?buy=<?= $id ?>"><span class="end"><span class="label">Купить за <?= $price ?> руб</span></span></a>
    <span class="minor nshd">(оплата в USDT)</span>
    <div class="clb"></div>
</div>
<div class="hr"></div>
<?php endforeach; ?>

<span class="minor small">Для покупки золота вам нужно будет оплатить счёт в боте @CryptoBot. После успешной оплаты золото будет отправлено вам в виде посылки на почту.</span>

<?php require_once 'inc/foot.php'; ?>