<?php

defined('BASEPATH') OR exit('No direct script access allowed');

// This can be removed if you use __autoload() in config.php OR use Modular Extensions
require APPPATH . '/libraries/REST_Controller.php';

/**
 * This is an example of a few basic user interaction methods you could use
 * all done with a hardcoded array
 *
 * @package         CodeIgniter
 * @subpackage      Rest Server
 * @category        Controller
 * @author          Hector Luna
 * @license         MIT
 * @link            https://github.com/chriskacerguis/codeigniter-restserver
 */
class Pringles extends REST_Controller {

	function __construct() {
		header('Access-Control-Allow-Origin: *');
		header("Access-Control-Allow-Headers: Content-Type, Cache-Control");
		header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT");
		$method = $_SERVER['REQUEST_METHOD'];
		if($method == "OPTIONS") {
				die();
		}

		parent::__construct();
		//$this->load->model('Md_facebook');
		$this->load->model('Md_bot');
		$this->load->model('Md_pringles');
		$this->load->model('Md_express');
		$this->load->library('form_validation');
	}

	public function welcome_get() {

			$account = $this->Md_bot->getUser($this->get('auth'));
			$mensajes = $this->Md_bot->getMensajes($account[0]['id']);

			if( isset( $mensajes[0]['bienvenida'] ) && $mensajes[0]['bienvenida'] != '' ) {
				$data = $mensajes[0]['bienvenida'];
			} else {
				$data = '';
			}

			$this->set_response(['status' => TRUE, 'codigo' => 0, 'message' => '', 'data' => $data], REST_Controller::HTTP_OK);
	}

