package org.yacos.core.conferences;

import java.util.Date;
import java.util.List;

import javax.ejb.Remote;

import org.yacos.core.users.Role;
import org.yacos.core.users.User;

@Remote
public interface IConferenceManager {
    
	//CRUD methodes
	public Conference addConference(String titre, String descirption, String infoComplementray, Date dataAbstract, Date dateArticle, Date dateEvaluation, Date dateStart, Date dateEnd);
	public Conference getConference(Integer id);
	
	public void remove(Conference conf);
	public void update(Conference conf);
	
	//article methodes
	//FIXME 
	//methode a gicler ?
	//public void addArticle(User user);
	//public Collection<Article> getArticles(Integer id);
	
	//list methodes
	public List<Conference> getConferences();
	public List<Conference> getConferences(User user);
	
		
	//role et user methode
	public void addRole(Role.RoleType roleType, User user, Conference conf);
	public void removeRole(Role role);
	public List<Role> getRoles();
	public List<Role> getRoles(User user, Conference conf);
	public void updateRole(Role role);
}
