<?php
namespace App\Repository;
use App\Entity\Company\Brand;
use App\Entity\Event\Workshop;
use App\Entity\User;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Tools\Pagination\Paginator;
class SeasonRepository extends EntityRepository
{
public function getDefaultSeason()
{
$query = $this->createQueryBuilder('s')
->join('s.brand', 'b')
->andWhere("b.baseInformation.slug = 'defaut'")
->setMaxResults(1);
return $query->getQuery()->getOneOrNullResult();
}
public function seasonByUser(User $user, bool $limitDate)
{
$query = $this->createQueryBuilder('s')
->join('s.userSeasons', 'us')
->andWhere('us.user = :user')
->setParameter('user', $user);
if ($limitDate) {
$query
->andWhere('s.startAt <= CURRENT_DATE()')
->andWhere('s.endAt >= CURRENT_DATE()');
}
$query->orderBy('s.startAt', 'DESC');
return $query;
}
public function getCurrentDefaultSeasonByUser(User $user, bool $limitDate = true)
{
$query = $this->seasonByUser($user, $limitDate);
return $query->setMaxResults(1)->getQuery()->getOneOrNullResult();
}
public function getSeasonsByUser(User $user, bool $limitDate = true)
{
$query = $this->seasonByUser($user, $limitDate);
return $query->getQuery()->getResult();
}
}