ldc-arcadia-genesis-php-client/src/Repository/EmployeeRepository.php

58 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace Uwil\ArcadiaApiPhpClient\Repository;
use Uwil\ArcadiaApiPhpClient\Error\ApiError;
use Uwil\ArcadiaApiPhpClient\Lib\ApiDto\Dto\Employee;
use Uwil\ArcadiaApiPhpClient\Lib\ApiDto\Dto\PageOf;
use Uwil\ArcadiaApiPhpClient\Lib\ApiSorter\EmployeeSorter;
use Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\ArcadiaEmployeeId;
use Uwil\ArcadiaApiPhpClient\Lib\Pagination\Pagination;
/**
* @internal
*/
interface EmployeeRepository extends Repository
{
/**
* @return PageOf<Employee>|ApiError
*/
public function selectAll(
Pagination $pagination,
?EmployeeSorter $sorter = null
): PageOf | ApiError;
/**
* @return PageOf<Employee>|ApiError
*/
public function selectAllSince(
Pagination $pagination,
\DateTimeInterface $since,
\SortDirection $sortDirection = \SortDirection::Descending
): PageOf | ApiError;
/**
* @param \Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\SiteId[] $sites
* @return PageOf<Employee>|ApiError
*/
public function selectAllHavingSitesSince(
Pagination $pagination,
\DateTimeInterface $since,
array $sites,
\SortDirection $sortDirection = \SortDirection::Descending
): PageOf | ApiError;
/**
* @param \Uwil\ArcadiaApiPhpClient\Lib\ApiValueObject\SiteId[] $sites
* @return PageOf<Employee>|ApiError
*/
public function selectAllHavingSites(
Pagination $pagination,
array $sites,
?EmployeeSorter $sorter = null
): PageOf | ApiError;
public function find(ArcadiaEmployeeId $id): Employee | null | ApiError;
}