* * @implements AssociatedEntityToStoredObjectInterface */ class ExportGenerationRepository extends ServiceEntityRepository implements AssociatedEntityToStoredObjectInterface { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, ExportGeneration::class); } public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?ExportGeneration { return $this->createQueryBuilder('e') ->where('e.storedObject = :storedObject') ->setParameter('storedObject', $storedObject) ->getQuery() ->getOneOrNullResult(); } /** * @return list */ public function findExportGenerationByAliasAndUser(string $alias, User $user, int $limit = 100, int $offset = 0): array { return $this->createQueryBuilder('e') ->where('e.createdBy = :user') ->andWhere('e.exportAlias LIKE :alias') ->orderBy('e.createdAt', 'DESC') ->setParameter('user', $user) ->setParameter('alias', $alias) ->setFirstResult($offset) ->setMaxResults($limit) ->getQuery() ->getResult(); } /** * @return list */ public function findExportGenerationBySavedExportAndUser(SavedExport $savedExport, User $user, int $limit = 100, int $offset = 0): array { return $this->createQueryBuilder('e') ->where('e.createdBy = :user') ->andWhere('e.savedExport = :savedExport') ->orderBy('e.createdAt', 'DESC') ->setParameter('user', $user) ->setParameter('savedExport', $savedExport) ->setFirstResult($offset) ->setMaxResults($limit) ->getQuery() ->getResult(); } public function findExpiredExportGeneration(\DateTimeImmutable $atDate): iterable { return $this->createQueryBuilder('e') ->where('e.deleteAt < :atDate') ->setParameter('atDate', $atDate) ->getQuery() ->toIterable(); } }