<?php
/**
 * BookiFlex Core
 *
 * @package    BookiFlex
 * @subpackage Core
 * @author     BookiFlex
 * @copyright  Copyright (c) 2025 BookiFlex
 * @license    GPL-2.0-or-later
 *
 * @link       https://bookiflex.com
 */


declare(strict_types=1);
namespace BookiFlex\Core\Contract\Payment;

use Brick\Money\Money;

defined( 'ABSPATH' ) || exit;

interface PaymentInterface
{
    public function getId();
    /**
     * @return PaymentAllocationInterface[]
     */
    public function getPaymentAllocations(): array;

    public function getGatewayName(): string;

    public function getStatus(): PaymentStatus;

    public function getAmount(): Money;

    public function isWaiting(): bool;

    public function isAuthorized(): bool;

    public function isPaid(): bool;
}
