<?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\Value;
use Automattic\WooCommerce\GoogleListingsAndAds\Exception\InvalidValue;
defined( 'ABSPATH' ) || exit;
/**
* Class MCStatus
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Value
*/
class MCStatus implements ValueInterface {
public const APPROVED = 'approved';
public const PARTIALLY_APPROVED = 'partially_approved';
public const EXPIRING = 'expiring';
public const PENDING = 'pending';
public const DISAPPROVED = 'disapproved';
public const NOT_SYNCED = 'not_synced';
public const ALLOWED_VALUES = [
self::APPROVED,
self::PARTIALLY_APPROVED,
self::PENDING,
self::EXPIRING,
self::DISAPPROVED,
self::NOT_SYNCED,
];
/**
* @var string
*/
protected $status;
/**
* MCStatus constructor.
*
* @param string $status The value.
*
* @throws InvalidValue When an invalid status type is provided.
*/
public function __construct( string $status ) {
if ( ! in_array( $status, self::ALLOWED_VALUES, true ) ) {
throw InvalidValue::not_in_allowed_list( $status, self::ALLOWED_VALUES );
}
$this->status = $status;
}
/**
* Get the value of the object.
*
* @return string
*/
public function get(): string {
return $this->status;
}
/**
* @return string
*/
public function __toString(): string {
return $this->get();
}
}