*/ interface EmployeeRepository extends Repository { public function find(UuidInterface $id): ?Employee; public function persist(Employee $employee): void; public function delete(Employee $employee): void; /** @return array */ public function getAll(): array; public function findByMatriculeAndCode(Matricule $matricule, Code $code): ?Employee; public function findByMatricule(Matricule $matricule): ?Employee; /** * @param array|Collection $matricules * @return array */ public function getWhereMatriculeIn(array | Collection $matricules): array; /** * @param array|Collection $matricules * @return array */ public function getWithCustomerWhereMatriculeIn(array | Collection $matricules): array; /** * @param array|Collection $excludedMatricules * @return array */ public function getWithCustomerWhereMatriculeNotIn(array | Collection $excludedMatricules): array; public function getMostRecentSyncDate(): ?\DateTimeInterface; }