getProduct(); } protected function snapshotEntity(object $entity): array { $customFieldValues = []; foreach ($entity->getCustomFieldValues() as $cfv) { $customFieldValues[] = [ 'id' => $cfv->getId(), 'fieldName' => $cfv->getCustomField()?->getName(), 'fieldId' => $cfv->getCustomField()?->getId(), 'value' => $cfv->getValue(), ]; } return [ 'id' => $entity->getId(), 'name' => $this->safeGet($entity, 'getName'), 'reference' => $this->safeGet($entity, 'getReference'), 'supplierPrice' => $this->safeGet($entity, 'getSupplierPrice'), 'typeProduct' => $this->normalizeValue($this->safeGet($entity, 'getTypeProduct')), 'constructeurIds' => array_map( fn ($link) => [ 'id' => $link->getConstructeur()->getId(), 'name' => $link->getConstructeur()->getName(), 'supplierReference' => $link->getSupplierReference(), ], $entity->getConstructeurLinks()->toArray(), ), 'customFieldValues' => $customFieldValues, 'version' => $this->safeGet($entity, 'getVersion'), ]; } }