<?php
/**
* The products of a seller status.
*
* @package WooCommerce\PayPalCommerce\ApiClient\Entity
*/
declare (strict_types=1);
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
/**
* Class SellerStatusProduct
*/
class SellerStatusProduct
{
const VETTING_STATUS_APPROVED = 'APPROVED';
const VETTING_STATUS_PENDING = 'PENDING';
const VETTING_STATUS_DECLINED = 'DECLINED';
const VETTING_STATUS_SUBSCRIBED = 'SUBSCRIBED';
const VETTING_STATUS_IN_REVIEW = 'IN_REVIEW';
const VETTING_STATUS_DENIED = 'DENIED';
/**
* The name of the product.
*
* @var string
*/
private $name;
/**
* The vetting status of the product.
*
* @var string
*/
private $vetting_status;
/**
* The capabilities of the product.
*
* @var string[]
*/
private $capabilities;
/**
* SellerStatusProduct constructor.
*
* @param string $name The name of the product.
* @param string $vetting_status The vetting status of the product.
* @param string[] $capabilities The capabilities of the product.
*/
public function __construct(string $name, string $vetting_status, array $capabilities)
{
foreach ($capabilities as $key => $capability) {
if (is_string($capability)) {
continue;
}
unset($capabilities[$key]);
}
$this->name = $name;
$this->vetting_status = $vetting_status;
$this->capabilities = $capabilities;
}
/**
* Returns the name of the product.
*
* @return string
*/
public function name(): string
{
return $this->name;
}
/**
* Returns the vetting status for this product.
*
* @return string
*/
public function vetting_status(): string
{
return $this->vetting_status;
}
/**
* Returns the capabilities of this product.
*
* @return string[]
*/
public function capabilities(): array
{
return $this->capabilities;
}
/**
* Returns the entity as array.
*
* @return array
*/
public function to_array(): array
{
return array('name' => $this->name(), 'vetting_status' => $this->vetting_status(), 'capabilities' => $this->capabilities());
}
}