<?php
require_once 'inc/functions.php';

$token = '531563:AABWVHAQ53cPlnH8kkQO03oh5h088Rlz1so'; // тот же токен

// Получаем сырые данные и заголовок подписи
$body = file_get_contents('php://input');
$signature = $_SERVER['HTTP_CRYPTO_PAY_API_SIGNATURE'] ?? '';

// Вычисляем подпись
$hash = hash_hmac('sha256', $body, $token);
if ($hash !== $signature) {
    http_response_code(403);
    die('Invalid signature');
}

$data = json_decode($body, true);
if (!$data || !isset($data['update_id']) || $data['update_type'] !== 'invoice_paid') {
    http_response_code(400);
    die('Invalid update');
}

$invoice = $data['payload']; // это данные инвойса
$invoiceId = $invoice['invoice_id'];
$payload = json_decode($invoice['payload'], true); // наш payload с user_id и package_id
$transactionId = $invoice['transaction_id'] ?? null;

if (!$payload || !isset($payload['user_id'], $payload['package_id'])) {
    http_response_code(400);
    die('Invalid payload');
}

$userId = $payload['user_id'];
$packageId = $payload['package_id'];

// Обновляем статус платежа
updatePaymentStatus($invoiceId, 'completed', $transactionId);

// Получаем информацию о пакете, чтобы знать сумму золота
$packagesData = [
    1 => [50,  0,  100],
    2 => [250, 50,  500],
    3 => [500, 150, 1000],
    4 => [2500,900, 5000],
    5 => [7500,2000,15000],
];
if (!isset($packagesData[$packageId])) {
    http_response_code(400);
    die('Unknown package');
}
$pkg = $packagesData[$packageId];
$gold = $pkg[0];
$bonus = $pkg[1];
$totalGold = $gold + $bonus;

// Отправляем письмо с вложением золота
sendGoldPurchaseMail($userId, $totalGold);

// Логируем покупку золота (для скидки на премиум)
logGoldPurchase($userId, $totalGold);

http_response_code(200);
echo 'OK';