<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" />
        <title>Envio de Notificaciones</title>
    </head>
    
    <body>
        <div class="container">
            <div class="titulo p-5 text-center">
                <h3>Notificaciones</h3>
            </div>
            <form action="<?php $_PHP_SELF ?>" method ="POST">
              <div class="mb-3">
                <label for="inputTitulo" class="form-label">Titulo: </label>
                <input type="text" class="form-control" id="inputTitulo" aria-describedby="Titulo Notificacion" name="titulo" required>
              </div>
              <div class="mb-3">
                <label for="inputMensaje" class="form-label">Mensaje: </label>
                <input type="text" class="form-control" id="inputMensaje" name="mensaje" required>
              </div>
              <div>
                <select class="form-select mb-3" aria-label="Selecciona un opci車n" name='users_not' required>
                  <option selected>Selecciona una opcion </option>
                  <option value="1">Todos</option>
                  <option value="2">Membresia vencida</option>
                  <option value="3">Usuarios Inactivos</option>
                  <option value="4">Locker Vencido</option>
                  <option value="5">Cumplea&ntilde;os del mes</option>
                  <option value="6">Proximos a vencer (5 dias)</option>
                  <option value="7">Proximos a vencer (15 dias)</option>
                </select>
              </div>
              
              <button type="submit" class="btn btn-primary">Enviar</button>
            </form>
            
        </div>
    </body>
    </html>

