package com.nisum.myteam.service;

import java.util.List;

import org.bson.types.ObjectId;
import org.springframework.stereotype.Service;

import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.model.Billing;
import com.nisum.myteam.model.Employee;
import com.nisum.myteam.model.Resource;

@Service
public interface IResourceService {

	Resource addResource(Resource projectTeamMate, String loginEmpId) throws MyTeamException;

	String updateResource(Resource projectTeamMate, String loginEmpId) throws MyTeamException;

	void deleteResource(String empId, String projectId, ObjectId id, String loginEmpId);

	Resource save(Resource resource);

	void addResources(Employee employee, String loginEmpId);

	void inactivateResource(Employee employeeReq, Employee employeeUpdated, String loginEmpId);

	List<Resource> findByAccountAndActiveAndBillableStatus(String account, boolean status, String billableStatus);

	List<Resource> getResourcesSortByStartDate(String employeeId);

	List<Resource> getResourcesForProject(String projectId, String status);

	List<Resource> getResourcesForEmployee(String empId);

	List<Resource> getResourcesForProject(String projectId);

	List<Resource> getActiveResources(String empId);

	List<Resource> getResourcesForActiveProjects();
	
	List<Resource> getResourcesForShift(String shift);
	
	public List<Resource> getResourcesUnderDeliveryLead(String empId);

}
