<?php

namespace SplitPay\Contracts;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

interface OrderAdapterInterface {

	public function getOrderId(): int;

	/** @return TransferableItem[] */
	public function getItems(): array;

	public function getSubtotal(): float;

	public function getShippingTotal(): float;

	public function getShippingMethods(): array;

	public function getTaxItems(): array;

	public function getCoupons(): array;

	public function getCurrency(): string;

	public function getCustomerInfo(): array;

	/** @return mixed */
	public function getOrderMeta( string $key );

	public function setOrderMeta( string $key, $value ): void;

	public function addOrderNote( string $note ): void;

	public function isTransferProcessed(): bool;

	public function markTransferProcessed(): void;
}
