updateMetadata($container->get('metadata')); } private function updateMetadata(Metadata $metadata): void { $this->updateEventMetadata($metadata); $metadata->save(); } private function updateEventMetadata(Metadata $metadata): void { $defs = $metadata->get(['scopes']); foreach ($defs as $entityType => $item) { $isCustom = $item['isCustom'] ?? false; $type = $item['type'] ?? false; if (!$isCustom || $type !== Event::TEMPLATE_TYPE) { continue; } if (!is_string($metadata->get(['entityDefs', $entityType, 'fields', 'duration', 'select']))) { continue; } $metadata->delete('entityDefs', $entityType, 'fields.duration.orderBy'); $metadata->set('entityDefs', $entityType, [ 'fields' => [ 'duration' => [ 'select' => [ 'select' => "TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)" ], 'order' => [ 'order' => [["TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)", "{direction}"]] ], ] ] ]); } } }