Files
ltbxd-actorle/src/Repository/MovieRoleRepository.php
2026-03-30 22:31:07 +02:00

41 lines
1.1 KiB
PHP

<?php
namespace App\Repository;
use App\Entity\MovieRole;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<MovieRole>
*/
class MovieRoleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, MovieRole::class);
}
/**
* @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);
if (!empty($excludeMovieRoleIds)) {
$qb->andWhere('mr.id NOT IN (:excludeIds)')
->setParameter('excludeIds', $excludeMovieRoleIds);
}
return $qb
->orderBy('RANDOM()')
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();
}
}