<?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\Taxation;

use Brick\Money\Money;

defined( 'ABSPATH' ) || exit;

interface TaxableInterface
{
    public function getTaxableAmount(): Money; // Amount to be taxed
    public function getTaxableType(): string; // Type of the taxable amount, e.g. 'accommodation', 'service', 'reservation', 'fee', etc.
    public function getTaxContext(): array; // Additional data for tax calculation
}
