package com.nisum.myteam.service;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.model.EmpLoginData;
import com.nisum.myteam.model.Employee;
import com.nisum.myteam.model.EmployeeDashboardVO;
import com.nisum.myteam.model.Project;
import com.nisum.myteam.model.Resource;

public interface IProjectService {

	Project createProject(Project project, String loginEmpId) throws MyTeamException;

	Project updateProject(Project project, String loginEmpId) throws MyTeamException;

	void deleteProject(String projectId);

	List<Project> getProjectsUnderDomain(String domainId);

	List<HashMap<Object, Object>> getProjects() throws MyTeamException;

	List<Project> getProjectsUnderDeliveryLead(String managerId) throws MyTeamException;

	public Resource addNewBeanchAllocation(Employee employee, String loginEmpId);

	List<EmpLoginData> employeeLoginsBasedOnDate(long id, String fromDate, String toDate) throws MyTeamException;

	String generatePdfReport(long id, String fromDate, String toDate) throws MyTeamException;

	List<Resource> getResourcesUnderProject(String empId);

	List<Employee> getUnAssignedEmployees();

	public List<EmployeeDashboardVO> getEmployeesDashBoard();

	public String addProjectTeamMateWithCheck(Resource projectTeamMate, String loginEmpId) throws MyTeamException;

	public List<HashMap<Object, Object>> getProjectsForEmployee(String empId);

	public Set<String> accountsAssignedToDl(String empId);

	public List<HashMap<Object, Object>> deliveryLeadProjects(String empId) throws MyTeamException;

	public List<Project> getAllProjects();
}
