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)."

+ * + + * @return null|string + */ + public function getMessage() + { + return $this->message; + } + + /** + * @param ?string $message + * @return $this + */ + public function withMessage(?string $message) + { + $this->message = $message; + + return $this; + } + + + public function build(): MaxDiscountGroupsReachedError + { + return new MaxDiscountGroupsReachedErrorModel( + $this->message + ); + } + + public static function of(): MaxDiscountGroupsReachedErrorBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorCollection.php b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorCollection.php new file mode 100644 index 00000000000..d09cba016d7 --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorCollection.php @@ -0,0 +1,56 @@ + + * @method MaxDiscountGroupsReachedError current() + * @method MaxDiscountGroupsReachedError end() + * @method MaxDiscountGroupsReachedError at($offset) + */ +class MaxDiscountGroupsReachedErrorCollection extends ErrorObjectCollection +{ + /** + * @psalm-assert MaxDiscountGroupsReachedError $value + * @psalm-param MaxDiscountGroupsReachedError|stdClass $value + * @throws InvalidArgumentException + * + * @return MaxDiscountGroupsReachedErrorCollection + */ + public function add($value) + { + if (!$value instanceof MaxDiscountGroupsReachedError) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?MaxDiscountGroupsReachedError + */ + protected function mapper() + { + return function (?int $index): ?MaxDiscountGroupsReachedError { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var MaxDiscountGroupsReachedError $data */ + $data = MaxDiscountGroupsReachedErrorModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorModel.php b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorModel.php new file mode 100644 index 00000000000..c9ba8441f9d --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/MaxDiscountGroupsReachedErrorModel.php @@ -0,0 +1,106 @@ +message = $message; + $this->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; + } + + /** + *

"Maximum number of active discount groups reached ($max)."

+ * + * + * @return null|string + */ + public function getMessage() + { + if (is_null($this->message)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_MESSAGE); + if (is_null($data)) { + return null; + } + $this->message = (string) $data; + } + + return $this->message; + } + + + /** + * @param ?string $message + */ + public function setMessage(?string $message): void + { + $this->message = $message; + } + + /** + * @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/Message/DiscountGroupIsActiveSetMessage.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessage.php new file mode 100644 index 00000000000..8a08382865e --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessage.php @@ -0,0 +1,44 @@ +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.

+ * + + * @return null|bool + */ + public function getOldIsActive(); + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void; + + /** + * @param ?bool $oldIsActive + */ + public function setOldIsActive(?bool $oldIsActive): void; +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageBuilder.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageBuilder.php new file mode 100644 index 00000000000..27de0cecb01 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageBuilder.php @@ -0,0 +1,433 @@ + + */ +final class DiscountGroupIsActiveSetMessageBuilder implements Builder +{ + /** + + * @var ?string + */ + private $id; + + /** + + * @var ?int + */ + private $version; + + /** + + * @var ?DateTimeImmutable + */ + private $createdAt; + + /** + + * @var ?DateTimeImmutable + */ + private $lastModifiedAt; + + /** + + * @var null|LastModifiedBy|LastModifiedByBuilder + */ + private $lastModifiedBy; + + /** + + * @var null|CreatedBy|CreatedByBuilder + */ + private $createdBy; + + /** + + * @var ?int + */ + private $sequenceNumber; + + /** + + * @var null|Reference|ReferenceBuilder + */ + private $resource; + + /** + + * @var ?int + */ + private $resourceVersion; + + /** + + * @var null|UserProvidedIdentifiers|UserProvidedIdentifiersBuilder + */ + private $resourceUserProvidedIdentifiers; + + /** + + * @var ?bool + */ + private $isActive; + + /** + + * @var ?bool + */ + private $oldIsActive; + + /** + *

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.

+ * + + * @return null|int + */ + public function getVersion() + { + return $this->version; + } + + /** + *

Date and time (UTC) the Message was generated.

+ * + + * @return null|DateTimeImmutable + */ + public function getCreatedAt() + { + return $this->createdAt; + } + + /** + *

Value of createdAt.

+ * + + * @return null|DateTimeImmutable + */ + public function getLastModifiedAt() + { + return $this->lastModifiedAt; + } + + /** + *

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.

+ * + + * @return null|int + */ + public function getSequenceNumber() + { + return $this->sequenceNumber; + } + + /** + *

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.

+ * + + * @return null|UserProvidedIdentifiers + */ + public function getResourceUserProvidedIdentifiers() + { + return $this->resourceUserProvidedIdentifiers instanceof UserProvidedIdentifiersBuilder ? $this->resourceUserProvidedIdentifiers->build() : $this->resourceUserProvidedIdentifiers; + } + + /** + *

isActive value of the DiscountGroup after the Set IsActive update action.

+ * + + * @return null|bool + */ + public function getIsActive() + { + return $this->isActive; + } + + /** + *

isActive value of the DiscountGroup before the Set IsActive update action.

+ * + + * @return null|bool + */ + public function getOldIsActive() + { + return $this->oldIsActive; + } + + /** + * @param ?string $id + * @return $this + */ + public function withId(?string $id) + { + $this->id = $id; + + return $this; + } + + /** + * @param ?int $version + * @return $this + */ + public function withVersion(?int $version) + { + $this->version = $version; + + return $this; + } + + /** + * @param ?DateTimeImmutable $createdAt + * @return $this + */ + public function withCreatedAt(?DateTimeImmutable $createdAt) + { + $this->createdAt = $createdAt; + + return $this; + } + + /** + * @param ?DateTimeImmutable $lastModifiedAt + * @return $this + */ + public function withLastModifiedAt(?DateTimeImmutable $lastModifiedAt) + { + $this->lastModifiedAt = $lastModifiedAt; + + return $this; + } + + /** + * @param ?LastModifiedBy $lastModifiedBy + * @return $this + */ + public function withLastModifiedBy(?LastModifiedBy $lastModifiedBy) + { + $this->lastModifiedBy = $lastModifiedBy; + + return $this; + } + + /** + * @param ?CreatedBy $createdBy + * @return $this + */ + public function withCreatedBy(?CreatedBy $createdBy) + { + $this->createdBy = $createdBy; + + return $this; + } + + /** + * @param ?int $sequenceNumber + * @return $this + */ + public function withSequenceNumber(?int $sequenceNumber) + { + $this->sequenceNumber = $sequenceNumber; + + return $this; + } + + /** + * @param ?Reference $resource + * @return $this + */ + public function withResource(?Reference $resource) + { + $this->resource = $resource; + + return $this; + } + + /** + * @param ?int $resourceVersion + * @return $this + */ + public function withResourceVersion(?int $resourceVersion) + { + $this->resourceVersion = $resourceVersion; + + return $this; + } + + /** + * @param ?UserProvidedIdentifiers $resourceUserProvidedIdentifiers + * @return $this + */ + public function withResourceUserProvidedIdentifiers(?UserProvidedIdentifiers $resourceUserProvidedIdentifiers) + { + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + + return $this; + } + + /** + * @param ?bool $isActive + * @return $this + */ + public function withIsActive(?bool $isActive) + { + $this->isActive = $isActive; + + return $this; + } + + /** + * @param ?bool $oldIsActive + * @return $this + */ + public function withOldIsActive(?bool $oldIsActive) + { + $this->oldIsActive = $oldIsActive; + + return $this; + } + + /** + * @deprecated use withLastModifiedBy() instead + * @return $this + */ + public function withLastModifiedByBuilder(?LastModifiedByBuilder $lastModifiedBy) + { + $this->lastModifiedBy = $lastModifiedBy; + + return $this; + } + + /** + * @deprecated use withCreatedBy() instead + * @return $this + */ + public function withCreatedByBuilder(?CreatedByBuilder $createdBy) + { + $this->createdBy = $createdBy; + + return $this; + } + + /** + * @deprecated use withResource() instead + * @return $this + */ + public function withResourceBuilder(?ReferenceBuilder $resource) + { + $this->resource = $resource; + + return $this; + } + + /** + * @deprecated use withResourceUserProvidedIdentifiers() instead + * @return $this + */ + public function withResourceUserProvidedIdentifiersBuilder(?UserProvidedIdentifiersBuilder $resourceUserProvidedIdentifiers) + { + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + + return $this; + } + + public function build(): DiscountGroupIsActiveSetMessage + { + return new DiscountGroupIsActiveSetMessageModel( + $this->id, + $this->version, + $this->createdAt, + $this->lastModifiedAt, + $this->lastModifiedBy instanceof LastModifiedByBuilder ? $this->lastModifiedBy->build() : $this->lastModifiedBy, + $this->createdBy instanceof CreatedByBuilder ? $this->createdBy->build() : $this->createdBy, + $this->sequenceNumber, + $this->resource instanceof ReferenceBuilder ? $this->resource->build() : $this->resource, + $this->resourceVersion, + $this->resourceUserProvidedIdentifiers instanceof UserProvidedIdentifiersBuilder ? $this->resourceUserProvidedIdentifiers->build() : $this->resourceUserProvidedIdentifiers, + $this->isActive, + $this->oldIsActive + ); + } + + public static function of(): DiscountGroupIsActiveSetMessageBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageCollection.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageCollection.php new file mode 100644 index 00000000000..bed50522acb --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageCollection.php @@ -0,0 +1,56 @@ + + * @method DiscountGroupIsActiveSetMessage current() + * @method DiscountGroupIsActiveSetMessage end() + * @method DiscountGroupIsActiveSetMessage at($offset) + */ +class DiscountGroupIsActiveSetMessageCollection extends MessageCollection +{ + /** + * @psalm-assert DiscountGroupIsActiveSetMessage $value + * @psalm-param DiscountGroupIsActiveSetMessage|stdClass $value + * @throws InvalidArgumentException + * + * @return DiscountGroupIsActiveSetMessageCollection + */ + public function add($value) + { + if (!$value instanceof DiscountGroupIsActiveSetMessage) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?DiscountGroupIsActiveSetMessage + */ + protected function mapper() + { + return function (?int $index): ?DiscountGroupIsActiveSetMessage { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var DiscountGroupIsActiveSetMessage $data */ + $data = DiscountGroupIsActiveSetMessageModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageModel.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageModel.php new file mode 100644 index 00000000000..7bfda53bd2a --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessageModel.php @@ -0,0 +1,526 @@ +id = $id; + $this->version = $version; + $this->createdAt = $createdAt; + $this->lastModifiedAt = $lastModifiedAt; + $this->lastModifiedBy = $lastModifiedBy; + $this->createdBy = $createdBy; + $this->sequenceNumber = $sequenceNumber; + $this->resource = $resource; + $this->resourceVersion = $resourceVersion; + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + $this->isActive = $isActive; + $this->oldIsActive = $oldIsActive; + $this->type = $type ?? self::DISCRIMINATOR_VALUE; + } + + /** + *

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.

+ * + * + * @return null|int + */ + public function getVersion() + { + if (is_null($this->version)) { + /** @psalm-var ?int $data */ + $data = $this->raw(self::FIELD_VERSION); + if (is_null($data)) { + return null; + } + $this->version = (int) $data; + } + + return $this->version; + } + + /** + *

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.

+ * + * + * @return null|DateTimeImmutable + */ + public function getLastModifiedAt() + { + if (is_null($this->lastModifiedAt)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_LAST_MODIFIED_AT); + if (is_null($data)) { + return null; + } + $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data); + if (false === $data) { + return null; + } + $this->lastModifiedAt = $data; + } + + return $this->lastModifiedAt; + } + + /** + *

IDs and references that last modified the Message.

+ * + * + * @return null|LastModifiedBy + */ + public function getLastModifiedBy() + { + if (is_null($this->lastModifiedBy)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_LAST_MODIFIED_BY); + if (is_null($data)) { + return null; + } + + $this->lastModifiedBy = LastModifiedByModel::of($data); + } + + return $this->lastModifiedBy; + } + + /** + *

IDs and references that created the Message.

+ * + * + * @return null|CreatedBy + */ + public function getCreatedBy() + { + if (is_null($this->createdBy)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_CREATED_BY); + if (is_null($data)) { + return null; + } + + $this->createdBy = CreatedByModel::of($data); + } + + return $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.

+ * + * + * @return null|int + */ + public function getSequenceNumber() + { + if (is_null($this->sequenceNumber)) { + /** @psalm-var ?int $data */ + $data = $this->raw(self::FIELD_SEQUENCE_NUMBER); + if (is_null($data)) { + return null; + } + $this->sequenceNumber = (int) $data; + } + + return $this->sequenceNumber; + } + + /** + *

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|array|null $data */ + $data = $this->raw(self::FIELD_RESOURCE); + if (is_null($data)) { + return null; + } + $className = ReferenceModel::resolveDiscriminatorClass($data); + $this->resource = $className::of($data); + } + + return $this->resource; + } + + /** + *

Version 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.

+ * + * + * @return null|UserProvidedIdentifiers + */ + public function getResourceUserProvidedIdentifiers() + { + if (is_null($this->resourceUserProvidedIdentifiers)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_RESOURCE_USER_PROVIDED_IDENTIFIERS); + if (is_null($data)) { + return null; + } + + $this->resourceUserProvidedIdentifiers = UserProvidedIdentifiersModel::of($data); + } + + return $this->resourceUserProvidedIdentifiers; + } + + /** + *

isActive value of the DiscountGroup after the Set IsActive update action.

+ * + * + * @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; + } + + /** + *

isActive value of the DiscountGroup before the Set IsActive update action.

+ * + * + * @return null|bool + */ + public function getOldIsActive() + { + if (is_null($this->oldIsActive)) { + /** @psalm-var ?bool $data */ + $data = $this->raw(self::FIELD_OLD_IS_ACTIVE); + if (is_null($data)) { + return null; + } + $this->oldIsActive = (bool) $data; + } + + return $this->oldIsActive; + } + + + /** + * @param ?string $id + */ + public function setId(?string $id): void + { + $this->id = $id; + } + + /** + * @param ?int $version + */ + public function setVersion(?int $version): void + { + $this->version = $version; + } + + /** + * @param ?DateTimeImmutable $createdAt + */ + public function setCreatedAt(?DateTimeImmutable $createdAt): void + { + $this->createdAt = $createdAt; + } + + /** + * @param ?DateTimeImmutable $lastModifiedAt + */ + public function setLastModifiedAt(?DateTimeImmutable $lastModifiedAt): void + { + $this->lastModifiedAt = $lastModifiedAt; + } + + /** + * @param ?LastModifiedBy $lastModifiedBy + */ + public function setLastModifiedBy(?LastModifiedBy $lastModifiedBy): void + { + $this->lastModifiedBy = $lastModifiedBy; + } + + /** + * @param ?CreatedBy $createdBy + */ + public function setCreatedBy(?CreatedBy $createdBy): void + { + $this->createdBy = $createdBy; + } + + /** + * @param ?int $sequenceNumber + */ + public function setSequenceNumber(?int $sequenceNumber): void + { + $this->sequenceNumber = $sequenceNumber; + } + + /** + * @param ?Reference $resource + */ + public function setResource(?Reference $resource): void + { + $this->resource = $resource; + } + + /** + * @param ?int $resourceVersion + */ + public function setResourceVersion(?int $resourceVersion): void + { + $this->resourceVersion = $resourceVersion; + } + + /** + * @param ?UserProvidedIdentifiers $resourceUserProvidedIdentifiers + */ + public function setResourceUserProvidedIdentifiers(?UserProvidedIdentifiers $resourceUserProvidedIdentifiers): void + { + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + } + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void + { + $this->isActive = $isActive; + } + + /** + * @param ?bool $oldIsActive + */ + public function setOldIsActive(?bool $oldIsActive): void + { + $this->oldIsActive = $oldIsActive; + } + + + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + $data = $this->toArray(); + if (isset($data[Message::FIELD_CREATED_AT]) && $data[Message::FIELD_CREATED_AT] instanceof \DateTimeImmutable) { + $data[Message::FIELD_CREATED_AT] = $data[Message::FIELD_CREATED_AT]->setTimeZone(new \DateTimeZone('UTC'))->format('c'); + } + + if (isset($data[Message::FIELD_LAST_MODIFIED_AT]) && $data[Message::FIELD_LAST_MODIFIED_AT] instanceof \DateTimeImmutable) { + $data[Message::FIELD_LAST_MODIFIED_AT] = $data[Message::FIELD_LAST_MODIFIED_AT]->setTimeZone(new \DateTimeZone('UTC'))->format('c'); + } + return (object) $data; + } +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayload.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayload.php new file mode 100644 index 00000000000..937c61ab1c5 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayload.php @@ -0,0 +1,44 @@ +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.

