*/ public function getAllSince( Pagination $pagination, \DateTimeInterface $since, Direction $sortDirection = Direction::DESC, ): PageOf { return $this->employeeRepository->selectAllSince( $pagination, $since, $sortDirection ); } /** @return PageOf */ public function getAll( Pagination $pagination, ?EmployeeSorter $sorter = null, ): PageOf { return $this->employeeRepository->selectAll( $pagination, $sorter, ); } /** * @param SiteId[]|SiteId $sites * @return PageOf */ public function getAllOfSitesSince( Pagination $pagination, array | SiteId $sites, \DateTimeInterface $since, Direction $sortDirection = Direction::DESC, ): PageOf { $sites = is_array($sites) ? $sites : [$sites]; if (count($sites) < 1) { throw new \InvalidArgumentException('At least 1 site is required'); } foreach ($sites as $site) { if (! ($site instanceof SiteId)) { throw new \InvalidArgumentException('Expected instance of ' . SiteId::class); } } return $this->employeeRepository->selectAllHavingSitesSince( $pagination, $since, $sites, $sortDirection, ); } /** * @param SiteId[]|SiteId $sites * @return PageOf */ public function getAllOfSites( Pagination $pagination, array | SiteId $sites, ?EmployeeSorter $sorter = null, ): PageOf { $sites = is_array($sites) ? $sites : [$sites]; if (count($sites) < 1) { throw new \InvalidArgumentException('At least 1 site is required'); } foreach ($sites as $site) { if (! ($site instanceof SiteId)) { throw new \InvalidArgumentException('Expected instance of ' . SiteId::class); } } if ($sorter !== null) { return $this->employeeRepository->selectAllHavingSites( $pagination, $sites, $sorter ); } return $this->employeeRepository->selectAllHavingSites( $pagination, $sites, ); } public function findBy(ArcadiaEmployeeId $id): ?Employee { return $this->employeeRepository->find($id); } }