package com.nisum.myteam.service;

import java.util.HashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Service;

import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.model.Account;
import com.nisum.myteam.model.Employee;

@Service
public interface IEmployeeService {

	boolean isEmployeeExistsById(String employeeId);

	Employee createEmployee(Employee employeeRoles, String empId) throws MyTeamException;

	Employee updateEmployee(Employee employeeRoles, String empId);

	Employee deleteEmployee(String empId);

	Employee updateProfile(Employee employeeRoles) throws MyTeamException;

	Employee getEmployeeById(String empId);

	Employee getEmployeeByEmaillId(String emailId);

	List<Employee> getManagers() throws MyTeamException;

	List<Employee> getActiveEmployees() throws MyTeamException;

	List<Employee> getEmployeesByStatus(String status);

	List<Account> getAccounts() throws MyTeamException;

	Employee getEmployeeRoleDataForSearchCriteria(String searchId, String searchAttribute);

	List<String> getEmployeeDetailsForAutocomplete();

	List<HashMap<String, String>> getDeliveryLeads(String domainId);

	List<Employee> getEmployeesByFunctionalGrp(String functionalGrp);

	boolean verifyEmployeeRole(String empId, String roleName);

	List<Employee> getEmployeesFromList(Set<String> empIdsSet);
	
	 List<HashMap<String, String>> getDeliveryManagerMap(List deliveryManagerIdsList);
	 
	 public List<Employee> getAllEmployees();

}
