From a654c773966b9e8cb08a89aa03e4d2bd569ca38f Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 21 Jul 2025 16:02:20 +0300 Subject: [PATCH 01/19] FRW-10501: Extract event data with timestamps --- .../Transfer/event_behavior.transfer.xml | 1 + .../Business/EventBehaviorFacade.php | 44 +++++++++++ .../Business/EventBehaviorFacadeInterface.php | 42 +++++++++- .../Model/EventEntityTransferFilter.php | 78 +++++++++++++++++++ .../EventEntityTransferFilterInterface.php | 23 ++++++ .../Business/Model/TriggerManager.php | 6 ++ 6 files changed, 193 insertions(+), 1 deletion(-) diff --git a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml index 88db82b8..07ec8a2c 100644 --- a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml +++ b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml @@ -7,6 +7,7 @@ + diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php index 59195554..64edd7c1 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php @@ -66,6 +66,20 @@ public function getEventTransferIds(array $eventTransfers) return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferIds($eventTransfers); } + /** + * {@inheritDoc} + * + * @api + * + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * + * @return array + */ + public function getEventTransferIdsWithTimestamps(array $eventTransfers): array + { + return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferIdsWithTimestamps($eventTransfers); + } + /** * {@inheritDoc} * @@ -81,6 +95,21 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferForeignKeys($eventTransfers, $foreignKeyColumnName); } + /** + * {@inheritDoc} + * + * @api + * + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $foreignKeyColumnName + * + * @return array + */ + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array + { + return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferForeignKeysWithTimestamps($eventTransfers, $foreignKeyColumnName); + } + /** * {@inheritDoc} * @@ -126,6 +155,21 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string return $this->getFactory()->createEventEntityTransferFilter()->getEventTransfersAdditionalValues($eventTransfers, $columnName); } + /** + * {@inheritDoc} + * + * @api + * + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $columnName + * + * @return array + */ + public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array + { + return $this->getFactory()->createEventEntityTransferFilter()->getEventTransfersAdditionalValuesWithTimestamp($eventTransfers, $columnName); + } + /** * {@inheritDoc} * diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 5e6b65e2..82e25fc6 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -60,6 +60,19 @@ public function triggerLostEvents(); */ public function getEventTransferIds(array $eventTransfers); + /** + * Specification: + * - Returns Ids with event timestamps in eventTransfers. + * - Key: ForeignKey, Value: timestamp. + * + * @api + * + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * + * @return array + */ + public function getEventTransferIdsWithTimestamps(array $eventTransfers): array; + /** * Specification: * - Returns ForeignKeys in eventTransfers. @@ -73,6 +86,20 @@ public function getEventTransferIds(array $eventTransfers); */ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyColumnName); + /** + * Specification: + * - Returns ForeignKeys with event timestamps in eventTransfers. + * - Key: ForeignKey, Value: timestamp. + * + * @api + * + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $foreignKeyColumnName + * + * @return array + */ + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array; + /** * Specification: * - Returns eventTransfers with matched modifiedColumns. @@ -101,7 +128,7 @@ public function getEventTransfersOriginalValues(array $eventTransfers, string $c /** * Specification: - * - Returns field value of the specficed column in eventTransfers. + * - Returns field value of the specified column in eventTransfers. * * @api * @@ -112,6 +139,19 @@ public function getEventTransfersOriginalValues(array $eventTransfers, string $c */ public function getEventTransfersAdditionalValues(array $eventTransfers, string $columnName): array; + /** + * Specification: + * - Returns field value with timestamp of the specified column in eventTransfers. + * + * @api + * + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $columnName + * + * @return array + */ + public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array; + /** * Specification: * - Triggers events for specified resources. diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index a45661f4..89f0560a 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -7,6 +7,8 @@ namespace Spryker\Zed\EventBehavior\Business\Model; +use Generated\Shared\Transfer\EventEntityTransfer; + class EventEntityTransferFilter implements EventEntityTransferFilterInterface { /** @@ -24,6 +26,24 @@ public function getEventTransferIds(array $eventTransfers) return array_unique($ids); } + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * + * @return array + */ + public function getEventTransferIdsWithTimestamps(array $eventTransfers): array + { + $sortedEventTransfers = $eventTransfers; + usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); + + $ids = []; + foreach ($sortedEventTransfers as $eventTransfer) { + $ids[(int)$eventTransfer->getId()] = $eventTransfer->getTimestamp(); + } + + return $ids; + } + /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName @@ -51,6 +71,36 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo return array_unique($foreignKeys); } + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $foreignKeyColumnName + * + * @return array + */ + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array + { + if (!$foreignKeyColumnName) { + return []; + } + + $sortedEventTransfers = $eventTransfers; + usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); + + $foreignKeys = []; + foreach ($sortedEventTransfers as $eventTransfer) { + if (!isset($eventTransfer->getForeignKeys()[$foreignKeyColumnName])) { + continue; + } + + $value = $eventTransfer->getForeignKeys()[$foreignKeyColumnName]; + if ($value !== null) { + $foreignKeys[$value] = $eventTransfer->getTimestamp(); + } + } + + return $foreignKeys; + } + /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName @@ -145,6 +195,34 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string return array_unique($additionalValues); } + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $columnName + * + * @return array + */ + public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array + { + if (!$columnName) { + return []; + } + + $sortedEventTransfers = $eventTransfers; + usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); + + $additionalValues = []; + foreach ($eventTransfers as $eventTransfer) { + $additionalValuesOfEvent = $eventTransfer->getAdditionalValues(); + if (!isset($additionalValuesOfEvent[$columnName])) { + continue; + } + + $additionalValues[$additionalValuesOfEvent[$columnName]] = $eventTransfer->getTimestamp(); + } + + return $additionalValues; + } + /** * @param array $columns * @param array $modifiedColumns diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php index dc8c3a02..81af551c 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php @@ -16,6 +16,13 @@ interface EventEntityTransferFilterInterface */ public function getEventTransferIds(array $eventTransfers); + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * + * @return array + */ + public function getEventTransferIdsWithTimestamps(array $eventTransfers): array; + /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName @@ -24,6 +31,14 @@ public function getEventTransferIds(array $eventTransfers); */ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyColumnName); + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $foreignKeyColumnName + * + * @return array + */ + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array; + /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param array $columns @@ -55,4 +70,12 @@ public function getEventTransfersOriginalValues(array $eventTransfers, string $c * @return array */ public function getEventTransfersAdditionalValues(array $eventTransfers, string $columnName): array; + + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $columnName + * + * @return array + */ + public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array; } diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php b/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php index e46e45a6..6c9a1588 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php @@ -27,6 +27,11 @@ class TriggerManager implements TriggerManagerInterface { use InstancePoolingTrait; + /** + * @var string + */ + protected const DATE_FORMAT = 'Y-m-d H:i:s.u'; + /** * @uses \Orm\Zed\EventBehavior\Persistence\Map\SpyEventBehaviorEntityChangeTableMap::TABLE_NAME * @@ -285,6 +290,7 @@ protected function triggerEvents(array $events): int $eventEntityTransfer->setEvent($data[EventBehavior::EVENT_CHANGE_NAME]); $eventEntityTransfer->setName($data[EventBehavior::EVENT_CHANGE_ENTITY_NAME]); $eventEntityTransfer->setId($id); + $eventEntityTransfer->setTimestamp($event->getCreatedAt()?->getTimestamp()); $eventEntityTransfer->setForeignKeys($data[EventBehavior::EVENT_CHANGE_ENTITY_FOREIGN_KEYS]); if (isset($data[EventBehavior::EVENT_CHANGE_ENTITY_ORIGINAL_VALUES])) { $eventEntityTransfer->setOriginalValues($data[EventBehavior::EVENT_CHANGE_ENTITY_ORIGINAL_VALUES]); From f9e72b6fdf32d9035319ad892593d1a335272b5b Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 21 Jul 2025 16:08:30 +0300 Subject: [PATCH 02/19] FRW-10501: Extract event data with timestamps --- .../Zed/EventBehavior/Business/EventBehaviorFacade.php | 2 +- .../Business/EventBehaviorFacadeInterface.php | 2 +- .../Business/Model/EventEntityTransferFilter.php | 8 ++++---- .../Business/Model/EventEntityTransferFilterInterface.php | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php index 64edd7c1..b0a3ba28 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php @@ -163,7 +163,7 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $columnName * - * @return array + * @return array */ public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array { diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 82e25fc6..69060c6b 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -148,7 +148,7 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $columnName * - * @return array + * @return array */ public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array; diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index 89f0560a..ac7bbf0d 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -38,7 +38,7 @@ public function getEventTransferIdsWithTimestamps(array $eventTransfers): array $ids = []; foreach ($sortedEventTransfers as $eventTransfer) { - $ids[(int)$eventTransfer->getId()] = $eventTransfer->getTimestamp(); + $ids[(int)$eventTransfer->getId()] = (int)$eventTransfer->getTimestamp(); } return $ids; @@ -94,7 +94,7 @@ public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $value = $eventTransfer->getForeignKeys()[$foreignKeyColumnName]; if ($value !== null) { - $foreignKeys[$value] = $eventTransfer->getTimestamp(); + $foreignKeys[(int)$value] = (int)$eventTransfer->getTimestamp(); } } @@ -199,7 +199,7 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $columnName * - * @return array + * @return array */ public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array { @@ -217,7 +217,7 @@ public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTrans continue; } - $additionalValues[$additionalValuesOfEvent[$columnName]] = $eventTransfer->getTimestamp(); + $additionalValues[$additionalValuesOfEvent[$columnName]] = (int)$eventTransfer->getTimestamp(); } return $additionalValues; diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php index 81af551c..c7a1d2f1 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php @@ -35,7 +35,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName * - * @return array + * @return array */ public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array; @@ -75,7 +75,7 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $columnName * - * @return array + * @return array */ public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array; } From 71c368ec1b882474b8ade542beaf4c6a2911d844 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 21 Jul 2025 16:10:31 +0300 Subject: [PATCH 03/19] FRW-10501: Extract event data with timestamps --- .../Business/Model/EventEntityTransferFilterInterface.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php index c7a1d2f1..b690a64f 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php @@ -35,7 +35,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName * - * @return array + * @return array */ public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array; From e66dd5598ed17c294d53800ede5e4dfcd9fade6f Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 21 Jul 2025 16:23:09 +0300 Subject: [PATCH 04/19] FRW-10501: Extract event data with timestamps --- .../Zed/EventBehavior/Business/Model/TriggerManager.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php b/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php index 6c9a1588..d3ea936d 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/TriggerManager.php @@ -27,11 +27,6 @@ class TriggerManager implements TriggerManagerInterface { use InstancePoolingTrait; - /** - * @var string - */ - protected const DATE_FORMAT = 'Y-m-d H:i:s.u'; - /** * @uses \Orm\Zed\EventBehavior\Persistence\Map\SpyEventBehaviorEntityChangeTableMap::TABLE_NAME * From fa2508c129b2857c608cd1061e88a057d8557ffb Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 21 Jul 2025 16:55:29 +0300 Subject: [PATCH 05/19] FRW-10501: Extract event data with timestamps --- src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php | 2 +- .../Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php | 2 +- .../EventBehavior/Business/Model/EventEntityTransferFilter.php | 2 +- .../Business/Model/EventEntityTransferFilterInterface.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php index b0a3ba28..89bf0e44 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php @@ -105,7 +105,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo * * @return array */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array { return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferForeignKeysWithTimestamps($eventTransfers, $foreignKeyColumnName); } diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 69060c6b..df3a2dab 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -98,7 +98,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo * * @return array */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array; + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array; /** * Specification: diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index ac7bbf0d..9db3baee 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -77,7 +77,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo * * @return array */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array { if (!$foreignKeyColumnName) { return []; diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php index b690a64f..897b09ad 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php @@ -37,7 +37,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo * * @return array */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, $foreignKeyColumnName): array; + public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array; /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers From 3e6709c9166b14f1cce12c9b5ccc21418b712631 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Tue, 22 Jul 2025 14:38:30 +0300 Subject: [PATCH 06/19] FRW-10501: Adjusted logic --- .../Transfer/event_behavior.transfer.xml | 13 ++ .../Business/EventBehaviorFacade.php | 40 +----- .../Business/EventBehaviorFacadeInterface.php | 41 ++---- .../Model/EventEntityTransferFilter.php | 129 +++++++++++------- .../EventEntityTransferFilterInterface.php | 25 +--- 5 files changed, 111 insertions(+), 137 deletions(-) diff --git a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml index 07ec8a2c..fb35c88a 100644 --- a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml +++ b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml @@ -3,6 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="spryker:transfer-01 http://static.spryker.com/transfer-01.xsd"> + + + + + + + + + + + + @@ -12,6 +24,7 @@ + diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php index 89bf0e44..c5c9868a 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php @@ -7,6 +7,8 @@ namespace Spryker\Zed\EventBehavior\Business; +use Generated\Shared\Transfer\EventEntityRequestTransfer; +use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventTriggerResponseTransfer; use Spryker\Zed\Kernel\Business\AbstractFacade; @@ -66,20 +68,6 @@ public function getEventTransferIds(array $eventTransfers) return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferIds($eventTransfers); } - /** - * {@inheritDoc} - * - * @api - * - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * - * @return array - */ - public function getEventTransferIdsWithTimestamps(array $eventTransfers): array - { - return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferIdsWithTimestamps($eventTransfers); - } - /** * {@inheritDoc} * @@ -95,21 +83,6 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferForeignKeys($eventTransfers, $foreignKeyColumnName); } - /** - * {@inheritDoc} - * - * @api - * - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $foreignKeyColumnName - * - * @return array - */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array - { - return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferForeignKeysWithTimestamps($eventTransfers, $foreignKeyColumnName); - } - /** * {@inheritDoc} * @@ -160,14 +133,13 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * * @api * - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $columnName + * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer * - * @return array + * @return \Generated\Shared\Transfer\EventEntityResponseTransfer */ - public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array + public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer { - return $this->getFactory()->createEventEntityTransferFilter()->getEventTransfersAdditionalValuesWithTimestamp($eventTransfers, $columnName); + return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferValuesWithTimestamps($eventTransferRequestTransfer); } /** diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index df3a2dab..7d468fd4 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -7,6 +7,8 @@ namespace Spryker\Zed\EventBehavior\Business; +use Generated\Shared\Transfer\EventEntityRequestTransfer; +use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventTriggerResponseTransfer; interface EventBehaviorFacadeInterface @@ -60,19 +62,6 @@ public function triggerLostEvents(); */ public function getEventTransferIds(array $eventTransfers); - /** - * Specification: - * - Returns Ids with event timestamps in eventTransfers. - * - Key: ForeignKey, Value: timestamp. - * - * @api - * - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * - * @return array - */ - public function getEventTransferIdsWithTimestamps(array $eventTransfers): array; - /** * Specification: * - Returns ForeignKeys in eventTransfers. @@ -86,20 +75,6 @@ public function getEventTransferIdsWithTimestamps(array $eventTransfers): array; */ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyColumnName); - /** - * Specification: - * - Returns ForeignKeys with event timestamps in eventTransfers. - * - Key: ForeignKey, Value: timestamp. - * - * @api - * - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $foreignKeyColumnName - * - * @return array - */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array; - /** * Specification: * - Returns eventTransfers with matched modifiedColumns. @@ -141,16 +116,18 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string /** * Specification: - * - Returns field value with timestamp of the specified column in eventTransfers. + * - Returns ids with timestamp in eventTransfers. + * - Returns field value with timestamp of the specified column in eventTransfers. + * - Structure: EventEntityResponseTransfer.ids Key: id, Value: timestamp. * * @api * - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $columnName + * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer + * + * @return \Generated\Shared\Transfer\EventEntityResponseTransfer * - * @return array */ - public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array; + public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer; /** * Specification: diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index 9db3baee..73889e6a 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -7,7 +7,10 @@ namespace Spryker\Zed\EventBehavior\Business\Model; +use Generated\Shared\Transfer\EventEntityRequestTransfer; +use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventEntityTransfer; +use Generated\Shared\Transfer\EventTransferRequest; class EventEntityTransferFilter implements EventEntityTransferFilterInterface { @@ -26,24 +29,6 @@ public function getEventTransferIds(array $eventTransfers) return array_unique($ids); } - /** - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * - * @return array - */ - public function getEventTransferIdsWithTimestamps(array $eventTransfers): array - { - $sortedEventTransfers = $eventTransfers; - usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); - - $ids = []; - foreach ($sortedEventTransfers as $eventTransfer) { - $ids[(int)$eventTransfer->getId()] = (int)$eventTransfer->getTimestamp(); - } - - return $ids; - } - /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName @@ -71,36 +56,6 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo return array_unique($foreignKeys); } - /** - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $foreignKeyColumnName - * - * @return array - */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array - { - if (!$foreignKeyColumnName) { - return []; - } - - $sortedEventTransfers = $eventTransfers; - usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); - - $foreignKeys = []; - foreach ($sortedEventTransfers as $eventTransfer) { - if (!isset($eventTransfer->getForeignKeys()[$foreignKeyColumnName])) { - continue; - } - - $value = $eventTransfer->getForeignKeys()[$foreignKeyColumnName]; - if ($value !== null) { - $foreignKeys[(int)$value] = (int)$eventTransfer->getTimestamp(); - } - } - - return $foreignKeys; - } - /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName @@ -195,21 +150,64 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string return array_unique($additionalValues); } + /** + * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer + * + * @return \Generated\Shared\Transfer\EventEntityResponseTransfer + */ + public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer + { + $eventEntityResponseTransfer = new EventEntityResponseTransfer(); + $sortedEventTransfers = $eventTransferRequestTransfer->getEventEntities()->getArrayCopy(); + + if (count($sortedEventTransfers) === 0) { + return $eventEntityResponseTransfer; + } + usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); + + $eventEntityResponseTransfer->setIds($this->getEventTransferIdsWithTimestamps($sortedEventTransfers)); + + if ($eventTransferRequestTransfer->getAdditionalValueName()) { + $eventEntityResponseTransfer->setAdditionalValues($this->getEventTransfersAdditionalValuesWithTimestamps($sortedEventTransfers, $eventTransferRequestTransfer->getAdditionalValueName())); + } + + if ($eventTransferRequestTransfer->getForeignKeyName()) { + $eventEntityResponseTransfer->setForeignKeys($this->getEventTransferForeignKeysWithTimestamps($sortedEventTransfers, $eventTransferRequestTransfer->getForeignKeyName())); + } + + return $eventEntityResponseTransfer; + } + + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * + * @return array + */ + protected function getEventTransferIdsWithTimestamps(array $eventTransfers): array + { + $sortedEventTransfers = $eventTransfers; + usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); + + $ids = []; + foreach ($sortedEventTransfers as $eventTransfer) { + $ids[(int)$eventTransfer->getId()] = (int)$eventTransfer->getTimestamp(); + } + + return $ids; + } + /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $columnName * * @return array */ - public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array + protected function getEventTransfersAdditionalValuesWithTimestamps(array $eventTransfers, string $columnName): array { if (!$columnName) { return []; } - $sortedEventTransfers = $eventTransfers; - usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); - $additionalValues = []; foreach ($eventTransfers as $eventTransfer) { $additionalValuesOfEvent = $eventTransfer->getAdditionalValues(); @@ -223,6 +221,33 @@ public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTrans return $additionalValues; } + /** + * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers + * @param string $foreignKeyColumnName + * + * @return array + */ + protected function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array + { + if (!$foreignKeyColumnName) { + return []; + } + + $foreignKeys = []; + foreach ($eventTransfers as $eventTransfer) { + if (!isset($eventTransfer->getForeignKeys()[$foreignKeyColumnName])) { + continue; + } + + $value = $eventTransfer->getForeignKeys()[$foreignKeyColumnName] ?? null; + if ($value !== null) { + $foreignKeys[(int)$value] = (int)$eventTransfer->getTimestamp(); + } + } + + return $foreignKeys; + } + /** * @param array $columns * @param array $modifiedColumns diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php index 897b09ad..03aaba46 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php @@ -7,6 +7,9 @@ namespace Spryker\Zed\EventBehavior\Business\Model; +use Generated\Shared\Transfer\EventEntityRequestTransfer; +use Generated\Shared\Transfer\EventEntityResponseTransfer; + interface EventEntityTransferFilterInterface { /** @@ -16,13 +19,6 @@ interface EventEntityTransferFilterInterface */ public function getEventTransferIds(array $eventTransfers); - /** - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * - * @return array - */ - public function getEventTransferIdsWithTimestamps(array $eventTransfers): array; - /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param string $foreignKeyColumnName @@ -31,14 +27,6 @@ public function getEventTransferIdsWithTimestamps(array $eventTransfers): array; */ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyColumnName); - /** - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $foreignKeyColumnName - * - * @return array - */ - public function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array; - /** * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers * @param array $columns @@ -72,10 +60,9 @@ public function getEventTransfersOriginalValues(array $eventTransfers, string $c public function getEventTransfersAdditionalValues(array $eventTransfers, string $columnName): array; /** - * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventTransfers - * @param string $columnName + * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer * - * @return array + * @return \Generated\Shared\Transfer\EventEntityResponseTransfer */ - public function getEventTransfersAdditionalValuesWithTimestamp(array $eventTransfers, string $columnName): array; + public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer; } From fed15632280ada729ff4bc501e2253dc057427dc Mon Sep 17 00:00:00 2001 From: vol4onok Date: Tue, 22 Jul 2025 14:41:26 +0300 Subject: [PATCH 07/19] FRW-10501: Adjusted logic --- .../Shared/EventBehavior/Transfer/event_behavior.transfer.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml index fb35c88a..5e9e7973 100644 --- a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml +++ b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml @@ -24,7 +24,7 @@ - + From 24df6a46b4c61c159d97a981372ad0ff2be04fdb Mon Sep 17 00:00:00 2001 From: vol4onok Date: Tue, 22 Jul 2025 14:43:45 +0300 Subject: [PATCH 08/19] FRW-10501: Adjusted logic --- composer.json | 4 ++-- .../Shared/EventBehavior/Transfer/event_behavior.transfer.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 69b51702..1ec26243 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "spryker/propel": "^3.45.0", "spryker/propel-orm": "^1.16.0", "spryker/symfony": "^3.1.0", + "spryker/transfer": "^3.39.0", "spryker/util-encoding": "^2.1.0" }, "require-dev": { @@ -28,8 +29,7 @@ "spryker/monolog": "*", "spryker/queue": "*", "spryker/silex": "^2.0.0", - "spryker/testify": "^3.58.0", - "spryker/transfer": "^3.39.0" + "spryker/testify": "^3.58.0" }, "suggest": { "spryker/console": "If you want to execute console commands", diff --git a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml index 5e9e7973..16563131 100644 --- a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml +++ b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="spryker:transfer-01 http://static.spryker.com/transfer-01.xsd"> - + From 988d590a96114c8f9a20f914e2315a33f5aa7b1d Mon Sep 17 00:00:00 2001 From: vol4onok Date: Tue, 22 Jul 2025 14:53:33 +0300 Subject: [PATCH 09/19] FRW-10501: Adjusted logic --- .../Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php | 1 - .../EventBehavior/Business/Model/EventEntityTransferFilter.php | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 7d468fd4..0dd13f5d 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -125,7 +125,6 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer * * @return \Generated\Shared\Transfer\EventEntityResponseTransfer - * */ public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer; diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index 73889e6a..7224557c 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -10,7 +10,6 @@ use Generated\Shared\Transfer\EventEntityRequestTransfer; use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventEntityTransfer; -use Generated\Shared\Transfer\EventTransferRequest; class EventEntityTransferFilter implements EventEntityTransferFilterInterface { From 6cc5382b195ca4b899ff3f62d6c9e04a3fac8ae8 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Thu, 24 Jul 2025 09:35:34 +0300 Subject: [PATCH 10/19] FRW-10578: Adjusted names --- .../Transfer/event_behavior.transfer.xml | 16 ++++---- .../Business/EventBehaviorFacade.php | 12 +++--- .../Business/EventBehaviorFacadeInterface.php | 12 +++--- .../Model/EventEntityTransferFilter.php | 39 +++++++++---------- .../EventEntityTransferFilterInterface.php | 10 ++--- 5 files changed, 43 insertions(+), 46 deletions(-) diff --git a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml index 16563131..0f60f205 100644 --- a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml +++ b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml @@ -3,16 +3,16 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="spryker:transfer-01 http://static.spryker.com/transfer-01.xsd"> - - - - + + + + - - - - + + + + diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php index c5c9868a..c5ca6ed7 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacade.php @@ -7,9 +7,9 @@ namespace Spryker\Zed\EventBehavior\Business; -use Generated\Shared\Transfer\EventEntityRequestTransfer; -use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventTriggerResponseTransfer; +use Generated\Shared\Transfer\HydrateEventsRequestTransfer; +use Generated\Shared\Transfer\HydrateEventsResponseTransfer; use Spryker\Zed\Kernel\Business\AbstractFacade; /** @@ -133,13 +133,13 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * * @api * - * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer + * @param \Generated\Shared\Transfer\HydrateEventsRequestTransfer $hydrateEventsRequestTransfer * - * @return \Generated\Shared\Transfer\EventEntityResponseTransfer + * @return \Generated\Shared\Transfer\HydrateEventsResponseTransfer */ - public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer + public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer { - return $this->getFactory()->createEventEntityTransferFilter()->getEventTransferValuesWithTimestamps($eventTransferRequestTransfer); + return $this->getFactory()->createEventEntityTransferFilter()->hydrateEventDataTransfer($hydrateEventsRequestTransfer); } /** diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 0dd13f5d..30779fd9 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -7,9 +7,9 @@ namespace Spryker\Zed\EventBehavior\Business; -use Generated\Shared\Transfer\EventEntityRequestTransfer; -use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventTriggerResponseTransfer; +use Generated\Shared\Transfer\HydrateEventsRequestTransfer; +use Generated\Shared\Transfer\HydrateEventsResponseTransfer; interface EventBehaviorFacadeInterface { @@ -118,15 +118,15 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * Specification: * - Returns ids with timestamp in eventTransfers. * - Returns field value with timestamp of the specified column in eventTransfers. - * - Structure: EventEntityResponseTransfer.ids Key: id, Value: timestamp. + * - Structure: HydrateEventsResponseTransfer.ids Key: id, Value: timestamp. * * @api * - * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer + * @param \Generated\Shared\Transfer\HydrateEventsRequestTransfer $hydrateEventsRequestTransfer * - * @return \Generated\Shared\Transfer\EventEntityResponseTransfer + * @return \Generated\Shared\Transfer\HydrateEventsResponseTransfer */ - public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer; + public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer; /** * Specification: diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index 7224557c..20729bfe 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -7,9 +7,9 @@ namespace Spryker\Zed\EventBehavior\Business\Model; -use Generated\Shared\Transfer\EventEntityRequestTransfer; -use Generated\Shared\Transfer\EventEntityResponseTransfer; use Generated\Shared\Transfer\EventEntityTransfer; +use Generated\Shared\Transfer\HydrateEventsRequestTransfer; +use Generated\Shared\Transfer\HydrateEventsResponseTransfer; class EventEntityTransferFilter implements EventEntityTransferFilterInterface { @@ -150,31 +150,31 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string } /** - * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer + * @param \Generated\Shared\Transfer\HydrateEventsRequestTransfer $hydrateEventsRequestTransfer * - * @return \Generated\Shared\Transfer\EventEntityResponseTransfer + * @return \Generated\Shared\Transfer\HydrateEventsResponseTransfer */ - public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer + public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer { - $eventEntityResponseTransfer = new EventEntityResponseTransfer(); - $sortedEventTransfers = $eventTransferRequestTransfer->getEventEntities()->getArrayCopy(); + $hydrateEventsResponseTransfer = new HydrateEventsResponseTransfer(); + $sortedEventTransfers = $hydrateEventsRequestTransfer->getEventEntities()->getArrayCopy(); if (count($sortedEventTransfers) === 0) { - return $eventEntityResponseTransfer; + return $hydrateEventsResponseTransfer; } usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); - $eventEntityResponseTransfer->setIds($this->getEventTransferIdsWithTimestamps($sortedEventTransfers)); + $hydrateEventsResponseTransfer->setIdTimestampMap($this->getIdsTimestampMap($sortedEventTransfers)); - if ($eventTransferRequestTransfer->getAdditionalValueName()) { - $eventEntityResponseTransfer->setAdditionalValues($this->getEventTransfersAdditionalValuesWithTimestamps($sortedEventTransfers, $eventTransferRequestTransfer->getAdditionalValueName())); + if ($hydrateEventsRequestTransfer->getAdditionalValueName()) { + $hydrateEventsResponseTransfer->setAdditionalValueTimestampMap($this->getAdditionalValueTimestampMap($sortedEventTransfers, $hydrateEventsRequestTransfer->getAdditionalValueName())); } - if ($eventTransferRequestTransfer->getForeignKeyName()) { - $eventEntityResponseTransfer->setForeignKeys($this->getEventTransferForeignKeysWithTimestamps($sortedEventTransfers, $eventTransferRequestTransfer->getForeignKeyName())); + if ($hydrateEventsRequestTransfer->getForeignKeyName()) { + $hydrateEventsResponseTransfer->setForeignKeyTimestampMap($this->getForeignKeyTimestampMap($sortedEventTransfers, $hydrateEventsRequestTransfer->getForeignKeyName())); } - return $eventEntityResponseTransfer; + return $hydrateEventsResponseTransfer; } /** @@ -182,13 +182,10 @@ public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer * * @return array */ - protected function getEventTransferIdsWithTimestamps(array $eventTransfers): array + protected function getIdsTimestampMap(array $eventTransfers): array { - $sortedEventTransfers = $eventTransfers; - usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); - $ids = []; - foreach ($sortedEventTransfers as $eventTransfer) { + foreach ($eventTransfers as $eventTransfer) { $ids[(int)$eventTransfer->getId()] = (int)$eventTransfer->getTimestamp(); } @@ -201,7 +198,7 @@ protected function getEventTransferIdsWithTimestamps(array $eventTransfers): arr * * @return array */ - protected function getEventTransfersAdditionalValuesWithTimestamps(array $eventTransfers, string $columnName): array + protected function getAdditionalValueTimestampMap(array $eventTransfers, string $columnName): array { if (!$columnName) { return []; @@ -226,7 +223,7 @@ protected function getEventTransfersAdditionalValuesWithTimestamps(array $eventT * * @return array */ - protected function getEventTransferForeignKeysWithTimestamps(array $eventTransfers, string $foreignKeyColumnName): array + protected function getForeignKeyTimestampMap(array $eventTransfers, string $foreignKeyColumnName): array { if (!$foreignKeyColumnName) { return []; diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php index 03aaba46..ba6f3ed8 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilterInterface.php @@ -7,8 +7,8 @@ namespace Spryker\Zed\EventBehavior\Business\Model; -use Generated\Shared\Transfer\EventEntityRequestTransfer; -use Generated\Shared\Transfer\EventEntityResponseTransfer; +use Generated\Shared\Transfer\HydrateEventsRequestTransfer; +use Generated\Shared\Transfer\HydrateEventsResponseTransfer; interface EventEntityTransferFilterInterface { @@ -60,9 +60,9 @@ public function getEventTransfersOriginalValues(array $eventTransfers, string $c public function getEventTransfersAdditionalValues(array $eventTransfers, string $columnName): array; /** - * @param \Generated\Shared\Transfer\EventEntityRequestTransfer $eventTransferRequestTransfer + * @param \Generated\Shared\Transfer\HydrateEventsRequestTransfer $hydrateEventsRequestTransfer * - * @return \Generated\Shared\Transfer\EventEntityResponseTransfer + * @return \Generated\Shared\Transfer\HydrateEventsResponseTransfer */ - public function getEventTransferValuesWithTimestamps(EventEntityRequestTransfer $eventTransferRequestTransfer): EventEntityResponseTransfer; + public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer; } From c3ba41f2b4c68d46c1840ddecbfeab09eec6dc21 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Thu, 24 Jul 2025 11:29:48 +0300 Subject: [PATCH 11/19] FRW-10578: Fixed dependency --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 1ec26243..69b51702 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,6 @@ "spryker/propel": "^3.45.0", "spryker/propel-orm": "^1.16.0", "spryker/symfony": "^3.1.0", - "spryker/transfer": "^3.39.0", "spryker/util-encoding": "^2.1.0" }, "require-dev": { @@ -29,7 +28,8 @@ "spryker/monolog": "*", "spryker/queue": "*", "spryker/silex": "^2.0.0", - "spryker/testify": "^3.58.0" + "spryker/testify": "^3.58.0", + "spryker/transfer": "^3.39.0" }, "suggest": { "spryker/console": "If you want to execute console commands", From 13e66fb9ee1cb1d2df0c4e825dda999ed94eed54 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Thu, 24 Jul 2025 13:44:31 +0300 Subject: [PATCH 12/19] FRW-10578: Adjusted names --- .../EventBehavior/Business/EventBehaviorFacadeInterface.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 30779fd9..ee38ad0e 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -116,9 +116,8 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string /** * Specification: - * - Returns ids with timestamp in eventTransfers. - * - Returns field value with timestamp of the specified column in eventTransfers. - * - Structure: HydrateEventsResponseTransfer.ids Key: id, Value: timestamp. + * - Returns fields with timestamp in eventTransfers. + * - Structure: HydrateEventsResponseTransfer.*TimestampMap Key: id, Value: timestamp. * * @api * From 1ad357cdfc718c60a0d3543abfad1600c7e7aa32 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 28 Jul 2025 16:47:49 +0300 Subject: [PATCH 13/19] FRW-10501: Test coverage --- .../Transfer/event_behavior.transfer.xml | 1 - .../Business/EventBehaviorFacadeTest.php | 52 ++++++++++++++++++- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml index 0f60f205..90472812 100644 --- a/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml +++ b/src/Spryker/Shared/EventBehavior/Transfer/event_behavior.transfer.xml @@ -24,7 +24,6 @@ - diff --git a/tests/SprykerTest/Zed/EventBehavior/Business/EventBehaviorFacadeTest.php b/tests/SprykerTest/Zed/EventBehavior/Business/EventBehaviorFacadeTest.php index e13e70ca..5625c095 100644 --- a/tests/SprykerTest/Zed/EventBehavior/Business/EventBehaviorFacadeTest.php +++ b/tests/SprykerTest/Zed/EventBehavior/Business/EventBehaviorFacadeTest.php @@ -11,6 +11,7 @@ use DateInterval; use DateTime; use Generated\Shared\Transfer\EventEntityTransfer; +use Generated\Shared\Transfer\HydrateEventsRequestTransfer; use Orm\Zed\EventBehavior\Persistence\SpyEventBehaviorEntityChange; use Orm\Zed\EventBehavior\Persistence\SpyEventBehaviorEntityChangeQuery; use PHPUnit\Framework\MockObject\Rule\InvokedCount as InvokedCountMatcher; @@ -41,6 +42,11 @@ class EventBehaviorFacadeTest extends Unit */ protected const ID = 'id'; + /** + * @var string + */ + protected const TIMESTAMP = 'timestamp'; + /** * @var string */ @@ -217,6 +223,46 @@ public function testGetEventTransferIds(): void $this->assertEquals($eventTransferIds, [1, 2]); } + /** + * @return void + */ + public function testHydrateEventDataTransfer(): void + { + // Arrange + $hydrateEventsRequestTransfer = new HydrateEventsRequestTransfer(); + + $eventEntityTransfer = new EventEntityTransfer(); + $eventEntityTransfer->setId(1); + $eventEntityTransfer->setAdditionalValues(['property1' => 'value1']); + $eventEntityTransfer->setTimestamp(102); + $eventEntityTransfer->setAdditionalValues(['property2' => 'value3']); + $hydrateEventsRequestTransfer->addEventEntity($eventEntityTransfer); + + $eventEntityTransfer = new EventEntityTransfer(); + $eventEntityTransfer->setId(2); + $eventEntityTransfer->setForeignKeys(['foreignKey' => 7]); + $eventEntityTransfer->setTimestamp(102); + $eventEntityTransfer->setAdditionalValues(['property2' => 'value1']); + $hydrateEventsRequestTransfer->addEventEntity($eventEntityTransfer); + + $eventEntityTransfer = new EventEntityTransfer(); + $eventEntityTransfer->setId(1); + $eventEntityTransfer->setForeignKeys(['foreignKey' => 5]); + $eventEntityTransfer->setTimestamp(106); + $eventEntityTransfer->setAdditionalValues(['property1' => 'value1', 'property2' => 'value2']); + $hydrateEventsRequestTransfer->addEventEntity($eventEntityTransfer); + + $hydrateEventsRequestTransfer->setForeignKeyName('foreignKey'); + $hydrateEventsRequestTransfer->setAdditionalValueName('property2'); + + $hydrateEventsResponseTransfer = $this->tester->getFacade()->hydrateEventDataTransfer($hydrateEventsRequestTransfer); + + // Assert + $this->assertEquals($hydrateEventsResponseTransfer->getIdTimestampMap(), [1 => 106, 2 => 102]); + $this->assertEquals($hydrateEventsResponseTransfer->getForeignKeyTimestampMap(), [7 => 102, 5 => 106]); + $this->assertEquals($hydrateEventsResponseTransfer->getAdditionalValueTimestampMap(), ['value3' => 102, 'value1' => 102, 'value2' => 106]); + } + /** * @return void */ @@ -347,7 +393,7 @@ public function assertTriggeredEvent(string $eventName, TransferInterface $event $actualArray[EventBehavior::EVENT_CHANGE_ENTITY_ADDITIONAL_VALUES] = $actualArray[static::FIELD_ADDITIONAL_VALUES]; unset($actualArray[static::FIELD_ADDITIONAL_VALUES]); - $this->assertEquals($actualArray, $this->createEventData($actualArray[static::ID])); + $this->assertEquals($actualArray, $this->createEventData($actualArray[static::ID], $actualArray[static::TIMESTAMP])); } /** @@ -435,14 +481,16 @@ protected function createLostEntityChangeEvent(string $idEntity = '123'): void /** * @param string $idEntity + * @param int $timestamp * * @return array */ - protected function createEventData(string $idEntity = '123'): array + protected function createEventData(string $idEntity = '123', int $timestamp = 0): array { return [ EventBehavior::EVENT_CHANGE_ENTITY_NAME => 'name', EventBehavior::EVENT_CHANGE_ENTITY_ID => $idEntity, + EventEntityTransfer::TIMESTAMP => $timestamp, EventBehavior::EVENT_CHANGE_ENTITY_FOREIGN_KEYS => [1, 2, 3], EventBehavior::EVENT_CHANGE_NAME => 'test', EventBehavior::EVENT_CHANGE_ENTITY_MODIFIED_COLUMNS => [], From c4e2738326eb3fce78d3479de5ded05dbea64032 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Wed, 30 Jul 2025 16:31:12 +0300 Subject: [PATCH 14/19] FRW-10501: Fixed dependecy --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 69b51702..1ec26243 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "spryker/propel": "^3.45.0", "spryker/propel-orm": "^1.16.0", "spryker/symfony": "^3.1.0", + "spryker/transfer": "^3.39.0", "spryker/util-encoding": "^2.1.0" }, "require-dev": { @@ -28,8 +29,7 @@ "spryker/monolog": "*", "spryker/queue": "*", "spryker/silex": "^2.0.0", - "spryker/testify": "^3.58.0", - "spryker/transfer": "^3.39.0" + "spryker/testify": "^3.58.0" }, "suggest": { "spryker/console": "If you want to execute console commands", From 7d3cfdde94a6cc540338481469888cd3a8dd426d Mon Sep 17 00:00:00 2001 From: vol4onok Date: Wed, 30 Jul 2025 16:36:17 +0300 Subject: [PATCH 15/19] FRW-10501: Fixed dependecy --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 1ec26243..69b51702 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,6 @@ "spryker/propel": "^3.45.0", "spryker/propel-orm": "^1.16.0", "spryker/symfony": "^3.1.0", - "spryker/transfer": "^3.39.0", "spryker/util-encoding": "^2.1.0" }, "require-dev": { @@ -29,7 +28,8 @@ "spryker/monolog": "*", "spryker/queue": "*", "spryker/silex": "^2.0.0", - "spryker/testify": "^3.58.0" + "spryker/testify": "^3.58.0", + "spryker/transfer": "^3.39.0" }, "suggest": { "spryker/console": "If you want to execute console commands", From 012dd38f1c70879af7227475fa35974cf217f803 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Fri, 1 Aug 2025 10:12:06 +0300 Subject: [PATCH 16/19] FRW-10501: Adjusted specification --- .../Business/EventBehaviorFacadeInterface.php | 12 +++++++++-- .../Model/EventEntityTransferFilter.php | 20 ++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index ee38ad0e..8328d61f 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -116,14 +116,22 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string /** * Specification: - * - Returns fields with timestamp in eventTransfers. - * - Structure: HydrateEventsResponseTransfer.*TimestampMap Key: id, Value: timestamp. + * - Extracts timestamp information for event entities passed in the request. + * - Always returns a map of entity IDs to their respective timestamps. + * - Optionally extracts additional values with timestamps for: + * - Foreign key values if `foreignKeyName` is provided. + * - Additional values if `additionalValueName` is provided. + * - Response structure (in HydrateEventsResponseTransfer): + * - `idTimestampMap`: [id => timestamp] + * - `foreignKeyTimestampMap`: [foreignKeyValue => timestamp] (if requested) + * - `additionalValueTimestampMap`: [additionalValue => timestamp] (if requested) * * @api * * @param \Generated\Shared\Transfer\HydrateEventsRequestTransfer $hydrateEventsRequestTransfer * * @return \Generated\Shared\Transfer\HydrateEventsResponseTransfer + * */ public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer; diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index 20729bfe..1f094b8a 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -157,21 +157,21 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer { $hydrateEventsResponseTransfer = new HydrateEventsResponseTransfer(); - $sortedEventTransfers = $hydrateEventsRequestTransfer->getEventEntities()->getArrayCopy(); + $eventEntityTransfers = $hydrateEventsRequestTransfer->getEventEntities()->getArrayCopy(); - if (count($sortedEventTransfers) === 0) { + if (count($eventEntityTransfers) === 0) { return $hydrateEventsResponseTransfer; } - usort($sortedEventTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); + usort($eventEntityTransfers, fn (EventEntityTransfer $a, EventEntityTransfer $b) => $a->getTimestamp() <=> $b->getTimestamp()); - $hydrateEventsResponseTransfer->setIdTimestampMap($this->getIdsTimestampMap($sortedEventTransfers)); + $hydrateEventsResponseTransfer->setIdTimestampMap($this->getIdsTimestampMap($eventEntityTransfers)); if ($hydrateEventsRequestTransfer->getAdditionalValueName()) { - $hydrateEventsResponseTransfer->setAdditionalValueTimestampMap($this->getAdditionalValueTimestampMap($sortedEventTransfers, $hydrateEventsRequestTransfer->getAdditionalValueName())); + $hydrateEventsResponseTransfer->setAdditionalValueTimestampMap($this->getAdditionalValueTimestampMap($eventEntityTransfers, $hydrateEventsRequestTransfer->getAdditionalValueName())); } if ($hydrateEventsRequestTransfer->getForeignKeyName()) { - $hydrateEventsResponseTransfer->setForeignKeyTimestampMap($this->getForeignKeyTimestampMap($sortedEventTransfers, $hydrateEventsRequestTransfer->getForeignKeyName())); + $hydrateEventsResponseTransfer->setForeignKeyTimestampMap($this->getForeignKeyTimestampMap($eventEntityTransfers, $hydrateEventsRequestTransfer->getForeignKeyName())); } return $hydrateEventsResponseTransfer; @@ -200,10 +200,6 @@ protected function getIdsTimestampMap(array $eventTransfers): array */ protected function getAdditionalValueTimestampMap(array $eventTransfers, string $columnName): array { - if (!$columnName) { - return []; - } - $additionalValues = []; foreach ($eventTransfers as $eventTransfer) { $additionalValuesOfEvent = $eventTransfer->getAdditionalValues(); @@ -225,10 +221,6 @@ protected function getAdditionalValueTimestampMap(array $eventTransfers, string */ protected function getForeignKeyTimestampMap(array $eventTransfers, string $foreignKeyColumnName): array { - if (!$foreignKeyColumnName) { - return []; - } - $foreignKeys = []; foreach ($eventTransfers as $eventTransfer) { if (!isset($eventTransfer->getForeignKeys()[$foreignKeyColumnName])) { From f576ba32ad86830a8d24315609c2b70ad809a57d Mon Sep 17 00:00:00 2001 From: vol4onok Date: Fri, 1 Aug 2025 14:49:30 +0300 Subject: [PATCH 17/19] FRW-10501: Adjusted specification --- .../Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php index 8328d61f..c9300da7 100644 --- a/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php +++ b/src/Spryker/Zed/EventBehavior/Business/EventBehaviorFacadeInterface.php @@ -131,7 +131,6 @@ public function getEventTransfersAdditionalValues(array $eventTransfers, string * @param \Generated\Shared\Transfer\HydrateEventsRequestTransfer $hydrateEventsRequestTransfer * * @return \Generated\Shared\Transfer\HydrateEventsResponseTransfer - * */ public function hydrateEventDataTransfer(HydrateEventsRequestTransfer $hydrateEventsRequestTransfer): HydrateEventsResponseTransfer; From 260a20213ee9ab40eab717976e23d669d50fa993 Mon Sep 17 00:00:00 2001 From: vol4onok Date: Mon, 4 Aug 2025 09:47:10 +0300 Subject: [PATCH 18/19] FRW-10501: Updated composer --- composer.json | 4 ++-- dependency.json | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 69b51702..1ec26243 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "spryker/propel": "^3.45.0", "spryker/propel-orm": "^1.16.0", "spryker/symfony": "^3.1.0", + "spryker/transfer": "^3.39.0", "spryker/util-encoding": "^2.1.0" }, "require-dev": { @@ -28,8 +29,7 @@ "spryker/monolog": "*", "spryker/queue": "*", "spryker/silex": "^2.0.0", - "spryker/testify": "^3.58.0", - "spryker/transfer": "^3.39.0" + "spryker/testify": "^3.58.0" }, "suggest": { "spryker/console": "If you want to execute console commands", diff --git a/dependency.json b/dependency.json index 38f65ca2..3ceee424 100644 --- a/dependency.json +++ b/dependency.json @@ -1,4 +1,7 @@ { + "include": { + "spryker/transfer": "Provides transfer objects definition with `::get*OrFail()` functionality." + }, "include-dev": { "codeception/module-asserts": "Codeception module containing various assertions.", "phpunit/phpunit": "Need due to compatibility minimal version package with PHP 8." From 068dbd9a683d4eb2c177841ee6a5a4d72eeba67a Mon Sep 17 00:00:00 2001 From: vol4onok Date: Tue, 5 Aug 2025 10:11:44 +0300 Subject: [PATCH 19/19] FRW-10501: Adjusted timestamp for manual trigger --- .../Business/Model/EventResourceQueryContainerManager.php | 4 +++- .../Business/Model/EventResourceRepositoryManager.php | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceQueryContainerManager.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceQueryContainerManager.php index dc4302ab..615a6f22 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceQueryContainerManager.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceQueryContainerManager.php @@ -118,7 +118,9 @@ protected function createEventResourceQueryContainerPluginIterator(EventResource protected function triggerBulk(EventResourceQueryContainerPluginInterface $plugin, array $ids): void { $eventEntityTransfers = array_map(function ($id) { - return (new EventEntityTransfer())->setId($id); + return (new EventEntityTransfer()) + ->setId($id) + ->setTimestamp(time()); }, $ids); $this->eventFacade->triggerBulk($plugin->getEventName(), $eventEntityTransfers); diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceRepositoryManager.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceRepositoryManager.php index 209f6e83..11b40baa 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceRepositoryManager.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventResourceRepositoryManager.php @@ -204,7 +204,9 @@ protected function getIdColumnName($plugin): ?string protected function triggerBulk(EventResourcePluginInterface $plugin, array $ids): void { $eventEntityTransfers = array_map(function ($id) { - return (new EventEntityTransfer())->setId($id); + return (new EventEntityTransfer()) + ->setId($id) + ->setTimestamp(time()); }, $ids); $this->eventFacade->triggerBulk($plugin->getEventName(), $eventEntityTransfers);