isNew()) { return; } if (!$this->hasRelevantChanges($entity)) { return; } if (!$entity->get('cAktenId')) { return; } try { $entity->set('syncStatus', 'unclean'); $entity->set('aiSyncStatus', 'unclean'); $this->entityManager->saveEntity($entity, ['silent' => true, 'skipHooks' => true]); // Akte triggern → BeforeSave-Hook UpdateLastSyncFromDocuments aggregiert Status $akte = $this->entityManager->getEntityById('CAkten', $entity->get('cAktenId')); if ($akte) { $this->entityManager->saveEntity($akte, ['silent' => true]); } } catch (\Exception $e) { $GLOBALS['log']->error('CDokumente UpdateJunctionSyncStatus Hook Error: ' . $e->getMessage()); } } private function hasRelevantChanges(Entity $entity): bool { $relevantFields = [ 'name', 'description', 'dokument', 'dokumentId', 'preview', 'previewId', 'fileStatus', ]; foreach ($relevantFields as $field) { if ($entity->isAttributeChanged($field)) { return true; } } return false; } }