package org.ros.chatto.service;

import java.util.List;
import java.util.Optional;
import java.util.Set;

import org.ros.chatto.dto.ActiveUserDTO;
import org.ros.chatto.dto.UserRegistrationDTO;
import org.ros.chatto.model.ChatUser;
import org.ros.chatto.model.Role;
import org.ros.chatto.model.UserSession;
import org.springframework.stereotype.Service;

@Service
public interface UserService {
	public List<String> findAllOtherUsers(String userName);

	public ChatUser createUser(UserRegistrationDTO userRegistrationDTO);

	public List<String> getAllRegularUsers();

	public Optional<ChatUser> getUser(String userName);

	public Set<Role> getRoles(ChatUser user);

	public List<ActiveUserDTO> getOtherActiveUsers(String userName);

	public void incrementUserSession(String userName);

	public UserSession decrementUserSession(String userName);
}
