diff --git a/src/Bundle/ChillMainBundle/Repository/AuditTrailRepository.php b/src/Bundle/ChillMainBundle/Repository/AuditTrailRepository.php index d7610b602..15e526763 100644 --- a/src/Bundle/ChillMainBundle/Repository/AuditTrailRepository.php +++ b/src/Bundle/ChillMainBundle/Repository/AuditTrailRepository.php @@ -85,6 +85,21 @@ class AuditTrailRepository extends ServiceEntityRepository ->getQuery()->getSingleScalarResult(); } + /** + * Returns an iterable result set for streaming over large datasets without loading all rows into memory. + * + * @param array{subjects?: list, from_date?: \DateTimeImmutable, to_date?: \DateTimeImmutable, by_users?: list} $criteria + * + * @return iterable + */ + public function findByCriteriaIterator(array $criteria): iterable + { + return $this->buildByCriteriaQuery($criteria) + ->orderBy('audit.occurredAt', 'DESC') + ->getQuery() + ->toIterable(); + } + public function deleteBefore(\DateTimeImmutable $date): void { $this->createQueryBuilder('audit')