<?php

/**
 * Service for checking whether Card Fields can be used in the current country.
 *
 * @package WooCommerce\PayPalCommerce\CardFields\Helper
 */
declare (strict_types=1);
namespace WooCommerce\PayPalCommerce\CardFields\Helper;

/**
 * Class CardFieldsApplies
 */
class CardFieldsApplies
{
    /**
     * The matrix which countries can be used.
     *
     * @var array
     */
    private $allowed_country_matrix;
    /**
     * 2-letter country code of the shop.
     *
     * @var string
     */
    private $country;
    /**
     * CardFieldsApplies constructor.
     *
     * @param array  $allowed_country_matrix The matrix which countries can be used.
     * @param string $country 2-letter country code of the shop.
     */
    public function __construct(array $allowed_country_matrix, string $country)
    {
        $this->allowed_country_matrix = $allowed_country_matrix;
        $this->country = $country;
    }
    /**
     * Returns whether Card Fields can be used in the current country.
     *
     * @return bool
     */
    public function for_country(): bool
    {
        return array_key_exists($this->country, $this->allowed_country_matrix);
    }
    /**
     * Indicates, whether the current merchant is eligible for Card Fields. Always true,
     * but the filter allows other modules to disable Card Fields site-wide.
     *
     * @return bool
     */
    public function for_merchant(): bool
    {
        return apply_filters('woocommerce_paypal_payments_is_eligible_for_card_fields', \true);
    }
}
