/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.service;

import java.util.List;

import com.rjconsultores.ventaboletos.entidad.Empleado;
import com.rjconsultores.ventaboletos.entidad.Perfil;
import com.rjconsultores.ventaboletos.entidad.RecuperarSenha;
import com.rjconsultores.ventaboletos.entidad.Usuario;
import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.vo.embarcada.UsuarioEmbarcadaVO;

/**
 * 
 * @author gleimar
 */
public interface UsuarioService {

	public List<Usuario> obtenerTodos();

	public Usuario obtenerID(Integer id);

	public void borrar(Usuario entidad);

	public List<Usuario> buscarPeloNome(String nome);

	public Usuario buscarPeloNomeSenha(String stUsuario, String senha);

	public List<Usuario> buscarPorEmpleado(Empleado get);

	public List<Usuario> buscarPelaCveUsuario(String claveUsuario);

	public Usuario suscribirActualizar(Usuario entidad, String senha, Perfil perfil) throws BusinessException;

	public Usuario cambiarContrasena(Usuario entidad, String senha) throws BusinessException;

	public List<Usuario> buscarPeloNomeLike(String nome);
	
	public List<UsuarioEmbarcadaVO> buscarUsuariosEmbarcadaPorPontoVenda(Long puntoVentaId);

	public List<UsuarioEmbarcadaVO> buscarUsuariosEmbarcadaPorDispositivo(Long dispositivoEmbarcadaId);

	public List<UsuarioEmbarcadaVO> buscarUsuarioEmbarcadaPorUsuariosIds(List<Long> usuariosIdList);
	
	public List<UsuarioEmbarcadaVO> buscaUsuariosDoPuntoVenta(Long dispositivoEmbarcadaId);
	
	public RecuperarSenha buscarLinkRecuperacaoSenhaPeloParam(String param);
	
	public void desativarLinkRecuperacaoSenha(RecuperarSenha entidad);

	public void salvarLinkRecuperacaoSenha(RecuperarSenha entidad);

	public Usuario obtenerCompletoID(Integer id);
}