<?php

namespace App\Repository;

use App\Entity\EquipementPuissance;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;

/**
 * @method Puissance|null find($id, $lockMode = null, $lockVersion = null)
 * @method Puissance|null findOneBy(array $criteria, array $orderBy = null)
 * @method Puissance[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class EquipementPuissanceRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, EquipementPuissance::class);
    }

    public function findAll( array $orderBy = ['libelle' => 'ASC'] )
    {
        return $this->findBy([], $orderBy);
    }


    public function findAllArray()
    {
        return $this->createQueryBuilder('o')
            ->orderBy('o.libelle', 'ASC')
            ->getQuery()
            ->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY)
            ;
    }

    public function getPuissancesByType($idType) {
        return $this->createQueryBuilder('ep')
            ->select()
            ->join('ep.equipementTypePuissances', 'etp')
            ->join('etp.equipement_type', 'et')
            ->andWhere('et.id=:idType')
            ->setParameter('idType', $idType)
            ->getQuery()
            ->getResult()
            ;
    }
}
