<?php
declare(strict_types=1);

namespace App\Core\Facades;

use App\Core\Contracts\PaymentProcessorInterface;
use App\Core\Facade;

/**
 * @method static array processPayment(array $data)
 * @method static array voidPayment(int $paymentId, string $reason)
 * @method static bool hasPaid(int $memberId, string $paymentType, ?string $relatedEntityType = null, ?int $relatedEntityId = null)
 * @method static string totalPaid(int $memberId, ?string $paymentType = null)
 * @method static string generateReceiptNumber()
 * @method static string getPaymentTypeLabel(string $type)
 */
final class Payment extends Facade
{
    protected static function getContainerKey(): string
    {
        return PaymentProcessorInterface::class;
    }
}
