package info.bukova.isspst.services.workgroups;

import info.bukova.isspst.data.JobMapping;
import info.bukova.isspst.data.Member;
import info.bukova.isspst.data.Role;
import info.bukova.isspst.data.User;
import info.bukova.isspst.data.Workgroup;
import info.bukova.isspst.services.Service;

import java.util.List;

public interface WorkgroupService extends Service<Workgroup>  {
	
	public void addMember(Workgroup workgroup, Member member, Role role);
	public void removeMember(Workgroup workgroup, JobMapping jobMapping);
	public List<Workgroup> getWorkgroups();
	public List<Workgroup> getCentres();
	public boolean isMember(Workgroup workgroup, Member member);
	public List<Workgroup> getUserCentres(User user);
	public List<Workgroup> getUserCentres(User user, boolean userOnly);
	public List<Workgroup> getUserWorkgroups(User user);
	public List<Role> getUserWorkgroupRoles(Workgroup workgroup, User user);
	public List<Member> getMembers(Workgroup workgroup);
	public void loadMembers(Workgroup workgroup);
	public void loadParents(Member member);
	public void loadParentsMembers(Workgroup workgroup);

}
