<?php

require __DIR__.'/../vendor/autoload.php';

use BTCPayServer\Client\StorePaymentMethod;
use BTCPayServer\Client\StorePaymentMethodLightningNetwork;
use BTCPayServer\Client\StorePaymentMethodOnChain;

// Fill in with your BTCPay Server data.
$apiKey = '';
$host = ''; // e.g. https://your.btcpay-server.tld
$storeId = '';
$cryptoCode = 'BTC';

$updatePayload = [
    'enabled' => false,
    // Needs fixing see, https://github.com/btcpayserver/btcpayserver/issues/2860
    'connectionString' => 'Internal Node', // external would be 'type=clightning;server=tcp://1.1.1.1:27743/',
];

// Payment methods examples.
try {
    echo 'Fetch all OnChain + LightningNetwork payment methods:'.PHP_EOL;
    $clientGlobal = new StorePaymentMethod($host, $apiKey);
    var_dump($clientGlobal->getPaymentMethods($storeId));
    echo PHP_EOL.'Fetch all OnChain payment methods:'.PHP_EOL;
    $clientOC = new StorePaymentMethodOnChain($host, $apiKey);
    var_dump($clientOC->getPaymentMethods($storeId));
    echo PHP_EOL.'Preview OnChain addresses for cryptoCode:'.PHP_EOL;
    var_dump($clientOC->previewPaymentMethodAddresses($storeId, $cryptoCode));
    echo PHP_EOL.'Fetch single OnChain payment method:'.PHP_EOL;
    var_dump($clientOC->getPaymentMethod($storeId, $cryptoCode));
    echo PHP_EOL.'Fetch all LightningNetwork methods:'.PHP_EOL;
    $clientLN = new StorePaymentMethodLightningNetwork($host, $apiKey);
    var_dump($clientLN->getPaymentMethods($storeId));
    echo PHP_EOL.'Fetch single LN payment method:'.PHP_EOL;
    var_dump($clientLN->getPaymentMethods($storeId, $cryptoCode));
    echo PHP_EOL.'Disable BTC LN payment method:'.PHP_EOL;
    var_dump($clientLN->updatePaymentMethod($storeId, $cryptoCode, $updatePayload));
} catch (\Throwable $e) {
    echo 'Error: '.$e->getMessage();
}
