diff --git a/changes.md b/changes.md index 4ab38decba7..7844d703a86 100644 --- a/changes.md +++ b/changes.md @@ -182,13 +182,16 @@ - added type `DiscountGroupUpdate` - added type `DiscountGroupUpdateAction` - added type `DiscountGroupSetDescriptionAction` +- added type `DiscountGroupSetIsActiveAction` - added type `DiscountGroupSetKeyAction` - added type `DiscountGroupSetNameAction` - added type `DiscountGroupSetSortOrderAction` - added type `ExpiredCustomerEmailTokenError` - added type `ExpiredCustomerPasswordTokenError` +- added type `MaxDiscountGroupsReachedError` - added type `GraphQLExpiredCustomerEmailTokenError` - added type `GraphQLExpiredCustomerPasswordTokenError` +- added type `GraphQLMaxDiscountGroupsReachedError` - added type `BaseEvent` - added type `CheckoutOrderCreationFailedEvent` - added type `CheckoutPaymentAuthorizationCancelledEvent` @@ -231,6 +234,7 @@ - added type `CustomerStoresSetMessage` - added type `DiscountGroupCreatedMessage` - added type `DiscountGroupDeletedMessage` +- added type `DiscountGroupIsActiveSetMessage` - added type `DiscountGroupKeySetMessage` - added type `DiscountGroupSortOrderSetMessage` - added type `OrderBusinessUnitSetMessage` @@ -284,6 +288,7 @@ - added type `CustomerStoresSetMessagePayload` - added type `DiscountGroupCreatedMessagePayload` - added type `DiscountGroupDeletedMessagePayload` +- added type `DiscountGroupIsActiveSetMessagePayload` - added type `DiscountGroupKeySetMessagePayload` - added type `DiscountGroupSortOrderSetMessagePayload` - added type `OrderBusinessUnitSetMessagePayload` diff --git a/lib/commercetools-api/docs/RequestBuilder.md b/lib/commercetools-api/docs/RequestBuilder.md index 805c575ff69..7ba24bf3de2 100644 --- a/lib/commercetools-api/docs/RequestBuilder.md +++ b/lib/commercetools-api/docs/RequestBuilder.md @@ -3527,6 +3527,8 @@ $request = $builder Creates a DiscountGroup in the Project. This request generates the [DiscountGroupCreated](ctp:api:type:DiscountGroupCreatedMessage) Message. +If the [limit](/../api/limits#discount-groups) for active Discount Groups has been reached, a [MaxDiscountGroupsReached](ctp:api:type:MaxDiscountGroupsReachedError) error is returned. + ### Example ```php diff --git a/lib/commercetools-api/src/Models/Common/BaseResource.php b/lib/commercetools-api/src/Models/Common/BaseResource.php index c306fb7927e..946fc1a0b82 100644 --- a/lib/commercetools-api/src/Models/Common/BaseResource.php +++ b/lib/commercetools-api/src/Models/Common/BaseResource.php @@ -131,6 +131,7 @@ use Commercetools\Api\Models\Message\DiscountCodeKeySetMessage; use Commercetools\Api\Models\Message\DiscountGroupCreatedMessage; use Commercetools\Api\Models\Message\DiscountGroupDeletedMessage; +use Commercetools\Api\Models\Message\DiscountGroupIsActiveSetMessage; use Commercetools\Api\Models\Message\DiscountGroupKeySetMessage; use Commercetools\Api\Models\Message\DiscountGroupSortOrderSetMessage; use Commercetools\Api\Models\Message\InventoryEntryCreatedMessage; diff --git a/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php b/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php index 9cd82d195a1..bb25201a421 100644 --- a/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php +++ b/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php @@ -254,6 +254,8 @@ use Commercetools\Api\Models\Message\DiscountGroupCreatedMessageBuilder; use Commercetools\Api\Models\Message\DiscountGroupDeletedMessage; use Commercetools\Api\Models\Message\DiscountGroupDeletedMessageBuilder; +use Commercetools\Api\Models\Message\DiscountGroupIsActiveSetMessage; +use Commercetools\Api\Models\Message\DiscountGroupIsActiveSetMessageBuilder; use Commercetools\Api\Models\Message\DiscountGroupKeySetMessage; use Commercetools\Api\Models\Message\DiscountGroupKeySetMessageBuilder; use Commercetools\Api\Models\Message\DiscountGroupSortOrderSetMessage; diff --git a/lib/commercetools-api/src/Models/Common/BaseResourceModel.php b/lib/commercetools-api/src/Models/Common/BaseResourceModel.php index e71ee08a5b7..0c3664964de 100644 --- a/lib/commercetools-api/src/Models/Common/BaseResourceModel.php +++ b/lib/commercetools-api/src/Models/Common/BaseResourceModel.php @@ -254,6 +254,8 @@ use Commercetools\Api\Models\Message\DiscountGroupCreatedMessageModel; use Commercetools\Api\Models\Message\DiscountGroupDeletedMessage; use Commercetools\Api\Models\Message\DiscountGroupDeletedMessageModel; +use Commercetools\Api\Models\Message\DiscountGroupIsActiveSetMessage; +use Commercetools\Api\Models\Message\DiscountGroupIsActiveSetMessageModel; use Commercetools\Api\Models\Message\DiscountGroupKeySetMessage; use Commercetools\Api\Models\Message\DiscountGroupKeySetMessageModel; use Commercetools\Api\Models\Message\DiscountGroupSortOrderSetMessage; diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroup.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroup.php index d32061c623a..6a30a146359 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroup.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroup.php @@ -22,6 +22,7 @@ interface DiscountGroup extends BaseResource public const FIELD_KEY = 'key'; public const FIELD_DESCRIPTION = 'description'; public const FIELD_SORT_ORDER = 'sortOrder'; + public const FIELD_IS_ACTIVE = 'isActive'; public const FIELD_LAST_MODIFIED_BY = 'lastModifiedBy'; public const FIELD_CREATED_BY = 'createdBy'; @@ -74,6 +75,14 @@ public function getDescription(); */ public function getSortOrder(); + /** + *
A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + + * @return null|bool + */ + public function getIsActive(); + /** *Date and time (UTC) the DiscountGroup was initially created.
* @@ -136,6 +145,11 @@ public function setDescription(?LocalizedString $description): void; */ public function setSortOrder(?string $sortOrder): void; + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void; + /** * @param ?DateTimeImmutable $createdAt */ diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupBuilder.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupBuilder.php index 4267cf118e5..97c09ea58ee 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupBuilder.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupBuilder.php @@ -77,6 +77,12 @@ final class DiscountGroupBuilder implements Builder */ private $sortOrder; + /** + + * @var ?bool + */ + private $isActive; + /** * @var null|LastModifiedBy|LastModifiedByBuilder @@ -178,6 +184,17 @@ public function getSortOrder() return $this->sortOrder; } + /** + *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + + * @return null|bool + */ + public function getIsActive() + { + return $this->isActive; + } + /** *IDs and references that last modified the DiscountGroup.
* @@ -288,6 +305,17 @@ public function withSortOrder(?string $sortOrder) return $this; } + /** + * @param ?bool $isActive + * @return $this + */ + public function withIsActive(?bool $isActive) + { + $this->isActive = $isActive; + + return $this; + } + /** * @param ?LastModifiedBy $lastModifiedBy * @return $this @@ -365,6 +393,7 @@ public function build(): DiscountGroup $this->key, $this->description instanceof LocalizedStringBuilder ? $this->description->build() : $this->description, $this->sortOrder, + $this->isActive, $this->lastModifiedBy instanceof LastModifiedByBuilder ? $this->lastModifiedBy->build() : $this->lastModifiedBy, $this->createdBy instanceof CreatedByBuilder ? $this->createdBy->build() : $this->createdBy ); diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraft.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraft.php index 322c15dca5d..16728fb573d 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraft.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraft.php @@ -18,6 +18,7 @@ interface DiscountGroupDraft extends JsonObject public const FIELD_KEY = 'key'; public const FIELD_DESCRIPTION = 'description'; public const FIELD_SORT_ORDER = 'sortOrder'; + public const FIELD_IS_ACTIVE = 'isActive'; /** *Name of the DiscountGroup.
@@ -52,6 +53,14 @@ public function getDescription(); */ public function getSortOrder(); + /** + *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + + * @return null|bool + */ + public function getIsActive(); + /** * @param ?LocalizedString $name */ @@ -71,4 +80,9 @@ public function setDescription(?LocalizedString $description): void; * @param ?string $sortOrder */ public function setSortOrder(?string $sortOrder): void; + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void; } diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftBuilder.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftBuilder.php index bd75c818238..b45d1a9d9e3 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftBuilder.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftBuilder.php @@ -46,6 +46,12 @@ final class DiscountGroupDraftBuilder implements Builder */ private $sortOrder; + /** + + * @var ?bool + */ + private $isActive; + /** *Name of the DiscountGroup.
* @@ -91,6 +97,17 @@ public function getSortOrder() return $this->sortOrder; } + /** + *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + + * @return null|bool + */ + public function getIsActive() + { + return $this->isActive; + } + /** * @param ?LocalizedString $name * @return $this @@ -135,6 +152,17 @@ public function withSortOrder(?string $sortOrder) return $this; } + /** + * @param ?bool $isActive + * @return $this + */ + public function withIsActive(?bool $isActive) + { + $this->isActive = $isActive; + + return $this; + } + /** * @deprecated use withName() instead * @return $this @@ -163,7 +191,8 @@ public function build(): DiscountGroupDraft $this->name instanceof LocalizedStringBuilder ? $this->name->build() : $this->name, $this->key, $this->description instanceof LocalizedStringBuilder ? $this->description->build() : $this->description, - $this->sortOrder + $this->sortOrder, + $this->isActive ); } diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftModel.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftModel.php index 24948ed7a40..e3524170d70 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftModel.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupDraftModel.php @@ -45,6 +45,12 @@ final class DiscountGroupDraftModel extends JsonObjectModel implements DiscountG */ protected $sortOrder; + /** + * + * @var ?bool + */ + protected $isActive; + /** * @psalm-suppress MissingParamType @@ -53,12 +59,14 @@ public function __construct( ?LocalizedString $name = null, ?string $key = null, ?LocalizedString $description = null, - ?string $sortOrder = null + ?string $sortOrder = null, + ?bool $isActive = null ) { $this->name = $name; $this->key = $key; $this->description = $description; $this->sortOrder = $sortOrder; + $this->isActive = $isActive; } /** @@ -144,6 +152,26 @@ public function getSortOrder() return $this->sortOrder; } + /** + *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + * + * @return null|bool + */ + public function getIsActive() + { + if (is_null($this->isActive)) { + /** @psalm-var ?bool $data */ + $data = $this->raw(self::FIELD_IS_ACTIVE); + if (is_null($data)) { + return null; + } + $this->isActive = (bool) $data; + } + + return $this->isActive; + } + /** * @param ?LocalizedString $name @@ -176,4 +204,12 @@ public function setSortOrder(?string $sortOrder): void { $this->sortOrder = $sortOrder; } + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void + { + $this->isActive = $isActive; + } } diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupModel.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupModel.php index 4b064c253c4..80ec665413d 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupModel.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupModel.php @@ -76,6 +76,12 @@ final class DiscountGroupModel extends JsonObjectModel implements DiscountGroup */ protected $sortOrder; + /** + * + * @var ?bool + */ + protected $isActive; + /** * * @var ?LastModifiedBy @@ -101,6 +107,7 @@ public function __construct( ?string $key = null, ?LocalizedString $description = null, ?string $sortOrder = null, + ?bool $isActive = null, ?LastModifiedBy $lastModifiedBy = null, ?CreatedBy $createdBy = null ) { @@ -112,6 +119,7 @@ public function __construct( $this->key = $key; $this->description = $description; $this->sortOrder = $sortOrder; + $this->isActive = $isActive; $this->lastModifiedBy = $lastModifiedBy; $this->createdBy = $createdBy; } @@ -287,6 +295,26 @@ public function getSortOrder() return $this->sortOrder; } + /** + *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + * + * @return null|bool + */ + public function getIsActive() + { + if (is_null($this->isActive)) { + /** @psalm-var ?bool $data */ + $data = $this->raw(self::FIELD_IS_ACTIVE); + if (is_null($data)) { + return null; + } + $this->isActive = (bool) $data; + } + + return $this->isActive; + } + /** *IDs and references that last modified the DiscountGroup.
* @@ -394,6 +422,14 @@ public function setSortOrder(?string $sortOrder): void $this->sortOrder = $sortOrder; } + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void + { + $this->isActive = $isActive; + } + /** * @param ?LastModifiedBy $lastModifiedBy */ diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveAction.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveAction.php new file mode 100644 index 00000000000..b82289422ff --- /dev/null +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveAction.php @@ -0,0 +1,31 @@ +New value to set. + *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + + * @return null|bool + */ + public function getIsActive(); + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void; +} diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionBuilder.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionBuilder.php new file mode 100644 index 00000000000..7091bfa46ae --- /dev/null +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionBuilder.php @@ -0,0 +1,64 @@ + + */ +final class DiscountGroupSetIsActiveActionBuilder implements Builder +{ + /** + + * @var ?bool + */ + private $isActive; + + /** + *New value to set.
+ *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + + * @return null|bool + */ + public function getIsActive() + { + return $this->isActive; + } + + /** + * @param ?bool $isActive + * @return $this + */ + public function withIsActive(?bool $isActive) + { + $this->isActive = $isActive; + + return $this; + } + + + public function build(): DiscountGroupSetIsActiveAction + { + return new DiscountGroupSetIsActiveActionModel( + $this->isActive + ); + } + + public static function of(): DiscountGroupSetIsActiveActionBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionCollection.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionCollection.php new file mode 100644 index 00000000000..1e67c9d8553 --- /dev/null +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionCollection.php @@ -0,0 +1,56 @@ + + * @method DiscountGroupSetIsActiveAction current() + * @method DiscountGroupSetIsActiveAction end() + * @method DiscountGroupSetIsActiveAction at($offset) + */ +class DiscountGroupSetIsActiveActionCollection extends DiscountGroupUpdateActionCollection +{ + /** + * @psalm-assert DiscountGroupSetIsActiveAction $value + * @psalm-param DiscountGroupSetIsActiveAction|stdClass $value + * @throws InvalidArgumentException + * + * @return DiscountGroupSetIsActiveActionCollection + */ + public function add($value) + { + if (!$value instanceof DiscountGroupSetIsActiveAction) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?DiscountGroupSetIsActiveAction + */ + protected function mapper() + { + return function (?int $index): ?DiscountGroupSetIsActiveAction { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var DiscountGroupSetIsActiveAction $data */ + $data = DiscountGroupSetIsActiveActionModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionModel.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionModel.php new file mode 100644 index 00000000000..9b98f248111 --- /dev/null +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupSetIsActiveActionModel.php @@ -0,0 +1,94 @@ +isActive = $isActive; + $this->action = $action ?? self::DISCRIMINATOR_VALUE; + } + + /** + * + * @return null|string + */ + public function getAction() + { + if (is_null($this->action)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_ACTION); + if (is_null($data)) { + return null; + } + $this->action = (string) $data; + } + + return $this->action; + } + + /** + *New value to set.
+ *A DiscountGroup must be active for its CartDiscounts to be considered during discount application.
+ * + * + * @return null|bool + */ + public function getIsActive() + { + if (is_null($this->isActive)) { + /** @psalm-var ?bool $data */ + $data = $this->raw(self::FIELD_IS_ACTIVE); + if (is_null($data)) { + return null; + } + $this->isActive = (bool) $data; + } + + return $this->isActive; + } + + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void + { + $this->isActive = $isActive; + } +} diff --git a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupUpdateActionModel.php b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupUpdateActionModel.php index 9e9eac0c11e..01542e0f6c1 100644 --- a/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupUpdateActionModel.php +++ b/lib/commercetools-api/src/Models/DiscountGroup/DiscountGroupUpdateActionModel.php @@ -32,6 +32,7 @@ final class DiscountGroupUpdateActionModel extends JsonObjectModel implements Di */ private static $discriminatorClasses = [ 'setDescription' => DiscountGroupSetDescriptionActionModel::class, + 'setIsActive' => DiscountGroupSetIsActiveActionModel::class, 'setKey' => DiscountGroupSetKeyActionModel::class, 'setName' => DiscountGroupSetNameActionModel::class, 'setSortOrder' => DiscountGroupSetSortOrderActionModel::class, diff --git a/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php b/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php index e8c833946c6..b65283f2e19 100644 --- a/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php +++ b/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php @@ -83,6 +83,7 @@ final class ErrorObjectModel extends JsonObjectModel implements ErrorObject 'LockedField' => LockedFieldErrorModel::class, 'MatchingPriceNotFound' => MatchingPriceNotFoundErrorModel::class, 'MaxCartDiscountsReached' => MaxCartDiscountsReachedErrorModel::class, + 'MaxDiscountGroupsReached' => MaxDiscountGroupsReachedErrorModel::class, 'MaxResourceLimitExceeded' => MaxResourceLimitExceededErrorModel::class, 'MaxStoreReferencesReached' => MaxStoreReferencesReachedErrorModel::class, 'MissingRoleOnChannel' => MissingRoleOnChannelErrorModel::class, diff --git a/lib/commercetools-api/src/Models/Error/GraphQLErrorObjectModel.php b/lib/commercetools-api/src/Models/Error/GraphQLErrorObjectModel.php index 646508a0b7f..120c06f4a16 100644 --- a/lib/commercetools-api/src/Models/Error/GraphQLErrorObjectModel.php +++ b/lib/commercetools-api/src/Models/Error/GraphQLErrorObjectModel.php @@ -77,6 +77,7 @@ final class GraphQLErrorObjectModel extends JsonObjectModel implements GraphQLEr 'LockedField' => GraphQLLockedFieldErrorModel::class, 'MatchingPriceNotFound' => GraphQLMatchingPriceNotFoundErrorModel::class, 'MaxCartDiscountsReached' => GraphQLMaxCartDiscountsReachedErrorModel::class, + 'MaxDiscountGroupsReached' => GraphQLMaxDiscountGroupsReachedErrorModel::class, 'MaxResourceLimitExceeded' => GraphQLMaxResourceLimitExceededErrorModel::class, 'MaxStoreReferencesReached' => GraphQLMaxStoreReferencesReachedErrorModel::class, 'MissingRoleOnChannel' => GraphQLMissingRoleOnChannelErrorModel::class, diff --git a/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedError.php b/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedError.php new file mode 100644 index 00000000000..ce4395eaa48 --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedError.php @@ -0,0 +1,21 @@ + + */ +final class GraphQLMaxDiscountGroupsReachedErrorBuilder implements Builder +{ + public function build(): GraphQLMaxDiscountGroupsReachedError + { + return new GraphQLMaxDiscountGroupsReachedErrorModel( + ); + } + + public static function of(): GraphQLMaxDiscountGroupsReachedErrorBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedErrorCollection.php b/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedErrorCollection.php new file mode 100644 index 00000000000..46ff34859ca --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedErrorCollection.php @@ -0,0 +1,56 @@ + + * @method GraphQLMaxDiscountGroupsReachedError current() + * @method GraphQLMaxDiscountGroupsReachedError end() + * @method GraphQLMaxDiscountGroupsReachedError at($offset) + */ +class GraphQLMaxDiscountGroupsReachedErrorCollection extends GraphQLErrorObjectCollection +{ + /** + * @psalm-assert GraphQLMaxDiscountGroupsReachedError $value + * @psalm-param GraphQLMaxDiscountGroupsReachedError|stdClass $value + * @throws InvalidArgumentException + * + * @return GraphQLMaxDiscountGroupsReachedErrorCollection + */ + public function add($value) + { + if (!$value instanceof GraphQLMaxDiscountGroupsReachedError) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?GraphQLMaxDiscountGroupsReachedError + */ + protected function mapper() + { + return function (?int $index): ?GraphQLMaxDiscountGroupsReachedError { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var GraphQLMaxDiscountGroupsReachedError $data */ + $data = GraphQLMaxDiscountGroupsReachedErrorModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedErrorModel.php b/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedErrorModel.php new file mode 100644 index 00000000000..bccfa2fe259 --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/GraphQLMaxDiscountGroupsReachedErrorModel.php @@ -0,0 +1,71 @@ +code = $code ?? self::DISCRIMINATOR_VALUE; + } + + /** + * + * @return null|string + */ + public function getCode() + { + if (is_null($this->code)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_CODE); + if (is_null($data)) { + return null; + } + $this->code = (string) $data; + } + + return $this->code; + } + + + + /** + * @return mixed + */ + public function by(string $key) + { + $data = $this->raw($key); + if (is_null($data)) { + return null; + } + + return $data; + } +} diff --git a/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedError.php b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedError.php new file mode 100644 index 00000000000..b6df7cd4818 --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedError.php @@ -0,0 +1,34 @@ +"Maximum number of active discount groups reached ($max)."
+ *
+
+ * @return null|string
+ */
+ public function getMessage();
+
+ /**
+ * @param ?string $message
+ */
+ public function setMessage(?string $message): void;
+}
diff --git a/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorBuilder.php b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorBuilder.php
new file mode 100644
index 00000000000..45a96e5b4f6
--- /dev/null
+++ b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorBuilder.php
@@ -0,0 +1,63 @@
+
+ */
+final class MaxDiscountGroupsReachedErrorBuilder implements Builder
+{
+ /**
+
+ * @var ?string
+ */
+ private $message;
+
+ /**
+ * "Maximum number of active discount groups reached ($max)."
"Maximum number of active discount groups reached ($max)."
isActive value of the DiscountGroup after the Set IsActive update action.
+ *
+
+ * @return null|bool
+ */
+ public function getIsActive();
+
+ /**
+ * isActive value of the DiscountGroup before the Set IsActive update action.
Unique identifier of the Message. Can be used to track which Messages have been processed.
+ * + + * @return null|string + */ + public function getId() + { + return $this->id; + } + + /** + *Version of a resource. In case of Messages, this is always 1.
Date and time (UTC) the Message was generated.
+ * + + * @return null|DateTimeImmutable + */ + public function getCreatedAt() + { + return $this->createdAt; + } + + /** + *Value of createdAt.
IDs and references that last modified the Message.
+ * + + * @return null|LastModifiedBy + */ + public function getLastModifiedBy() + { + return $this->lastModifiedBy instanceof LastModifiedByBuilder ? $this->lastModifiedBy->build() : $this->lastModifiedBy; + } + + /** + *IDs and references that created the Message.
+ * + + * @return null|CreatedBy + */ + public function getCreatedBy() + { + return $this->createdBy instanceof CreatedByBuilder ? $this->createdBy->build() : $this->createdBy; + } + + /** + *Message number in relation to other Messages for a given resource. The sequenceNumber of the next Message for the resource is the successor of the sequenceNumber of the current Message. Meaning, the sequenceNumber of the next Message equals the sequenceNumber of the current Message + 1.
+ * sequenceNumber can be used to ensure that Messages are processed in the correct order for a particular resource.
Reference to the resource on which the change or action was performed.
+ * + + * @return null|Reference + */ + public function getResource() + { + return $this->resource instanceof ReferenceBuilder ? $this->resource->build() : $this->resource; + } + + /** + *Version of the resource on which the change or action was performed.
+ * + + * @return null|int + */ + public function getResourceVersion() + { + return $this->resourceVersion; + } + + /** + *User-provided identifiers of the resource, such as key or externalId. Only present if the resource has such identifiers.
isActive value of the DiscountGroup after the Set IsActive update action.
isActive value of the DiscountGroup before the Set IsActive update action.
Unique identifier of the Message. Can be used to track which Messages have been processed.
+ * + * + * @return null|string + */ + public function getId() + { + if (is_null($this->id)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_ID); + if (is_null($data)) { + return null; + } + $this->id = (string) $data; + } + + return $this->id; + } + + /** + *Version of a resource. In case of Messages, this is always 1.
Date and time (UTC) the Message was generated.
+ * + * + * @return null|DateTimeImmutable + */ + public function getCreatedAt() + { + if (is_null($this->createdAt)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_CREATED_AT); + if (is_null($data)) { + return null; + } + $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data); + if (false === $data) { + return null; + } + $this->createdAt = $data; + } + + return $this->createdAt; + } + + /** + *Value of createdAt.
IDs and references that last modified the Message.
+ * + * + * @return null|LastModifiedBy + */ + public function getLastModifiedBy() + { + if (is_null($this->lastModifiedBy)) { + /** @psalm-var stdClass|arrayIDs and references that created the Message.
+ * + * + * @return null|CreatedBy + */ + public function getCreatedBy() + { + if (is_null($this->createdBy)) { + /** @psalm-var stdClass|arrayMessage number in relation to other Messages for a given resource. The sequenceNumber of the next Message for the resource is the successor of the sequenceNumber of the current Message. Meaning, the sequenceNumber of the next Message equals the sequenceNumber of the current Message + 1.
+ * sequenceNumber can be used to ensure that Messages are processed in the correct order for a particular resource.
Reference to the resource on which the change or action was performed.
+ * + * + * @return null|Reference + */ + public function getResource() + { + if (is_null($this->resource)) { + /** @psalm-var stdClass|arrayVersion of the resource on which the change or action was performed.
+ * + * + * @return null|int + */ + public function getResourceVersion() + { + if (is_null($this->resourceVersion)) { + /** @psalm-var ?int $data */ + $data = $this->raw(self::FIELD_RESOURCE_VERSION); + if (is_null($data)) { + return null; + } + $this->resourceVersion = (int) $data; + } + + return $this->resourceVersion; + } + + /** + *Message Type of the Message.
+ * + * + * @return null|string + */ + public function getType() + { + if (is_null($this->type)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_TYPE); + if (is_null($data)) { + return null; + } + $this->type = (string) $data; + } + + return $this->type; + } + + /** + *User-provided identifiers of the resource, such as key or externalId. Only present if the resource has such identifiers.
isActive value of the DiscountGroup after the Set IsActive update action.
isActive value of the DiscountGroup before the Set IsActive update action.
isActive value of the DiscountGroup after the Set IsActive update action.
+ *
+
+ * @return null|bool
+ */
+ public function getIsActive();
+
+ /**
+ * isActive value of the DiscountGroup before the Set IsActive update action.
isActive value of the DiscountGroup after the Set IsActive update action.
isActive value of the DiscountGroup before the Set IsActive update action.
isActive value of the DiscountGroup after the Set IsActive update action.
isActive value of the DiscountGroup before the Set IsActive update action.