<?php
/**
 * Payable Interface
 *
 * @package NemtlyBooking
 */

namespace NemtlyBooking\Interfaces;

/**
 * Interface Payable
 *
 * Entities that can be paid for must implement this interface.
 */
interface Payable {
    /**
     * Get the unique ID of the payable entity.
     *
     * @return int
     */
    public function get_id(): int;

    /**
     * Get the type of the payable entity (e.g., 'booking').
     *
     * @return string
     */
    public function get_type(): string;

    /**
     * Get the amount to be paid.
     *
     * @return float
     */
    public function get_payment_amount(): float;

    /**
     * Get the currency code.
     *
     * @return string
     */
    public function get_payment_currency(): string;

    /**
     * Get a description for the payment (for gateways).
     *
     * @return string
     */
    public function get_payment_description(): string;
}
