<?php

namespace Lc\CaracoleBundle\Repository\Section;

use Lc\CaracoleBundle\Repository\SectionStoreTrait;
use Lc\CaracoleBundle\Repository\AbstractStore;
use Lc\SovBundle\Repository\RepositoryQueryInterface;

class OpeningStore extends AbstractStore
{
    use SectionStoreTrait;

    protected OpeningRepositoryQuery $query;

    public function __construct(OpeningRepositoryQuery $query)
    {
        $this->query = $query;
    }

    public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
    {
        $query->orderBy('day');
        return $query;
    }

    public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
    {
        $this->addFilterBySectionOptionnal($query);
        return $query;
    }

    public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
    {
        return $query;
    }

    public function getOneToday($query = null)
    {
        $query = $this->createDefaultQuery($query);
        $query->filterByToday();
        return $query->findOne();
    }
}