+ * + + * @return null|bool + */ + public function getOldIsActive(); + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void; + + /** + * @param ?bool $oldIsActive + */ + public function setOldIsActive(?bool $oldIsActive): void; +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadBuilder.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadBuilder.php new file mode 100644 index 00000000000..68d0ec96f32 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadBuilder.php @@ -0,0 +1,92 @@ + + */ +final class DiscountGroupIsActiveSetMessagePayloadBuilder implements Builder +{ + /** + + * @var ?bool + */ + private $isActive; + + /** + + * @var ?bool + */ + private $oldIsActive; + + /** + *

isActive value of the DiscountGroup after the Set IsActive update action.

+ * + + * @return null|bool + */ + public function getIsActive() + { + return $this->isActive; + } + + /** + *

isActive value of the DiscountGroup before the Set IsActive update action.

+ * + + * @return null|bool + */ + public function getOldIsActive() + { + return $this->oldIsActive; + } + + /** + * @param ?bool $isActive + * @return $this + */ + public function withIsActive(?bool $isActive) + { + $this->isActive = $isActive; + + return $this; + } + + /** + * @param ?bool $oldIsActive + * @return $this + */ + public function withOldIsActive(?bool $oldIsActive) + { + $this->oldIsActive = $oldIsActive; + + return $this; + } + + + public function build(): DiscountGroupIsActiveSetMessagePayload + { + return new DiscountGroupIsActiveSetMessagePayloadModel( + $this->isActive, + $this->oldIsActive + ); + } + + public static function of(): DiscountGroupIsActiveSetMessagePayloadBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadCollection.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadCollection.php new file mode 100644 index 00000000000..e9716fe6de7 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadCollection.php @@ -0,0 +1,56 @@ + + * @method DiscountGroupIsActiveSetMessagePayload current() + * @method DiscountGroupIsActiveSetMessagePayload end() + * @method DiscountGroupIsActiveSetMessagePayload at($offset) + */ +class DiscountGroupIsActiveSetMessagePayloadCollection extends MessagePayloadCollection +{ + /** + * @psalm-assert DiscountGroupIsActiveSetMessagePayload $value + * @psalm-param DiscountGroupIsActiveSetMessagePayload|stdClass $value + * @throws InvalidArgumentException + * + * @return DiscountGroupIsActiveSetMessagePayloadCollection + */ + public function add($value) + { + if (!$value instanceof DiscountGroupIsActiveSetMessagePayload) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?DiscountGroupIsActiveSetMessagePayload + */ + protected function mapper() + { + return function (?int $index): ?DiscountGroupIsActiveSetMessagePayload { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var DiscountGroupIsActiveSetMessagePayload $data */ + $data = DiscountGroupIsActiveSetMessagePayloadModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadModel.php b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadModel.php new file mode 100644 index 00000000000..d938925dfa3 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/DiscountGroupIsActiveSetMessagePayloadModel.php @@ -0,0 +1,129 @@ +isActive = $isActive; + $this->oldIsActive = $oldIsActive; + $this->type = $type ?? self::DISCRIMINATOR_VALUE; + } + + /** + * + * @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; + } + + /** + *

isActive value of the DiscountGroup after the Set IsActive update action.

+ * + * + * @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; + } + + /** + *

isActive value of the DiscountGroup before the Set IsActive update action.

+ * + * + * @return null|bool + */ + public function getOldIsActive() + { + if (is_null($this->oldIsActive)) { + /** @psalm-var ?bool $data */ + $data = $this->raw(self::FIELD_OLD_IS_ACTIVE); + if (is_null($data)) { + return null; + } + $this->oldIsActive = (bool) $data; + } + + return $this->oldIsActive; + } + + + /** + * @param ?bool $isActive + */ + public function setIsActive(?bool $isActive): void + { + $this->isActive = $isActive; + } + + /** + * @param ?bool $oldIsActive + */ + public function setOldIsActive(?bool $oldIsActive): void + { + $this->oldIsActive = $oldIsActive; + } +} diff --git a/lib/commercetools-api/src/Models/Message/MessageModel.php b/lib/commercetools-api/src/Models/Message/MessageModel.php index ed71c3691ad..8b811a52d50 100644 --- a/lib/commercetools-api/src/Models/Message/MessageModel.php +++ b/lib/commercetools-api/src/Models/Message/MessageModel.php @@ -215,6 +215,7 @@ final class MessageModel extends JsonObjectModel implements Message 'DiscountCodeKeySet' => DiscountCodeKeySetMessageModel::class, 'DiscountGroupCreated' => DiscountGroupCreatedMessageModel::class, 'DiscountGroupDeleted' => DiscountGroupDeletedMessageModel::class, + 'DiscountGroupIsActiveSet' => DiscountGroupIsActiveSetMessageModel::class, 'DiscountGroupKeySet' => DiscountGroupKeySetMessageModel::class, 'DiscountGroupSortOrderSet' => DiscountGroupSortOrderSetMessageModel::class, 'InventoryEntryCreated' => InventoryEntryCreatedMessageModel::class, diff --git a/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php b/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php index 84ee05ba02e..03d3610d702 100644 --- a/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php +++ b/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php @@ -146,6 +146,7 @@ final class MessagePayloadModel extends JsonObjectModel implements MessagePayloa 'DiscountCodeKeySet' => DiscountCodeKeySetMessagePayloadModel::class, 'DiscountGroupCreated' => DiscountGroupCreatedMessagePayloadModel::class, 'DiscountGroupDeleted' => DiscountGroupDeletedMessagePayloadModel::class, + 'DiscountGroupIsActiveSet' => DiscountGroupIsActiveSetMessagePayloadModel::class, 'DiscountGroupKeySet' => DiscountGroupKeySetMessagePayloadModel::class, 'DiscountGroupSortOrderSet' => DiscountGroupSortOrderSetMessagePayloadModel::class, 'InventoryEntryCreated' => InventoryEntryCreatedMessagePayloadModel::class, diff --git a/references.txt b/references.txt index db8bf733fd7..679bde77c7c 100644 --- a/references.txt +++ b/references.txt @@ -494,3 +494,4 @@ cb9cca64ecfb31885e7b9fb0ad52a9954b990ed9 b6d7def74db12344b0e0821407b45a3f214b8bd9 f8b027c8e1b5ba61ace3d3d358b9efc7ad4b93eb 63488aa919cebb6a9a606b287cd525eb7c588e99 +12c86075166f683540662d5b7016fa7d48fe45e4