package eu.dnetlib.client.notification;

import java.util.ArrayList;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

import eu.dnetlib.efg1914.authoring.components.Configuration;
import eu.dnetlib.efg1914.authoring.components.Frame;
import eu.dnetlib.efg1914.authoring.components.Item;
import eu.dnetlib.efg1914.authoring.components.Theme;
import eu.dnetlib.efg1914.authoring.components.Topic;
import eu.dnetlib.efg1914.authoring.users.User;

@RemoteServiceRelativePath("NotificationService")
public interface NotificationService extends RemoteService {

	void register(String userId);

	void logout(String userId, ArrayList<String> userLockedComponents);

	void addItem(Item it);

	void updateItem(Item it);

	void deleteItem(Item it);

	void addFrame(Frame it);

	void deleteFrame(Frame frame);

	void updateFrame(Frame it);

	void addTopic(Topic it);

	void deleteTopic(Topic topic);

	void updateTopic(Topic it);

	void addTheme(Theme it);

	void deleteTheme(Theme theme);

	void updateTheme(Theme it);

	void unmarkComponent(String componentId, String userId);

	void markComponent(String componentId, String userId);

	void addUser(User user);

	void updateUser(User user);

	void deleteUser(String userId);

	void clearActive();

	void clearActiveByUser(String userId, ArrayList<String> userLockedComponents);

	void updateConfiguration(Configuration configuration);

 
}