%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/square/square/src/Models/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Square\Models;
use stdClass;
/**
* Defines how discounts are automatically applied to a set of items that match the pricing rule
* during the active time period.
*/
class CatalogPricingRule implements \JsonSerializable
{
/**
* @var string|null
*/
private $name;
/**
* @var string[]|null
*/
private $timePeriodIds;
/**
* @var string|null
*/
private $discountId;
/**
* @var string|null
*/
private $matchProductsId;
/**
* @var string|null
*/
private $applyProductsId;
/**
* @var string|null
*/
private $excludeProductsId;
/**
* @var string|null
*/
private $validFromDate;
/**
* @var string|null
*/
private $validFromLocalTime;
/**
* @var string|null
*/
private $validUntilDate;
/**
* @var string|null
*/
private $validUntilLocalTime;
/**
* @var string|null
*/
private $excludeStrategy;
/**
* @var string[]|null
*/
private $customerGroupIdsAny;
/**
* Returns Name.
*
* User-defined name for the pricing rule. For example, "Buy one get one
* free" or "10% off".
*/
public function getName(): ?string
{
return $this->name;
}
/**
* Sets Name.
*
* User-defined name for the pricing rule. For example, "Buy one get one
* free" or "10% off".
*
* @maps name
*/
public function setName(?string $name): void
{
$this->name = $name;
}
/**
* Returns Time Period Ids.
*
* A list of unique IDs for the catalog time periods when
* this pricing rule is in effect. If left unset, the pricing rule is always
* in effect.
*
* @return string[]|null
*/
public function getTimePeriodIds(): ?array
{
return $this->timePeriodIds;
}
/**
* Sets Time Period Ids.
*
* A list of unique IDs for the catalog time periods when
* this pricing rule is in effect. If left unset, the pricing rule is always
* in effect.
*
* @maps time_period_ids
*
* @param string[]|null $timePeriodIds
*/
public function setTimePeriodIds(?array $timePeriodIds): void
{
$this->timePeriodIds = $timePeriodIds;
}
/**
* Returns Discount Id.
*
* Unique ID for the `CatalogDiscount` to take off
* the price of all matched items.
*/
public function getDiscountId(): ?string
{
return $this->discountId;
}
/**
* Sets Discount Id.
*
* Unique ID for the `CatalogDiscount` to take off
* the price of all matched items.
*
* @maps discount_id
*/
public function setDiscountId(?string $discountId): void
{
$this->discountId = $discountId;
}
/**
* Returns Match Products Id.
*
* Unique ID for the `CatalogProductSet` that will be matched by this rule. A match rule
* matches within the entire cart, and can match multiple times. This field will always be set.
*/
public function getMatchProductsId(): ?string
{
return $this->matchProductsId;
}
/**
* Sets Match Products Id.
*
* Unique ID for the `CatalogProductSet` that will be matched by this rule. A match rule
* matches within the entire cart, and can match multiple times. This field will always be set.
*
* @maps match_products_id
*/
public function setMatchProductsId(?string $matchProductsId): void
{
$this->matchProductsId = $matchProductsId;
}
/**
* Returns Apply Products Id.
*
* __Deprecated__: Please use the `exclude_products_id` field to apply
* an exclude set instead. Exclude sets allow better control over quantity
* ranges and offer more flexibility for which matched items receive a discount.
*
* `CatalogProductSet` to apply the pricing to.
* An apply rule matches within the subset of the cart that fits the match rules (the match set).
* An apply rule can only match once in the match set.
* If not supplied, the pricing will be applied to all products in the match set.
* Other products retain their base price, or a price generated by other rules.
*/
public function getApplyProductsId(): ?string
{
return $this->applyProductsId;
}
/**
* Sets Apply Products Id.
*
* __Deprecated__: Please use the `exclude_products_id` field to apply
* an exclude set instead. Exclude sets allow better control over quantity
* ranges and offer more flexibility for which matched items receive a discount.
*
* `CatalogProductSet` to apply the pricing to.
* An apply rule matches within the subset of the cart that fits the match rules (the match set).
* An apply rule can only match once in the match set.
* If not supplied, the pricing will be applied to all products in the match set.
* Other products retain their base price, or a price generated by other rules.
*
* @maps apply_products_id
*/
public function setApplyProductsId(?string $applyProductsId): void
{
$this->applyProductsId = $applyProductsId;
}
/**
* Returns Exclude Products Id.
*
* `CatalogProductSet` to exclude from the pricing rule.
* An exclude rule matches within the subset of the cart that fits the match rules (the match set).
* An exclude rule can only match once in the match set.
* If not supplied, the pricing will be applied to all products in the match set.
* Other products retain their base price, or a price generated by other rules.
*/
public function getExcludeProductsId(): ?string
{
return $this->excludeProductsId;
}
/**
* Sets Exclude Products Id.
*
* `CatalogProductSet` to exclude from the pricing rule.
* An exclude rule matches within the subset of the cart that fits the match rules (the match set).
* An exclude rule can only match once in the match set.
* If not supplied, the pricing will be applied to all products in the match set.
* Other products retain their base price, or a price generated by other rules.
*
* @maps exclude_products_id
*/
public function setExcludeProductsId(?string $excludeProductsId): void
{
$this->excludeProductsId = $excludeProductsId;
}
/**
* Returns Valid From Date.
*
* Represents the date the Pricing Rule is valid from. Represented in RFC 3339 full-date format (YYYY-
* MM-DD).
*/
public function getValidFromDate(): ?string
{
return $this->validFromDate;
}
/**
* Sets Valid From Date.
*
* Represents the date the Pricing Rule is valid from. Represented in RFC 3339 full-date format (YYYY-
* MM-DD).
*
* @maps valid_from_date
*/
public function setValidFromDate(?string $validFromDate): void
{
$this->validFromDate = $validFromDate;
}
/**
* Returns Valid From Local Time.
*
* Represents the local time the pricing rule should be valid from. Represented in RFC 3339 partial-
* time format
* (HH:MM:SS). Partial seconds will be truncated.
*/
public function getValidFromLocalTime(): ?string
{
return $this->validFromLocalTime;
}
/**
* Sets Valid From Local Time.
*
* Represents the local time the pricing rule should be valid from. Represented in RFC 3339 partial-
* time format
* (HH:MM:SS). Partial seconds will be truncated.
*
* @maps valid_from_local_time
*/
public function setValidFromLocalTime(?string $validFromLocalTime): void
{
$this->validFromLocalTime = $validFromLocalTime;
}
/**
* Returns Valid Until Date.
*
* Represents the date the Pricing Rule is valid until. Represented in RFC 3339 full-date format (YYYY-
* MM-DD).
*/
public function getValidUntilDate(): ?string
{
return $this->validUntilDate;
}
/**
* Sets Valid Until Date.
*
* Represents the date the Pricing Rule is valid until. Represented in RFC 3339 full-date format (YYYY-
* MM-DD).
*
* @maps valid_until_date
*/
public function setValidUntilDate(?string $validUntilDate): void
{
$this->validUntilDate = $validUntilDate;
}
/**
* Returns Valid Until Local Time.
*
* Represents the local time the pricing rule should be valid until. Represented in RFC 3339 partial-
* time format
* (HH:MM:SS). Partial seconds will be truncated.
*/
public function getValidUntilLocalTime(): ?string
{
return $this->validUntilLocalTime;
}
/**
* Sets Valid Until Local Time.
*
* Represents the local time the pricing rule should be valid until. Represented in RFC 3339 partial-
* time format
* (HH:MM:SS). Partial seconds will be truncated.
*
* @maps valid_until_local_time
*/
public function setValidUntilLocalTime(?string $validUntilLocalTime): void
{
$this->validUntilLocalTime = $validUntilLocalTime;
}
/**
* Returns Exclude Strategy.
*
* Indicates which products matched by a CatalogPricingRule
* will be excluded if the pricing rule uses an exclude set.
*/
public function getExcludeStrategy(): ?string
{
return $this->excludeStrategy;
}
/**
* Sets Exclude Strategy.
*
* Indicates which products matched by a CatalogPricingRule
* will be excluded if the pricing rule uses an exclude set.
*
* @maps exclude_strategy
*/
public function setExcludeStrategy(?string $excludeStrategy): void
{
$this->excludeStrategy = $excludeStrategy;
}
/**
* Returns Customer Group Ids Any.
*
* A list of IDs of customer groups, the members of which are eligible for discounts specified in this
* pricing rule.
* Notice that a group ID is generated by the Customers API.
* If this field is not set, the specified discount applies to matched products sold to anyone whether
* the buyer
* has a customer profile created or not. If this `customer_group_ids_any` field is set, the specified
* discount
* applies only to matched products sold to customers belonging to the specified customer groups.
*
* @return string[]|null
*/
public function getCustomerGroupIdsAny(): ?array
{
return $this->customerGroupIdsAny;
}
/**
* Sets Customer Group Ids Any.
*
* A list of IDs of customer groups, the members of which are eligible for discounts specified in this
* pricing rule.
* Notice that a group ID is generated by the Customers API.
* If this field is not set, the specified discount applies to matched products sold to anyone whether
* the buyer
* has a customer profile created or not. If this `customer_group_ids_any` field is set, the specified
* discount
* applies only to matched products sold to customers belonging to the specified customer groups.
*
* @maps customer_group_ids_any
*
* @param string[]|null $customerGroupIdsAny
*/
public function setCustomerGroupIdsAny(?array $customerGroupIdsAny): void
{
$this->customerGroupIdsAny = $customerGroupIdsAny;
}
/**
* Encode this object to JSON
*
* @param bool $asArrayWhenEmpty Whether to serialize this model as an array whenever no fields
* are set. (default: false)
*
* @return mixed
*/
public function jsonSerialize(bool $asArrayWhenEmpty = false)
{
$json = [];
if (isset($this->name)) {
$json['name'] = $this->name;
}
if (isset($this->timePeriodIds)) {
$json['time_period_ids'] = $this->timePeriodIds;
}
if (isset($this->discountId)) {
$json['discount_id'] = $this->discountId;
}
if (isset($this->matchProductsId)) {
$json['match_products_id'] = $this->matchProductsId;
}
if (isset($this->applyProductsId)) {
$json['apply_products_id'] = $this->applyProductsId;
}
if (isset($this->excludeProductsId)) {
$json['exclude_products_id'] = $this->excludeProductsId;
}
if (isset($this->validFromDate)) {
$json['valid_from_date'] = $this->validFromDate;
}
if (isset($this->validFromLocalTime)) {
$json['valid_from_local_time'] = $this->validFromLocalTime;
}
if (isset($this->validUntilDate)) {
$json['valid_until_date'] = $this->validUntilDate;
}
if (isset($this->validUntilLocalTime)) {
$json['valid_until_local_time'] = $this->validUntilLocalTime;
}
if (isset($this->excludeStrategy)) {
$json['exclude_strategy'] = $this->excludeStrategy;
}
if (isset($this->customerGroupIdsAny)) {
$json['customer_group_ids_any'] = $this->customerGroupIdsAny;
}
$json = array_filter($json, function ($val) {
return $val !== null;
});
return (!$asArrayWhenEmpty && empty($json)) ? new stdClass() : $json;
}
}