<?php
declare(strict_types=1);
namespace Slivki\Dao\Offer;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Types\Types;
final class FavouriteOfferDao implements FavouriteOfferDaoInterface
{
private Connection $connection;
public function __construct(Connection $connection)
{
$this->connection = $connection;
}
public function getUsersWithOfferInFavouritesCount(int $offerId): int
{
$qb = $this->connection->createQueryBuilder();
$expr = $qb->expr();
return $qb
->addSelect('count(distinct fo.user_id)')
->from('favourite_offer', 'fo')
->andWhere($expr->eq('fo.offer_id', ':offerId'))
->setParameter('offerId', $offerId, Types::INTEGER)
->execute()
->fetchOne();
}
}