public function findEventObjects(string $objectClass, string $uuid, int $max_version = null, int $min_version = null, int $user = null): array
    {
        $criteria = new Criteria();

        $criteria->where(Criteria::expr()->eq('uuid', $uuid));

        if (null !== $max_version) {
            $criteria->andWhere(Criteria::expr()->lte('version', $max_version));
        }

        if (null !== $min_version) {
            $criteria->andWhere(Criteria::expr()->gte('version', $min_version));
        }

        if (null !== $user) {
            $criteria->andWhere(Criteria::expr()->eq('user', $user));
        }

        $criteria->orderBy(['version' => Criteria::ASC]);

        $eventObjectsResults = $this->em->getRepository($objectClass)->matching($criteria);

        return $eventObjectsResults ? $eventObjectsResults->toArray() : [];
    }