package net.rrm.ehour.project.service;
import net.rrm.ehour.domain.Project;
import net.rrm.ehour.domain.ProjectAssignment;
import net.rrm.ehour.domain.User;
import java.util.List;
public interface ProjectAssignmentManagementService {
/**
* Assign user to project
*/
ProjectAssignment persistNewProjectAssignment(ProjectAssignment projectAssignment);
/**
* Update an existing assignment
*/
ProjectAssignment persistUpdatedProjectAssignment(ProjectAssignment assignment) throws ProjectAssignmentValidationException;
/**
* Assign all users to the specified project
*/
void assignAllUsersToProject(Project project);
/**
* Assign the given uses using the specified assignment as a template
*/
void assignUsersToProjects(List<User> users, ProjectAssignment assignmentTemplate);
/**
* Assign user to default projects
*/
User assignUserToDefaultProjects(User user);
/**
* Delete project assignment
*/
void deleteProjectAssignment(ProjectAssignment assignment);
}