package com.jasamedika.medifirst2000.service;

import java.util.List;
import java.util.Map;

import org.springframework.orm.jpa.JpaSystemException;

import com.jasamedika.medifirst2000.entities.LoginUser;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.vo.LoginUserVO;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;


public interface LoginUserService extends BaseVoService<LoginUser, LoginUserVO, Integer> {
	
	LoginUserVO signIn(AuthVO authVO) throws Exception;

	LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException;

	LoginUserVO findById(Integer key) throws JpaSystemException;

	LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException;

	List<LoginUserVO> findAll() throws JpaSystemException;

	Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, String sort, String dir);

	Boolean delete(Integer key) throws JpaSystemException;

	LoginUser getLoginUser();
	
	Map<String, Object> getAllUser();
	
	//-------------------------------------------------------------------------------------------------------------------------------
	
	public Map<String, Object> getLoadData();
	public List<Map<String, Object>> getListSideMenu();
	public Map<String, Object> saveLoginUser(LoginUserVO vo);
	public Map<String, Object> getListRuangan(Integer loginUserId);
	public Map<String, Object> getListModulAplikasi(Integer modulAplikasiId);
	public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId);
	
	// Alter Syamsu
	
	List<LoginUser> findByNamaUser(String namaUser);
	Ruangan getCurrentRuangan();
	Integer getCurrentRuanganId();
	Map<String, Object> saveUpdateLoginUser(LoginUserVO vo);
	public LoginUser setLoginUser(LoginUserVO vo);
	
}
