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-14 19:26:21 +02:00
|
|
|
use Uwil\ArcadiaApiPhpClient\Error\ApiError;
|
2026-09-11 16:55:12 +02:00
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiDto\Dto\Employee;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiDto\Dto\PageOf;
|
2026-09-14 19:26:21 +02:00
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiSorter\EmployeeSorter;
|
2026-09-11 16:55:12 +02:00
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\ArcadiaEmployeeId;
|
|
|
|
|
use Uwil\ArcadiaApiPhpClient\Lib\Pagination;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
2026-09-14 19:26:21 +02:00
|
|
|
/**
|
|
|
|
|
* @internal
|
|
|
|
|
*/
|
2026-03-30 09:10:44 +02:00
|
|
|
interface EmployeeRepository extends Repository
|
|
|
|
|
{
|
|
|
|
|
/**
|
2026-09-14 19:26:21 +02:00
|
|
|
* @return PageOf<Employee>|ApiError
|
2026-03-30 09:10:44 +02:00
|
|
|
*/
|
|
|
|
|
public function selectAll(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
?EmployeeSorter $sorter = null
|
2026-09-14 19:26:21 +02:00
|
|
|
): PageOf | ApiError;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
|
|
|
|
/**
|
2026-09-14 19:26:21 +02:00
|
|
|
* @return PageOf<Employee>|ApiError
|
2026-03-30 09:10:44 +02:00
|
|
|
*/
|
|
|
|
|
public function selectAllSince(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
\DateTimeInterface $since,
|
2026-09-14 19:26:21 +02:00
|
|
|
\SortDirection $sortDirection = \SortDirection::Descending
|
|
|
|
|
): PageOf | ApiError;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
|
|
|
|
/**
|
2026-09-11 16:55:12 +02:00
|
|
|
* @param \Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\SiteId[] $sites
|
2026-09-14 19:26:21 +02:00
|
|
|
* @return PageOf<Employee>|ApiError
|
2026-03-30 09:10:44 +02:00
|
|
|
*/
|
|
|
|
|
public function selectAllHavingSitesSince(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
\DateTimeInterface $since,
|
|
|
|
|
array $sites,
|
2026-09-14 19:26:21 +02:00
|
|
|
\SortDirection $sortDirection = \SortDirection::Descending
|
|
|
|
|
): PageOf | ApiError;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
|
|
|
|
/**
|
2026-09-11 16:55:12 +02:00
|
|
|
* @param \Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\SiteId[] $sites
|
2026-09-14 19:26:21 +02:00
|
|
|
* @return PageOf<Employee>|ApiError
|
2026-03-30 09:10:44 +02:00
|
|
|
*/
|
|
|
|
|
public function selectAllHavingSites(
|
|
|
|
|
Pagination $pagination,
|
|
|
|
|
array $sites,
|
|
|
|
|
?EmployeeSorter $sorter = null
|
2026-09-14 19:26:21 +02:00
|
|
|
): PageOf | ApiError;
|
2026-03-30 09:10:44 +02:00
|
|
|
|
2026-09-14 19:26:21 +02:00
|
|
|
public function find(ArcadiaEmployeeId $id): Employee | null | ApiError;
|
2026-03-30 09:10:44 +02:00
|
|
|
}
|