feat: add findOneRandomByActor to MovieRoleRepository

This commit is contained in:
thibaud-leclere
2026-03-30 22:31:07 +02:00
parent e3ee26e070
commit 7f3738007d

View File

@@ -16,28 +16,25 @@ class MovieRoleRepository extends ServiceEntityRepository
parent::__construct($registry, MovieRole::class);
}
// /**
// * @return MovieRole[] Returns an array of MovieRole objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('m')
// ->andWhere('m.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('m.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
/**
* @param list<int> $excludeMovieRoleIds MovieRole IDs to exclude
* @return MovieRole|null
*/
public function findOneRandomByActor(int $actorId, array $excludeMovieRoleIds = []): ?MovieRole
{
$qb = $this->createQueryBuilder('mr')
->andWhere('mr.actor = :actorId')
->setParameter('actorId', $actorId);
// public function findOneBySomeField($value): ?MovieRole
// {
// return $this->createQueryBuilder('m')
// ->andWhere('m.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
if (!empty($excludeMovieRoleIds)) {
$qb->andWhere('mr.id NOT IN (:excludeIds)')
->setParameter('excludeIds', $excludeMovieRoleIds);
}
return $qb
->orderBy('RANDOM()')
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();
}
}