	public function bot_post() {

			$post = $this->post();
			$cleanPost = $this->security->xss_clean($post);
			$post = json_encode($cleanPost);


			$image = "";
			$msg = "";
			$token = $cleanPost['token'];
			$phone_client = $cleanPost['phone_client'];
			$phone_bot = $cleanPost['phone_bot'];
			$message = $cleanPost['message'];
			$type = $cleanPost['type'];
			$name = $cleanPost['name'];
			$url = $cleanPost['url'];
			$time = $cleanPost['time'];
			$uid = $cleanPost['UID'];

			function normaliza ($cadena) {
				$originales =  'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ?¿';
				$modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr?¿';
				$cadena = utf8_decode($cadena);
				$cadena = strtr($cadena, utf8_decode($originales), $modificadas);
				$cadena = strtolower($cadena);
				return utf8_encode($cadena);
			}

			$word = normaliza($message);

			$account = $this->Md_express->getAccountWs($phone_bot);
			error_log(json_encode($account));
			if($account && isset($account[0]) && $account[0]['active'] == 1){

				$wsUser = $this->Md_express->getUserWs($phone_client,$phone_bot,$account[0]['user_id'],$name);

				if($wsUser['error'] == 0 && $wsUser['data']['active'] == 0 && $wsUser['data']['bot'] == 0){

					if(!empty($url)) {
						$this->Md_express->putMsgWs($phone_client, $phone_bot, $account[0]['user_id'], $url, $wsUser['data']['id'], 0, $type, $uid, $time );
						if(!empty($message)) $this->Md_express->putMsgWs($phone_client, $phone_bot, $account[0]['user_id'], $message, $wsUser['data']['id'], 0, 'chat', $uid, $time );
					} else if(!empty($message)) $this->Md_express->putMsgWs($phone_client, $phone_bot, $account[0]['user_id'], $message, $wsUser['data']['id'], 0, $type, $uid, $time );


					if(strpos($word, normaliza('volver al menu')) !== false ) {
						$msg = "*empezando debug*";
						$this->Md_express->updateCycleWs($wsUser['data']['id'], 0);
					} else if(isset($wsUser['data']['bot_cycle']) && !empty($wsUser['data']['bot_cycle']) && $wsUser['data']['bot_cycle'] > 0) {

						if ($wsUser['data']['bot_cycle'] == 1) {
							if(strpos($word, normaliza('b')) !== false || strpos($word, normaliza('no acepto')) !== false) { 
								$msg = "Debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ \na. *ACEPTO* \nb. *NO ACEPTO*";
							}else if(strpos($word, normaliza('a')) !== false || strpos($word, normaliza('acepto')) !== false) {
								$this->Md_pringles->newCompra($phone_client, "https://fogatabot.com/img/small-logo.png");
								//$msg = "Perfecto, empieza a participar envíandonos una fotografía completa y legible del establecimiento en donde realizaste la compra de los productos PRINGLES® o CHEEZ IT® participantes";
								$msg = "Perfecto, empieza a participar envíandonos una fotografía completa y legible de la factura de compra donde aparecen tus productos PRINGLES® o CHEEZ IT® participantes";
								$this->Md_express->updateCycleWs($wsUser['data']['id'], 3);
							} else {
								if($phone_bot == 50255543434) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\nParticipa para ganar Q4,000.00 semanales\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //Guate
								//else if($phone_client[2] == 3) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $500.00 semanales 😎\n\n*Del 5 de agosto al 30 de septiembre*\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //Salvador
								else if($phone_bot == 50664838734) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\nParticipa para ganar 1 giftcard semanal de ₵300.000,00 \n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //CR
								//else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 7 de agosto 2021.*\n\nParticipa para ganar $500.00 semanales\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //PTY
								else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\nParticipa para ganar $500.00 semanales \n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //PTY


								else $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\n😎\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //los demás
			
							}
						} else if ($wsUser['data']['bot_cycle'] == 2) {

							if($type == "image" || $type == "document") {
								$this->Md_pringles->newCompra($phone_client, $url);
								$msg = "Ahora envíanos una fotografía completa y legible de la factura de compra donde aparecen tus productos PRINGLES® o CHEEZ IT® participantes";
								$this->Md_express->updateCycleWs($wsUser['data']['id'], 3);
							} else { 
								$msg = "Debes enviar una fotografía válida";
							}

						} else if ($wsUser['data']['bot_cycle'] == 3) {

							if(strpos($word, normaliza('fin')) !== false) {
								$this->Md_pringles->updateCompra($phone_client, 1);

								$msg = "En las próximas 24 horas, uno de nuestros agentes de servicio al cliente estará validando tu(s) factura(s) y te enviaremos un código por cada producto participante por esta vía.";
								$this->Md_express->updateCycleWs($wsUser['data']['id'], 4);
							} else if($type == "image" || $type == "document") {
								
								$this->Md_pringles->newFoto($phone_client, $url);
								$msg = "Si deseas ingresar más facturas por favor enviarlas a continuación, de lo contrario escribe la palabra *FIN*";
							} else { 
								$msg = "Debes enviar una fotografía válida, de lo contrario escribe la palabra *FIN*";
							}

						} else if ($wsUser['data']['bot_cycle'] == 4) {
							$this->Md_pringles->newCompra($phone_client, "https://fogatabot.com/img/small-logo.png");
							$msg = "Empieza a participar envíandonos una fotografía completa y legible de la factura de compra donde aparecen tus productos PRINGLES® o CHEEZ IT® participantes";
							$this->Md_express->updateCycleWs($wsUser['data']['id'], 3);						
						}

					} else if($message != "") {
					
						//if($phone_client[0] == 1) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $30,000.00 semanales, del 5 de agosto al 30 de septiembre 😎\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //RD
						if($phone_bot == 50255543434) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\nParticipa para ganar Q4,000.00 semanales\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //Guate
						//else if($phone_client[2] == 3) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $500.00 semanales 😎\n\n*Del 5 de agosto al 30 de septiembre*\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //Salvador
						else if($phone_bot == 50664838734) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\nParticipa para ganar 1 giftcard semanal de ₵300.000,00  \n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //CR
						//else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 7 de agosto 2021.*\n\nParticipa para ganar $500.00 semanales\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //PTY
						else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\nParticipa para ganar $500.00 semanales \n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //PTY


						else $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\n😎\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //los demás

					/*	//if($phone_client[0] == 1) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $30,000.00 semanales, del 5 de agosto al 30 de septiembre 😎"; //RD
						if($phone_bot == 50255543434) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 5 de agosto 2021.*\n\nParticipa para ganar Q4,000.00 semanales"; //Guate
						//else if($phone_client[2] == 3) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $500.00 semanales 😎\n\n*Del 5 de agosto al 30 de septiembre*"; //Salvador
						else if($phone_bot == 50664838734) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 5 de agosto 2021.*\n\nParticipa para ganar 1 giftcard semanal de ₵300.000,00 "; //CR
						else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 7 de agosto 2021.*\n\nParticipa para ganar $500.00 semanales"; //PTY
						//else $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\n😎"; //los demás
*/
						$this->Md_express->updateCycleWs($wsUser['data']['id'], 1);
					}



				} else { //usuario nuevo

					if($phone_client[0] == 1) $pais = 1; //RD
					else if($phone_bot == 50255543434) $pais = 2; //Guate
					else if($phone_client[2] == 3) $pais = 3; //Salvador
					else if($phone_bot == 50664838734) $pais = 4; //CR
					else if($phone_bot == 50761808589) $pais = 5; //PTY
					else $pais = 0; //los demás

					$this->Md_pringles->newClient($name, $phone_client, $wsUser['data']['id'], $pais);
					if(!empty($url)) {
						$this->Md_express->putMsgWs($phone_client, $phone_bot, $account[0]['user_id'], $url, $wsUser['data']['id'], 0, $type, $uid, $time );
						if(!empty($message)) $this->Md_express->putMsgWs($phone_client, $phone_bot, $account[0]['user_id'], $message, $wsUser['data']['id'], 0, 'chat', $uid, $time );
					} else if(!empty($message)) $this->Md_express->putMsgWs($phone_client, $phone_bot, $account[0]['user_id'], $message, $wsUser['data']['id'], 0, $type, $uid, $time );
					//50664838734
					//50761808589
					//50255543434
												//if($phone_client[0] == 1) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $30,000.00 semanales, del 5 de agosto al 30 de septiembre 😎\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //RD
						if($phone_bot == 50255543434) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\nParticipa para ganar Q4,000.00 semanales\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //Guate
						//else if($phone_client[2] == 3) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $500.00 semanales 😎\n\n*Del 5 de agosto al 30 de septiembre*\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //Salvador
						else if($phone_bot == 50664838734) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\nParticipa para ganar 1 giftcard semanal de ₵300.000,00 \n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //CR

						else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\nParticipa para ganar $500.00 semanales \n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //PTY

						//else if($phone_bot == 50761808589) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 7 de agosto 2021.*\n\nParticipa para ganar $500.00 semanales\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //PTY

						else $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\n😎\n\nAntes de participar debes aceptar los términos y condiciones de la promoción; ingresa al siguiente enlace para conocerlos http://promopringles.com/ 😉 \na. *ACEPTO* \nb. *NO ACEPTO*"; //los demás

				/*								//if($phone_client[0] == 1) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $30,000.00 semanales, del 5 de agosto al 30 de septiembre 😎"; //RD
						if($phone_bot == 50255543434) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 5 de agosto 2021.*\n\nParticipa para ganar Q4,000.00 semanales"; //Guate
						//else if($phone_client[2] == 3) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\nParticipa para ganar $500.00 semanales 😎\n\n*Del 5 de agosto al 30 de septiembre*"; //Salvador
						else if($phone_bot == 50664838734) $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® 😎\n\n*Puedes iniciar a enviar tus facturas a partir del 5 de agosto 2021.*\n\nParticipa para ganar 1 giftcard semanal de ₵300.000,00 "; //CR
						
						else $msg = "Bienvenido a la promoción 🎮 SNACKEA COMO UN PRO CON PRINGLES® Y CHEEZ IT® \n\n😎"; //los demás
*/
						

					//$msg = base64_decode($account[0]['response']);
					$this->Md_express->updateCycleWs($wsUser['data']['id'], 1);
				}
			}

			//if($image) $this->Md_express->sendImageWs($token, $phone_bot, $phone_client, $image);
			if($msg) $this->Md_express->sendTextWs($token, $phone_bot, $phone_client, $msg);
			error_log($msg);

			$this->set_response(['status' => TRUE, 'codigo' => 0, 'message' => '', 'data' => $post], REST_Controller::HTTP_OK);
	}


}
