/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package WebService;

import CargaMasiva.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

/**
 *
 * @author Pavel
 */
@WebService(serviceName = "Fase2Web")
public class Fase2Web {

    BaseDatos.Metodos consultar = new BaseDatos.Metodos();
    CargarUsuarios cargar = new CargaMasiva.CargarUsuarios();
    CargarProductos cargarP = new CargaMasiva.CargarProductos();
    CargarEmpresas cargarE = new CargaMasiva.CargarEmpresas();
    Descarga.GenerarUsuarios genUser = new Descarga.GenerarUsuarios();
    Descarga.GenerarJuegos genGames = new Descarga.GenerarJuegos();
    Descarga.GenerarEmpresas genEnter= new Descarga.GenerarEmpresas();

    /**
     * This is a sample web service operation
     */
    @WebMethod(operationName = "Suma")
    public String hello(@WebParam(name = "name") String txt) {
        return txt;
    }

    /**
     * Web service operation
     */
    //con este metodo se insertara a los usuarios en la base de datos cuando se registre
    @WebMethod(operationName = "insertarUsuario")
    public int insertarUsuario(@WebParam(name = "id") int id, @WebParam(name = "usuario") String usuario, @WebParam(name = "contra") String contra, @WebParam(name = "mail") String mail, @WebParam(name = "ciudad") String ciudad) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.insertarUsuario(id, usuario, contra, mail, 0)) {
            return 1;
        } else {
            return 0;
        }

    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "IniciarSesion")
    public Boolean IniciarSesion(@WebParam(name = "user") String user, @WebParam(name = "pass") String pass) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.IniciarSesion(user, pass) == 1) {
            return true;
        } else {
            return false;
        }
    }
    
    @WebMethod(operationName = "IniciarSesion2")
    public int IniciarSesion2(String user, String pass) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.IniciarSesion(user, pass) == 1) {
            return 1;
        } else {
            return 0;
        }
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "InsertarRol")
    public void InsertarRol(@WebParam(name = "usuario") String usuario, @WebParam(name = "rol") String rol) throws SQLException {
        //TODO write your implementation code here:
        consultar.InsertarRol(usuario, rol);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "RolUsuario")
    public Boolean RolUsuario(@WebParam(name = "nick") String nick, @WebParam(name = "rol") String rol) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.rol(nick, rol) == 1) {
            return true;
        }
        return false;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "CargarUsuarios")
    public Boolean CargarUsuarios(@WebParam(name = "path") String path) throws IOException, SQLException {
        //TODO write your implementation code here:
//        String nickname;
//        String rol="";
//        int id;
//        String mail;
//        String pass;
//        String ciudad;
//        int x=0;
//        for (int i = 0; i < cargar.users().size()/5; i++) {
//            nickname=cargar.users().get(0+5*x);
//            id=Integer.parseInt(cargar.users().get(1+5*x));
//            mail=cargar.users().get(2+5*x);
//            pass=cargar.users().get(3+5*x);
//            ciudad=cargar.users().get(4+5*x);
//            x++;
//            consultar.insertarUsuario(id, nickname, pass, mail, ciudad, 0);
//        }
//        if (cargar.users(path)==1) {
//            return true;
//        }
//        return false;
        if (cargar.users(path) == 1) {
            return true;
        }
        return false;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "productos")
    public Boolean productos(@WebParam(name = "ruta") String ruta) throws IOException, FileNotFoundException, ParseException, SQLException {
        //TODO write your implementation code here:
        if (cargarP.juegos(ruta) == 1) {
            return true;
        }
        return false;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "operation")
    public int operation() throws SQLException {
        //TODO write your implementation code here:
        int cant = consultar.retornarTamaño();
        return cant;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "CrearImagen")
    public String[] CrearImagen(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String datos[] = consultar.retornarImagen(id);
        return datos;
    }

    @WebMethod(operationName = "ObtenerPerfil")
    public String[] ObtenerPerfil(@WebParam(name = "nombre_juego") String nombre_juego) throws ParseException, SQLException {
        //TODO write your implementation code here:
        String datoPerfil[] = consultar.retornarPerfil(nombre_juego);
        return datoPerfil;
    }

    @WebMethod(operationName = "ObtenerPerfilOtro")
    public String[] ObtenerPerfilOtro(@WebParam(name = "publicado") String publicado, @WebParam(name = "id") int id) throws ParseException, SQLException {
        //TODO write your implementation code here:
        String datoPerfil[] = consultar.retornarPerfil(publicado, id);
        return datoPerfil;
    }

    @WebMethod(operationName = "ObtenerPerfilUsuario")
    public String[] ObtenerPerfilUsuario(@WebParam(name = "nombre_usuario") String nombre_usuario) throws ParseException, SQLException {
        //TODO write your implementation code here:
        String datoPerfil[] = consultar.retornarPerfilUsuario(nombre_usuario);
        return datoPerfil;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "AgregarCarro")
    public Boolean AgregarCarro(@WebParam(name = "id_producto") int id_producto, @WebParam(name = "precio") double precio, @WebParam(name = "nombre_producto") String nombre_producto, @WebParam(name = "imagen") String imagen) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.InsertarCarro(id_producto, precio, nombre_producto, imagen) == 1) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "RetornarCar")
    public String[] RetornarCar(@WebParam(name = "id_producto") int id) throws ParseException, SQLException {
        //TODO write your implementation code here:
        String dato[] = consultar.RetornarCarro(id);
        return dato;
    }

    @WebMethod(operationName = "RetornarTamañoCarro")
    public int RetornarTamañoCarro() throws ParseException, SQLException {
        //TODO write your implementation code here:
        int s = consultar.retornarTamañoCarro();
        return s;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "InsertarCompra")
    public int InsertarCompra(@WebParam(name = "Nombre") String Nombre, @WebParam(name = "precio") double precio) throws SQLException {
        //TODO write your implementation code here:
        int num = consultar.InsertarCompra(Nombre, precio);
        return num;
    }

    @WebMethod(operationName = "BorrarFila")
    public Boolean BorrarFila(String no) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.borrarFila(no) != 0) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "BorrarTabla")
    public Boolean BorrarTabla() throws SQLException {
        //TODO write your implementation code here:
        if (consultar.borrarDatos() != 0) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "InsertarDetalle")
    public Boolean InsertarDetalle(int comp, int pro) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.InsertarDetalle(comp, pro) != 0) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "ActualizarSaldo")
    public Double ActualizarSaldo(String comp, Double pro) throws SQLException {
        //TODO write your implementation code here:
        Double saldo = consultar.ActualizarSaldo(comp, pro);
        return saldo;
    }

    @WebMethod(operationName = "ObtenerIdCompra")
    public int ObtenerIdCompra(String nombre) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.JuegoAdquirido(nombre) != 0) {
            return consultar.JuegoAdquirido(nombre);
        }
        return 0;
    }

    @WebMethod(operationName = "ObtenerIdCompraProducto")
    public Boolean ObtenerIdCompraProducto(int id, int idPro) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.PerfilProducto(id, idPro) != 0) {
            return true;
        }
        return false;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "agregartarjeta")
    public Boolean agregartarjeta(@WebParam(name = "notarjeta") int notarjeta, @WebParam(name = "usuario") String usuario, @WebParam(name = "cuenta") int cuenta) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.InsertarTarjeta(notarjeta, usuario, cuenta) != 0) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "agregartarjetaMenos")
    public Boolean agregartarjetaMenos(@WebParam(name = "notarjeta") int notarjeta, @WebParam(name = "usuario") String usuario) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.InsertarTarjeta(notarjeta, usuario) != 0) {
            return true;
        }
        return false;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "BorrarTarjeta")
    public Boolean BorrarTarjeta(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.borrarTarjeta(user) != 0) {
            return true;
        }
        return false;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "enviarsolicitud")
    public Boolean enviarsolicitud(@WebParam(name = "id") int id, @WebParam(name = "user") String user, @WebParam(name = "tipo") String tipo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.solicitud(id, user, tipo) != 0) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "ReCategoria")
    public String[] ReCategoria() throws SQLException {
        //TODO write your implementation code here:
        String[] categoria = consultar.categoria();
        return categoria;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "insertarjuegos")
    public Boolean insertarjuegos(@WebParam(name = "id") int id, @WebParam(name = "nombre") String nombre, @WebParam(name = "descripcion") String descripcion, @WebParam(name = "link") String link, @WebParam(name = "version") String version, @WebParam(name = "imagen") String imagen, @WebParam(name = "estado") String estado, @WebParam(name = "precio") double precio, @WebParam(name = "categoria") String categoria, @WebParam(name = "publicado") String publicado) throws FileNotFoundException, ParseException, SQLException {
        //TODO write your implementation code here:
        consultar.insertarjuegos(id, nombre, descripcion, link, version, imagen, estado, precio, publicado);
        consultar.InsertarJuegoProducto(categoria, id);
        return true;
    }

    @WebMethod(operationName = "TamañoProductos")
    public int TamañoProductos() throws SQLException {
        //TODO write your implementation code here:
        int tam = consultar.tamañoProducto();
        return tam;
    }

    @WebMethod(operationName = "empresas")
    public Boolean empresas(@WebParam(name = "ruta") String ruta) throws IOException, FileNotFoundException, ParseException, SQLException {
        //TODO write your implementation code here:
        if (cargarE.empresas(ruta) == 1) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "Insertarempresa")
    public Boolean Insertarempresa(@WebParam(name = "id") int id, @WebParam(name = "nombre") String nombre) throws IOException, FileNotFoundException, ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.insertarEmpresa(id, nombre)) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "Updaterempresa")
    public Boolean Updaterempresa(@WebParam(name = "id") int id, @WebParam(name = "nombre") String user) throws IOException, FileNotFoundException, ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.ActualizarEmpresa(id, user)) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "TamañoEmpresa")
    public int TamañoEmpresa() throws SQLException {
        //TODO write your implementation code here:
        int tam = consultar.tamañoEmpresa();
        return tam;
    }

    @WebMethod(operationName = "Resolicitud")
    public String[] Resolicitud() throws ParseException, SQLException {
        //TODO write your implementation code here:
        String[] categoria = consultar.retornarSolicitud();
        return categoria;
    }

    @WebMethod(operationName = "BorrarSolicitud")
    public Boolean BorrarSolicitud(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.borrarSolicitud(user) != 0) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "retornarPorEstado")
    public String[] retornarPorEstado(@WebParam(name = "id") int id) throws ParseException, SQLException {
        //TODO write your implementation code here:

        String[] vec = consultar.retornarPorEstado(id);
        return vec;

    }

    @WebMethod(operationName = "TamañoLogro")
    public int TamañoLogro() throws SQLException {
        //TODO write your implementation code here:
        int tam = consultar.tamañologro();
        return tam;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "insertarLogro")
    public Boolean insertarLogro(@WebParam(name = "id_logro") int id_logro, @WebParam(name = "nombre") String nombre, @WebParam(name = "id_juego") int id_juego, @WebParam(name = "experiencia") int experiencia, @WebParam(name = "descripcion") String descripcion) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.insertarLogro(id_logro, nombre, id_juego, experiencia, descripcion) == 1) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "logroporusuario")
    public Boolean logroporusuario(@WebParam(name = "usuario") String usuario, @WebParam(name = "nombrelogro") String nombrelogro) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.insertarLogroUsuario(usuario, nombrelogro) == 1) {
            return true;

        }
        return false;
    }

    @WebMethod(operationName = "retornarusuariocompra")
    public String[] retornarusuariocompra(@WebParam(name = "idproducto") int idproducto) throws SQLException {
        //TODO write your implementation code here:

        String[] a = consultar.retornarusuariocompra(consultar.retornarDetalle(idproducto));
        return a;
    }

    @WebMethod(operationName = "retornarlogro")
    public String[] retornarlogro(int juego) throws SQLException {
        //TODO write your implementation code here:

        String[] a = consultar.retornarLogro(juego);
        return a;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "AgregarLogroUsuario")
    public Boolean AgregarLogroUsuario(@WebParam(name = "nombre_usuario") String nombre_usuario, @WebParam(name = "nombre_logro") String nombre_logro) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.insertarLogroUsuario(nombre_usuario, nombre_logro) == 1) {
            return true;
        }
        return false;
    }

    @WebMethod(operationName = "idLogro")
    public String[] idLogro(@WebParam(name = "nombre_usuario") String nombre_usuario) throws SQLException {
        //TODO write your implementation code here:

        String[] id = consultar.retornaridLogro(nombre_usuario);
        return id;
    }

    @WebMethod(operationName = "logroAdquirido")
    public String[] logroAdquirido(@WebParam(name = "nombre_usuario") int idL) throws SQLException {
        //TODO write your implementation code here:
        String[] id = consultar.retornarLogroAdquirido(idL);
        return id;
    }

    @WebMethod(operationName = "nameP")
    public String nameP(@WebParam(name = "id") int idL) throws SQLException {
        //TODO write your implementation code here:
        String id = consultar.retornarproId(idL);
        return id;
    }
    
    @WebMethod(operationName = "ProductosNombre")
    public String[] ProductosNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] id = consultar.ProductosNombre();
        return id;
    }
    
    @WebMethod(operationName = "ProductosId")
    public int[] ProductosId() throws SQLException {
        //TODO write your implementation code here:
        int[] id = consultar.ProductosID();
        return id;
    }

    @WebMethod(operationName = "ObtenerLogrosPorUsuario")
    public String[] ObtenerLogrosPorUsuario(@WebParam(name = "Usuario") String Usuario) throws SQLException {
        //TODO write your implementation code here:
        String[] logros = consultar.Nombrelogro(consultar.retornaridLogro(Usuario));
        return logros;
    }

    @WebMethod(operationName = "notificacion")
    public Boolean notificacion(@WebParam(name = "user") String user, @WebParam(name = "mod") String mod, @WebParam(name = "mensaje") String mensaje) throws ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.notificacion(user, mod, mensaje) == 1) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "mostrarmod")
    public String[] mostrarmod(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        String[] mod = consultar.MostrarNotificacionesMod(user);
        return mod;
    }

    @WebMethod(operationName = "mostrarmensaje")
    public String[] mostrarmensaje(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        String[] mostrarmensaje = consultar.MostrarNotificacionesMensaje(user);
        return mostrarmensaje;
    }

    @WebMethod(operationName = "mostrarfecha")
    public String[] mostrarfecha(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        String[] mostrarfecha = consultar.MostrarNotificacionesFecha(user);
        return mostrarfecha;
    }

    @WebMethod(operationName = "cantidadnotificaciones")
    public int cantidadnotificaciones(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        int cantidad = consultar.cantidadNotificacionesporusuario(user);
        return cantidad;
    }

    @WebMethod(operationName = "ObtenerTarjeta")
    public int ObtenerTarjeta(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        int cantidad = consultar.obtenerTarjeta(user);
        return cantidad;
    }

    @WebMethod(operationName = "ObtenerCuenta")
    public int ObtenerCuenta(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        int cantidad = consultar.obtenerCuentaAsociado(user);
        return cantidad;
    }

    @WebMethod(operationName = "ObtenerPublicador")
    public String[] ObtenerPublicador(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String publicadoPor[] = consultar.obtenerPublicador(id);
        return publicadoPor;
    }

    @WebMethod(operationName = "ObtenerFactura")
    public String[] ObtenerFactura(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        String fac[] = consultar.obtenerFactura(user);
        return fac;
    }

    @WebMethod(operationName = "agregarReview")
    public Boolean agregarReview(@WebParam(name = "idGame") int idGame, @WebParam(name = "mensaje") String mensaje, @WebParam(name = "puntuacion") int puntuacion, @WebParam(name = "user") String user) throws ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.agregarReview(idGame, mensaje, puntuacion, user) == 1) {
            return true;
        } else {
            return false;
        }
    }
    
    @WebMethod(operationName = "agregarReviewN")
    public int agregarReviewN(@WebParam(name = "idGame") int idGame, @WebParam(name = "mensaje") String mensaje, @WebParam(name = "puntuacion") int puntuacion, @WebParam(name = "user") String user) throws ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.agregarReview(idGame, mensaje, puntuacion, user) == 1) {
            return 1;
        } else {
            return 0;
        }
    }

    @WebMethod(operationName = "ObtenerRMen")
    public String[] ObtenerRMen(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String fac[] = consultar.MostrarReviewComentario(id);
        return fac;
    }

    @WebMethod(operationName = "ObtenerRPun")
    public int[] ObtenerRPun(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        int Pun[] = consultar.MostrarReviewPuntuacion(id);
        return Pun;
    }

    @WebMethod(operationName = "ObtenerRuser")
    public String[] ObtenerRuser(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String fac[] = consultar.MostrarReviewUsuario(id);
        return fac;
    }

    @WebMethod(operationName = "actulizarNick")
    public Boolean actulizarNick(@WebParam(name = "actual") String actual, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.CambiarNick(actual, nuevo) == 1) {
            return true;
        } else {
            return false;
        }

    }

    @WebMethod(operationName = "actulizarpass")
    public Boolean actulizarpass(@WebParam(name = "actual") String actual, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.CambiarPass(actual, nuevo) == 1) {
            return true;
        } else {
            return false;
        }

    }

    @WebMethod(operationName = "actulizarmail")
    public Boolean actulizarmail(@WebParam(name = "actual") String actual, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.CambiarMail(actual, nuevo) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "agregarDenuncia")
    public Boolean agregarDenuncia(@WebParam(name = "usuario") String usuario, @WebParam(name = "motivo") String motivo, @WebParam(name = "contenido") String contenido, @WebParam(name = "estado") String estado, @WebParam(name = "denunciaA") String denunciaA) throws ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.agregarDenuncia(usuario, motivo, contenido, estado, denunciaA) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "agregarDenunciaJuego")
    public Boolean agregarDenunciaJuego(@WebParam(name = "usuario") String usuario, @WebParam(name = "motivo") String motivo, @WebParam(name = "contenido") String contenido, @WebParam(name = "estado") String estado, @WebParam(name = "denunciaA") int denunciaA) throws ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.agregarDenunciaJuego(usuario, motivo, contenido, estado, denunciaA) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "EditarEstadoReview")
    public Boolean EditarEstadoReview(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.EditarEstadoReview(user) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "RetornarIdCompras")
    public int[] RetornarIdCompras(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        int[] compras = consultar.todasCompras(user);
        return compras;
    }

    @WebMethod(operationName = "RetornarIdComprasProductos")
    public int[] RetornarIdComprasProductos(@WebParam(name = "idC") int idC) throws SQLException {
        //TODO write your implementation code here:
        int[] idsProductos = consultar.Mostrarproductoscompras(idC);
        return idsProductos;
    }

    @WebMethod(operationName = "RetornarProductosDetalle")
    public String[] RetornarProductosDetalle(@WebParam(name = "id") int id) throws SQLException, ParseException {
        //TODO write your implementation code here:
        String[] Productos = consultar.RetornarProductosPorID(id);
        return Productos;
    }

    @WebMethod(operationName = "CambiarNombreProducto")
    public Boolean CambiarNombreProducto(@WebParam(name = "id") int id, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.actualizarNombreProducto(id, nuevo) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "CambiarDescripcionProducto")
    public Boolean CambiarDescripcionProducto(@WebParam(name = "id") int id, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.actualizarDescripcionProducto(id, nuevo) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "CambiarLinkProducto")
    public Boolean CambiarLinkProducto(@WebParam(name = "id") int id, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.actualizarlinkProducto(id, nuevo) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "CambiarVersionProducto")
    public Boolean CambiarVersionProducto(@WebParam(name = "id") int id, @WebParam(name = "nuevo") String nuevo) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.actualizarVersionProducto(id, nuevo) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "descuento")
    public Boolean descuento(@WebParam(name = "id") int id, @WebParam(name = "descuento") Double descuento, @WebParam(name = "temporada") String temporada) throws SQLException, ParseException {
        //TODO write your implementation code here:
        if (consultar.AgregarDescuento(id, descuento, temporada) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "obtenerDescuento")
    public String[] obtenerDescuento(@WebParam(name = "id") int id) throws SQLException, ParseException {
        //TODO write your implementation code here:
        String[] descuento = consultar.obtenerDescuento(id);
        return descuento;
    }

    @WebMethod(operationName = "insertarNoticia")
    public Boolean insertarNoticia(@WebParam(name = "id") int id, @WebParam(name = "titulo") String titulo, @WebParam(name = "contenido") String contenido) throws ParseException, SQLException {
        //TODO write your implementation code here:
        if (consultar.agregarNoticia(id, titulo, contenido) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "MostrarTituloNoticia")
    public String[] MostrarTituloNoticia(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String Pun[] = consultar.mostrarTitulonoticia(id);
        return Pun;
    }

    @WebMethod(operationName = "MostrarContenidoNoticia")
    public String[] MostrarContenidoNoticia(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String Pun[] = consultar.mostrarContenidonoticia(id);
        return Pun;
    }

    @WebMethod(operationName = "MostrarFechaNoticia")
    public String[] MostrarFechaNoticia(@WebParam(name = "id") int id) throws SQLException {
        //TODO write your implementation code here:
        String Pun[] = consultar.mostrarFechanoticia(id);
        return Pun;
    }

    @WebMethod(operationName = "CambiarEstadoProducto")
    public Boolean CambiarEstadoProducto(@WebParam(name = "id") int id, @WebParam(name = "estado") String estado) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.ActualizarEstadoProducto(id, estado) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "MostrarUsuarioDenunciador")
    public String[] MostrarUsuarioDenunciador() throws SQLException {
        String[] denunciador = consultar.mostrarDenunciaUsuarioDenunciador();
        return denunciador;
    }

    @WebMethod(operationName = "MostrarMotivo")
    public String[] MostrarMotivo() throws SQLException {
        String[] denunciador = consultar.mostrarDenunciaMotivo();
        return denunciador;
    }

    @WebMethod(operationName = "MostrarContenido")
    public String[] MostrarContenido() throws SQLException {
        String[] denunciador = consultar.mostrarDenunciaContenido();
        return denunciador;
    }

    @WebMethod(operationName = "MostrarEstado")
    public String[] MostrarEstado() throws SQLException {
        String[] denunciador = consultar.mostrarDenunciaEstado();
        return denunciador;
    }

    @WebMethod(operationName = "Mostrarusuario")
    public String[] Mostrarusuario() throws SQLException {
        String[] denunciador = consultar.mostrarDenunciaUsuario();
        return denunciador;
    }

    @WebMethod(operationName = "Mostrarjuego")
    public String[] Mostrarjuego() throws SQLException {
        String[] denunciador = consultar.mostrarDenunciaJuego();
        return denunciador;
    }

    @WebMethod(operationName = "actualizarestadoDenunciadoUsuario")
    public Boolean actualizarestadoDenunciadoUsuario(@WebParam(name = "state") String estado, @WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.ActualizarEstadoDenunciaUsuario(estado, user) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "ActualizarEstadoDenunciaJuego")
    public Boolean ActualizarEstadoDenunciaJuego(@WebParam(name = "state") String estado, @WebParam(name = "user") int user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.ActualizarEstadoDenunciaJuego(estado, user) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "ActualizarModReso")
    public Boolean ActualizarModReso(@WebParam(name = "mod") String mod) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.ActualizarDenunciaMod(mod) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "AgregarPorcentaje")
    public Boolean AgregarPorcentaje(@WebParam(name = "cantidad") int cantidad, @WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.AgregarPorcentaje(cantidad, user) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "AgregarEstado")
    public Boolean AgregarEstado(@WebParam(name = "estado") String estado, @WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.AgregarEstadoUsuario(estado, user) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "BuscarEstado")
    public Boolean BuscarEstado(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        if (consultar.buscarEstado(user) == 1) {
            return true;
        } else {
            return false;
        }
    }

    @WebMethod(operationName = "ObtenerPorcentaje")
    public int ObtenerPorcentaje(@WebParam(name = "user") String user) throws SQLException {
        //TODO write your implementation code here:
        int porcentaje = consultar.CantidadTroll(user);
        return porcentaje;
    }
    
    
    
    //------------------------------
    //------------------------------METODOS REPORTES
    //------------------------------
    //------------------------------
    //------------------------------

    @WebMethod(operationName = "Top10MejoresJuegosNombre")
    public String[] Top10MejoresJuegosNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] Top10 = consultar.Top10MejoresJuegosNombre();
        return Top10;
    }

    @WebMethod(operationName = "Top10MejoresJuegosReseña")
    public Double[] Top10MejoresJuegosReseña() throws SQLException {
        //TODO write your implementation code here:
        Double[] Top10 = consultar.Top10MejoresJuegosProm();
        return Top10;
    }

    @WebMethod(operationName = "ReporteUsuariosTrollNombres")
    public String[] ReporteUsuariosTrollNombres() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.UsuarioMayorTrollNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteUsuariosTrollPorcentajes")
    public String[] ReporteUsuariosTrollPorcentajes() throws SQLException {
        //TODO write your implementation code here:
        String[] porcentajes = consultar.UsuarioMayorTrollPorcentaje();
        return porcentajes;
    }

    @WebMethod(operationName = "ReporteLogrosAlcanzadosNombres")
    public String[] ReporteLogrosAlcanzadosNombres() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.LogrosMasAlcanzadosNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteLogrosAlcanzadosCantidad")
    public String[] ReporteLogrosAlcanzadosCantidad() throws SQLException {
        //TODO write your implementation code here:
        String[] cantidad = consultar.LogrosMasAlcanzadosCantidad();
        return cantidad;
    }

    @WebMethod(operationName = "ReporteLogroJuego")
    public String ReporteLogroJuego(@WebParam(name = "nombreLogro") String nombreLogro) throws SQLException, ParseException {
        //TODO write your implementation code here:

        int id = consultar.LogroIdProducto(nombreLogro);
        String Juego = consultar.LogroReturnProducto(id);
        return Juego;
    }

    @WebMethod(operationName = "ReporteCategoriaMasCaraNombre")
    public String[] ReporteCategoriaMasCaraNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.Top10CategoriasCarasNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteCategoriaMasCaraPrecio")
    public Double[] ReporteCategoriaMasCaraPrecio() throws SQLException {
        //TODO write your implementation code here:
        Double[] cantidad = consultar.Top10CategoriasCarasPrecio();
        return cantidad;
    }

    @WebMethod(operationName = "ReporteJuegosAprobadosNombre")
    public String[] ReporteJuegosAprobadosNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.MasJuegosaprovadosNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteJuegosAprobadosCantidad")
    public String[] ReporteJuegosAprobadosCantidad() throws SQLException {
        //TODO write your implementation code here:
        String[] cantidad = consultar.MasJuegosaprovadosCantidad();
        return cantidad;
    }

    @WebMethod(operationName = "ReporteJuegosRechazadosNombre")
    public String[] ReporteJuegosRechazadosNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.MasJuegosrechazadosNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteJuegosRechazadosCantidad")
    public String[] ReporteJuegosRechazadosCantidad() throws SQLException {
        //TODO write your implementation code here:
        String[] cantidad = consultar.MasJuegosrechazadosCantidad();
        return cantidad;
    }
    
     @WebMethod(operationName = "ReporteCatsMasJuegosVendidosNombre")
    public String[] ReporteCatsMasJuegosVendidosNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.CategoriasJuegosVendidosMasNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteCatsMasJuegosVendidosCantidad")
    public int[] ReporteCatsMasJuegosVendidosCantidad() throws SQLException {
        //TODO write your implementation code here:
        int[] cantidad = consultar.CategoriasJuegosVendidosMasCantidad();
        return cantidad;
    }
    
    @WebMethod(operationName = "ReporteCatsMenosJuegosVendidosNombre")
    public String[] ReporteCatsMenosJuegosVendidosNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] nombres = consultar.CategoriasJuegosVendidosMenosNombre();
        return nombres;
    }

    @WebMethod(operationName = "ReporteCatsMenosJuegosVendidosCantidad")
    public int[] ReporteCatsMenosJuegosVendidosCantidad() throws SQLException {
        //TODO write your implementation code here:
        int[] cantidad = consultar.CategoriasJuegosVendidosMenosCantidad();
        return cantidad;
    }
    
    @WebMethod(operationName = "ReporteAsociadosMasVentasRealizadasNombre")
    public String[] ReporteAsociadosMasVentasRealizadasNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] cantidad = consultar.AsociadosMasVentasNombre();
        return cantidad;
    }
    
    @WebMethod(operationName = "ReporteAsociadosMasVentasRealizadasCantidad")
    public int[] ReporteAsociadosMasVentasRealizadasCantidad() throws SQLException {
        //TODO write your implementation code here:
        int[] cantidad = consultar.AsociadosMasVentasCantidad();
        return cantidad;
    }
    
        @WebMethod(operationName = "ReporteEmpresasMasVentasRealizadasCantidad")
    public int[] ReporteEmpresasMasVentasRealizadasCantidad() throws SQLException {
        //TODO write your implementation code here:
        int[] cantidad = consultar.EmpresasMasVentasCantidad();
        return cantidad;
    }
    
    @WebMethod(operationName = "ReporteEmpresasMasVentasRealizadasNombre")
    public String[] ReporteEmpresasMasVentasRealizadasNombre() throws SQLException {
        //TODO write your implementation code here:
        String[] cantidad = consultar.EmpresasMasVentasNombre();
        return cantidad;
    }
    
    //-------------------------------------------------------------------------------------------------------------------------
    //-------------------------------------------------------------------------------------------------------------------------
    //-------------------------------------------------------------------------------------------------------------------------
    //-------------------------------------------------------------------------------------------------------------------------
    //-------------------------------------------------------------------------------------------------------------------------   
    //-------------------------------------------------------------------------------------------------------------------------
    @WebMethod(operationName = "Generar")
    public String Generar() throws IOException{
        //TODO write your implementation code here:
        String datos = genUser.GenerarUsuario();
        return datos;
    }
    
    @WebMethod(operationName = "GenerarProductos")
    public String GenerarProductos() throws IOException{
        //TODO write your implementation code here:
        String datos = genGames.generar();
        return datos;
    }
    
    @WebMethod(operationName = "GenerarEmpresas")
    public String GenerarEmpresas() throws IOException{
        //TODO write your implementation code here:
        String datos = genEnter.gen();
        return datos;
    }
}
