<?php
/**
* The money object.
*
* @package WooCommerce\PayPalCommerce\ApiClient\Entity
*/
declare (strict_types=1);
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
use WooCommerce\PayPalCommerce\ApiClient\Helper\MoneyFormatter;
/**
* Class Money
*/
class Money
{
/**
* The currency code.
*
* @var string
*/
private $currency_code;
/**
* The value.
*
* @var float
*/
private $value;
/**
* The MoneyFormatter.
*
* @var MoneyFormatter
*/
private $money_formatter;
/**
* Money constructor.
*
* @param float $value The value.
* @param string $currency_code The currency code.
*/
public function __construct(float $value, string $currency_code)
{
$this->value = $value;
$this->currency_code = $currency_code;
$this->money_formatter = new MoneyFormatter();
}
/**
* The value.
*
* @return float
*/
public function value(): float
{
return $this->value;
}
/**
* The value formatted as string for API requests.
*
* @return string
*/
public function value_str(): string
{
return $this->money_formatter->format($this->value, $this->currency_code);
}
/**
* The currency code.
*
* @return string
*/
public function currency_code(): string
{
return $this->currency_code;
}
/**
* Returns the object as array.
*
* @return array
*/
public function to_array(): array
{
return array('currency_code' => $this->currency_code(), 'value' => $this->value_str());
}
}