package negocios; import java.util.Collection; import java.util.List; import javax.ejb.Local; import negocios.excepciones.ContactoYaExiste; import negocios.excepciones.EntidadNoExiste; import persistencia.Categoria; import persistencia.Imagen; import persistencia.Invitacion; import persistencia.Notificacion; import persistencia.Oferta; import persistencia.Pago; import persistencia.SitioInteres; import persistencia.Usuario; @Local public interface GestionUsuarios { /** * Verifica si el loguin del usuario es correcto. * * @param nombre * Nombre de usuario. * @param password * ContraseƱa del usuario. * @return Retorna si es valido o no. */ public int checkLogin(String nombre, String password); /** * Se registra un nuevo usuario. * * @param usuario * Datos del usuario a registrar. */ public void registrarUsuario(Usuario usuario); /** * Modifica la informacion de un usuario. * * @param usuario * Los datos del usuario a modificar. */ public void modificarUsuario(Usuario usuario) throws EntidadNoExiste; /* Funciones Android */ /** * Obtiene todos los contactos de un usuario con un id particular. * * @param idUsuario * Identificador del usuario. * @return Lista de contactos del usuario. * @throws EntidadNoExiste * Si no existe el usuario se lanza esta excepcion */ public List<Usuario> getContactos(final int idUsuario) throws EntidadNoExiste; /** * Obtiene la informacion de un contacto en particular. * * @param idUsuario * Identificador del usuario. * @param idContacto * Identificador del contacto. * @return El contacto del usuario dado. * @throws EntidadNoExiste * Si alguno de los usuario no existe se lanza esta excepcion */ public Usuario getContacto(final int idUsuario, final int idContacto) throws EntidadNoExiste; /** * Invita a un usuario a ser contacto. * * @param idUsuario * Identificador del usuario. * @param idContacto * Identificador del contacto a pedir la invitacion. * @throws EntidadNoExiste * Si no existe alguno de los usuarios lanza esta excepcion * @throws ContactoYaExiste * Si el usuario idUsuario ya tiene como contacto a el usuairo idContacto se lanza esta excepcion */ public void invitarContacto(final int idUsuario, final int idContacto) throws EntidadNoExiste, ContactoYaExiste; /** * Obtener todas las invitaciones del usuario. * * @param idUsuario * Identificador del usuario. * @return Lista de invitaciones del usuario. */ public List<Invitacion> getInvitaciones(final int idUsuario) throws EntidadNoExiste; /** * Aceptar la invitacion de un contacto. * * @param idUsuario * Identificador del usuario. * @param idContacto * Identificador del contacto. * @throws EntidadNoExiste * Si alguno de los usuario no existe se lanza esta excepcion * @throws ContactoYaExiste * Si los usuarios ya son contactos se lanza esta excepcion */ public void aceptarInvitacion(final int idUsuario, final int idContacto) throws EntidadNoExiste, ContactoYaExiste; /** * Obtener las notificaciones del usuario. * * @param idUsuario * Identificador del usuario. * @return Lista de notficaciones a mostrar. */ public List<Notificacion> getNotificaciones(final int idUsuario, final double latitud, final double longitud, final double distancia) throws EntidadNoExiste; /** * Permite al usuario realizar una compra de una ofera * @param idUsuario * Identificador del usuario * @param idOferta * Identificado de la oferta * @param pago * El pago realizado por el usuario * @throws EntidadNoExiste * En caso de que no exista el usuario o la oferta se lanza esta excepcion */ public void comprarOferta(int idUsuario, int idOferta, Pago pago) throws EntidadNoExiste; /** * Busca usuarios * @param nombre * El nombre o comienzo del nombre * @return * Los usuarios cuyo nombre comienzan con el parametro nombre */ public List<Usuario> buscarUsuario(String nombre); /** * Agrega categorias al usuario * @param idUsuario usuario al que se le agregan las categorias * @param idCategorias los id's categorias a agregar */ public void agregarCategorias(int idUsuario, Collection<Integer> idCategorias); /** * Borra categorias al usuario * @param idUsuario usuario al que se le borran las categorias * @param idCategorias los id's categorias a borrar */ public void borrarCategorias(int idUsuario, Collection<Integer> idCategorias); /** * Obtiene una imagen a partir del id * @param id Id de la imagen * @return La imagen que se busca */ public Imagen obtenerImagen(int id); /** * Obtiene todas las categorias del sistema * @return Las categorias del sistema */ public List<Categoria> obtenerCategorias(); /** * Funcion anolaga a checkLogin pero para usuarios de facebook * @param nombre * @return En caso de que exista el usuario devuelve el id si no devuelve -1 */ public int checkLoginUsuarioFacebook(String nombre); /** * Da de alta una imagen en el sistema * @param imagen la imagen a dar de alta * @return el id de la imagen */ public int altaImagen(Imagen imagen); /** * Obtiene las ofertas de un local para un usuario * @param idLocal el local al que se le piden las ofertas * @param idUsuario el usuario que esta buscando las oferas * @return Las ofertas que pertencen al local y compartenn una categoria con usuario */ public List<Oferta> obtenerOfertasLocalUsuario(int idLocal, int idUsuario); /** * Obtiene un usuario * @param idUsuario Id del usuario * @return el usuario que tiene el id en cuestion */ public Usuario obtenerUsario(int idUsuario); public List<SitioInteres> getSitioInteresIntegracion(double latitud, double longitud, double radio); public List<persistencia.Local> getOfertasIntegracion(double latitud, double longitud,double radio); }