updateEventMetadata($container->get('metadata'), $container->get('fileManager')); } private function updateEventMetadata(Metadata $metadata, FileManager $fileManager): void { $defs = $metadata->get(['scopes']); $toSave = false; foreach ($defs as $entityType => $item) { $isCustom = $item['isCustom'] ?? false; $type = $item['type'] ?? false; if (!$isCustom || $type !== 'Event') { continue; } $toSave = true; $metadata->set('recordDefs', $entityType, [ 'beforeUpdateHookClassNameList' => [ "__APPEND__", "Espo\\Classes\\RecordHooks\\Event\\BeforeUpdatePreserveDuration" ] ]); $metadata->set('clientDefs', $entityType, [ 'forcePatchAttributeDependencyMap' => [ "dateEnd" => ["dateStart"], "dateEndDate" => ["dateStartDate"] ] ]); } if ($toSave) { $metadata->save(); } } }