@Override
  public void eliminarAV(long idAV) throws Exception {

    AV av = avDAO.traerAV(idAV);
    String tenant = getTenant(idAV);
    if (tenant != null) {
      List<Usuario> usuarios = av.getUsuariosCompartidos();

      for (Usuario usu : usuarios) {
        usu.removeAVCompartido(av);
        usuarioDAO.actualizarUsuario(usu);
      }

      Usuario usu = av.getUsuarioCreador();
      usu.removeAV(av);
      usuarioDAO.actualizarUsuario(usu);
      avDAO.eliminarAV(tenant, av);
    } else {
      throw new Exception("No existe un AV con id: " + idAV);
    }
  }
  public void compartirAV(long idAV, String nickname) {
    Usuario usu = usuarioDAO.buscarUsuario(nickname);
    AV av = avDAO.traerAV(idAV);

    List<Usuario> usuComp = av.getUsuariosCompartidos();
    usuComp.add(usu);
    av.setUsuariosCompartidos(usuComp);

    List<AV> avsComp = usu.getAVcompartidos();
    avsComp.add(av);
    usu.setAVcompartidos(avsComp);

    usuarioDAO.actualizarUsuario(usu);
    avDAO.actualizarAV(av);
  }
  public long altaAV(String nombreAV, String usuarioCreador) throws NombreDeAVInvalido {

    if (!seguridad.Validacion.esAlfaNumerico(nombreAV)) throw new exceptions.NombreDeAVInvalido();

    Usuario usu = usuarioDAO.buscarUsuario(usuarioCreador);

    if (usu != null) {
      if (!(this.existeAVusuario(nombreAV, usuarioCreador))) {
        AV av = new AV(nombreAV, usu, "skin-blue");
        av.setUsuarioCreador(usu); // usu
        avDAO.altaAV(av);
        usu.addAV(av);
        usuarioDAO.actualizarUsuario(usu);

        return av.getIdAV();
      }
    }
    return -1;
  }
  @Override
  public void descompartirAV(long idAV, String nickUsuario) throws NoExisteElAV {

    AV av = avDAO.traerAV(idAV);

    if (av != null) {
      List<Usuario> compas = av.getUsuariosCompartidos();
      Usuario compa = null;
      for (Usuario usu : compas) {
        if (usu.getNick().equals(nickUsuario)) {
          compa = usu;
          break;
        }
      }
      av.removeUsuarioCompartido(compa);
      compa.removeAVCompartido(av);

      avDAO.actualizarAV(av);
      usuarioDAO.actualizarUsuario(compa);

    } else {
      throw new exceptions.NoExisteElAV();
    }
  }