<?php 
    
    $opcion= null;
    $mensaje = null;
    $titulo = null;
    $conn;
    
    if(!isset($opcion) && !isset($mensaje) && !isset($titulo)){
        $opcion = $_POST['users_not'];
        $mensaje = $_POST['mensaje'];
        $titulo = $_POST['titulo'];
        $query;
        
        switch($opcion){
            case '1':
                $query = "SELECT * FROM push_notificaciones";
                break;
            case '2':
                $query = "SELECT DISTINCT (tmp.st), tmp.token
                    FROM				
                        (SELECT 
            				CONCAT(socios.Nombre, ' ', socios.Apellidos) AS nombre,
                            socios.Foto,
                            socios.TelefonoCelular,
                            socios.fechaIngreso,
                            socios.Email,
                            socio_servicio.idServicio as 'id',
                            pagos.FechaInicio,
                            servicios.NombreServicio,
                            socio_servicio.idSocio_Servicio AS 'idss',
                            socio_servicio.idSocioTitular as 'st',
                            pagos.FechaFin,
                            socios.Activo,
                            sucursal.NombreSucursal,
                         	push_notificaciones.token
                        FROM 
                            socio_servicio
                            	INNER JOIN pagos
                        	        ON socio_servicio.idSocio_Servicio = pagos.idSocio_Servicio
                                INNER JOIN servicios
                        	        ON socio_servicio.idServicio = servicios.idServicio
                                INNER JOIN socios
                        	        ON socio_servicio.idSocio = socios.idSocio
                        	   INNER JOIN sucursal
                           			ON socios.sucursal_idSucursal = sucursal.idSucursal
                         		INNER JOIN push_notificaciones
                         			ON socios.idSocio = push_notificaciones.idSocio
                        WHERE
                            pagos.Cancelado = 0  
                            AND pagos.Visible = 1
                         	AND pagos.FechaFin < DATE_FORMAT(CURDATE(),'%Y-%m-%d')
            			GROUP BY
            				socio_servicio.idSocio_Servicio DESC
                        ) AS tmp
                        	WHERE tmp.st != 0
                    GROUP BY
                    	tmp.id  
                    ORDER BY tmp.st ASC";
                break;
            case '3':
                 $query = "SELECT * FROM socios INNER JOIN push_notificaciones ON socios.idSocio = push_notificaciones.idSocio WHERE Activo = 0";
                break;
            case '4':
                $query = "SELECT s.idSocio, push_notificaciones.token ,ls.FechaVencimiento, l.num_locker, ls.FechaVencimiento,ls.cancelado
                     FROM socios s JOIN lockers_socios ls ON s.idSocio = ls.Socios_idSocio JOIN locker l ON ls.id_lockers_socios = l.id_locker 
                     JOIN lockers ON lockers.idLocker = l.Lockers_idLockers JOIN push_notificaciones
                                         			ON s.idSocio = push_notificaciones.idSocio WHERE 
                     ls.id_lockers_socios = (SELECT MAX(id_lockers_socios) FROM lockers_socios WHERE Socios_idSocio = s.idSocio)
                     AND s.idSocio != 0 AND s.Activo = 1 AND ls.cancelado = 0 AND ls.FechaVencimiento < DATE_FORMAT(CURDATE(), '%Y-%m-%d')";
                break;
            case '5':
                $query = "SELECT * FROM socios INNER JOIN push_notificaciones ON socios.idSocio = push_notificaciones.idSocio WHERE DATE_FORMAT(CURDATE(), '%m') = DATE_FORMAT(FechaNacimiento, '%m')";
                break;
            case '6':
                $query = "SELECT DISTINCT (tmp.st), tmp.token
                    FROM				
                        (SELECT 
            				CONCAT(socios.Nombre, ' ', socios.Apellidos) AS nombre,
                            socios.Foto,
                            socios.TelefonoCelular,
                            socios.fechaIngreso,
                            socios.Email,
                            socio_servicio.idServicio as 'id',
                            pagos.FechaInicio,
                            servicios.NombreServicio,
                            socio_servicio.idSocio_Servicio AS 'idss',
                            socio_servicio.idSocioTitular as 'st',
                            pagos.FechaFin,
                            socios.Activo,
                            sucursal.NombreSucursal,
                         	push_notificaciones.token
                        FROM 
                            socio_servicio
                            	INNER JOIN pagos
                        	        ON socio_servicio.idSocio_Servicio = pagos.idSocio_Servicio
                                INNER JOIN servicios
                        	        ON socio_servicio.idServicio = servicios.idServicio
                                INNER JOIN socios
                        	        ON socio_servicio.idSocio = socios.idSocio
                        	   INNER JOIN sucursal
                           			ON socios.sucursal_idSucursal = sucursal.idSucursal
                         		INNER JOIN push_notificaciones
                         			ON socios.idSocio = push_notificaciones.idSocio
                        WHERE
                            pagos.Cancelado = 0  
                            AND pagos.Visible = 1
                         	AND pagos.FechaFin < DATE_FORMAT(CURDATE(),'%Y-%m-%d')
                         	AND DATEDIFF(pagos.FechaFin, CURDATE()) = 5
            			GROUP BY
            				socio_servicio.idSocio_Servicio DESC
                        ) AS tmp
                        	WHERE tmp.st != 0 
                            
                    GROUP BY
                    	tmp.id  
                    ORDER BY tmp.st ASC";
                break;
            case '7':
                $query = "SELECT DISTINCT (tmp.st), tmp.token
                    FROM				
                        (SELECT 
            				CONCAT(socios.Nombre, ' ', socios.Apellidos) AS nombre,
                            socios.Foto,
                            socios.TelefonoCelular,
                            socios.fechaIngreso,
                            socios.Email,
                            socio_servicio.idServicio as 'id',
                            pagos.FechaInicio,
                            servicios.NombreServicio,
                            socio_servicio.idSocio_Servicio AS 'idss',
                            socio_servicio.idSocioTitular as 'st',
                            pagos.FechaFin,
                            socios.Activo,
                            sucursal.NombreSucursal,
                         	push_notificaciones.token
                        FROM 
                            socio_servicio
                            	INNER JOIN pagos
                        	        ON socio_servicio.idSocio_Servicio = pagos.idSocio_Servicio
                                INNER JOIN servicios
                        	        ON socio_servicio.idServicio = servicios.idServicio
                                INNER JOIN socios
                        	        ON socio_servicio.idSocio = socios.idSocio
                        	   INNER JOIN sucursal
                           			ON socios.sucursal_idSucursal = sucursal.idSucursal
                         		INNER JOIN push_notificaciones
                         			ON socios.idSocio = push_notificaciones.idSocio
                        WHERE
                            pagos.Cancelado = 0  
                            AND pagos.Visible = 1
                         	AND pagos.FechaFin < DATE_FORMAT(CURDATE(),'%Y-%m-%d')
                         	AND DATEDIFF(pagos.FechaFin, CURDATE()) = 15
            			GROUP BY
            				socio_servicio.idSocio_Servicio DESC
                        ) AS tmp
                        	WHERE tmp.st != 0 
                            
                    GROUP BY
                    	tmp.id  
                    ORDER BY tmp.st ASC";
                break;
        }
    
        //echo $query;
        $conn = new mysqli("directoriofitness.com.mx","direct18","L4LL4v3M@3str@","direct18_PG");
        if ($conn->connect_errno) {
          echo "Failed to connect to MySQL: " . $conn->connect_error;
          exit();
        }
        echo 'conexion exitosa';
        $arrayNoti =['body'=>$mensaje,'title'=>$titulo]; 
        $dataD = ['product'=>"Paquete Acceso Completo"];
        $dataUsers = [
            "e_LLUP9TTUiSug8kztEKfG:APA91bF_hq4FvozoU6qRshQ6bMIkQfm0uiNtx6FpKtxlHGBVnT6OBcMfIQxS8PYXZqPaGHDGaE-iTh5HbXp2_KuX5RC78u1VD8xMEhhVerwQNIv_JfrHPT27ZHYAucECaRGiwRm-rfbd"
        ];
        
        // API URL
        $url = 'https://fcm.googleapis.com/fcm/send';
        
        
        $mensajeNotificacion = 'Notificaci贸n Enviada';
        
        $resultado;
        //echo $resultado = $conn->query($query);
        $resultado = $conn->query($query);
        
            while($row = $resultado->fetch_assoc()){ 
                // Create a new cURL resource
                //echo $row["token"];
                $ch = curl_init($url);
            
                // Setup request to send json via POST
                $data = array(
                    'notification' => $arrayNoti, 
                    'priority' => 'high',
                    'data'=>$dataD,
                    'to'=>$row["token"]
                    );
        
                $payload = json_encode($data);
                
                // Attach encoded JSON string to the POST fields
                curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
                
                // Set the content type to application/json
                curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','Authorization:key=AAAA8TBn7bM:APA91bFpWxs4oWe9NKnkK_dB5cfEmb9pSTLofwMokD2vJdd4g6Fp0yODWUC7OgXShXvC8UL5bMBIASZucPb_9F0yZOsZB6m88yUzdoeU94t6TItn1ovjbB8ZvqRXLINtP8RCab6TG8i9'));
                
                // Return response instead of outputting
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                
                // Execute the POST request
                echo $result = curl_exec($ch);
                
                $var_result = explode(":",$result);
                $var_result_2 = explode(",",$var_result[2]);
                
                /*if($var_result_2[0] != '1'){
                    $mensajeNotificacion = 'Error al enviar la notificaci贸n';
                }  */  
                //echo $result;
                // Close cURL resource
                curl_close($ch);
                
            } 
       
        //$result->close();
        /*for($i=0;$i<sizeof($dataUsers);$i++){
            
        }*/
        
        echo $mensajeNotificacion;
        $conn->close();
    }
    
    

?>
