src/Repository/MessengerMessagesRepository.php line 66
<?phpnamespace App\Repository;use App\Entity\MessengerMessages;use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;use Doctrine\Persistence\ManagerRegistry;/*** @extends ServiceEntityRepository<MessengerMessage>** @method MessengerMessage|null find($id, $lockMode = null, $lockVersion = null)* @method MessengerMessage|null findOneBy(array $criteria, array $orderBy = null)* @method MessengerMessage[] findAll()* @method MessengerMessage[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)*/class MessengerMessagesRepository extends ServiceEntityRepository{public function __construct(ManagerRegistry $registry){parent::__construct($registry, MessengerMessages::class);}/*** Conta o número de mensagens pendentes (não entregues).*/public function countPendingMessages(): int{return $this->createQueryBuilder('m')->select('count(m.id)')->where('m.delivered_at IS NULL')->getQuery()->getSingleScalarResult();}/*** Busca mensagens pendentes de um usuário específico com base na string serializada.*/public function findPendingMessagesByUser(int $userId): array{$pattern = '%;i:' . $userId . ';s:8:%';return $this->createQueryBuilder('m')->where('m.delivered_at IS NULL')->andWhere('m.body LIKE :pattern')->setParameter('pattern', $pattern)->orderBy('m.created_at', 'DESC')->getQuery()->getResult();}/*** Conta as mensagens pendentes para um usuário específico.*/public function countPendingMessagesByUser(int $userId): int{$pattern = '%;i:' . $userId . ';s:8:%';return $this->createQueryBuilder('m')->select('COUNT(m.id)')->where('m.delivered_at IS NULL')->andWhere('m.body LIKE :pattern')->setParameter('pattern', $pattern)->getQuery()->getSingleScalarResult();}// /**// * @return MessengerMessage[] Returns an array of MessengerMessage 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()// ;// }// public function findOneBySomeField($value): ?MessengerMessage// {// return $this->createQueryBuilder('m')// ->andWhere('m.exampleField = :val')// ->setParameter('val', $value)// ->getQuery()// ->getOneOrNullResult()// ;// }}