2026-03-30 09:10:44 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
2026-09-11 16:55:12 +02:00
|
|
|
namespace Uwil\ArcadiaApiPhpClient\Repository;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
2026-09-11 16:55:12 +02:00
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiDto\Dto\Employee;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiDto\Dto\PageOf;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiQueryBuilder\Direction;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\ArcadiaEmployeeId;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\EmployeeSorter;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\Pagination;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
|
|
|
|
interface EmployeeRepository extends Repository
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @return PageOf<Employee>
|
|
|
|
|
*/
|
|
|
|
|
public function selectAll(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
?EmployeeSorter $sorter = null
|
|
|
|
|
): PageOf;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return PageOf<Employee>
|
|
|
|
|
*/
|
|
|
|
|
public function selectAllSince(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
\DateTimeInterface $since,
|
|
|
|
|
Direction $sortDirection = Direction::DESC
|
|
|
|
|
): PageOf;
|
|
|
|
|
|
|
|
|
|
/**
|
2026-09-11 16:55:12 +02:00
|
|
|
* @param \Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\SiteId[] $sites
|
2026-03-30 09:10:44 +02:00
|
|
|
* @return PageOf<Employee>
|
|
|
|
|
*/
|
|
|
|
|
public function selectAllHavingSitesSince(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
\DateTimeInterface $since,
|
|
|
|
|
array $sites,
|
|
|
|
|
Direction $sortDirection = Direction::DESC
|
|
|
|
|
): PageOf;
|
|
|
|
|
|
|
|
|
|
/**
|
2026-09-11 16:55:12 +02:00
|
|
|
* @param \Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\SiteId[] $sites
|
2026-03-30 09:10:44 +02:00
|
|
|
* @return PageOf<Employee>
|
|
|
|
|
*/
|
|
|
|
|
public function selectAllHavingSites(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
array $sites,
|
|
|
|
|
?EmployeeSorter $sorter = null
|
|
|
|
|
): PageOf;
|
|
|
|
|
|
|
|
|
|
public function find(ArcadiaEmployeeId $id): ?Employee;
|
|
|
|
|
}
|