<?php
date_default_timezone_set('America/Lima');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token, Authorization');
try{
	$response_json	=array('success'=>false, 'num_rows'=>-1, 'rows'=>array(), "messages"=>"Estas intentando algo inusual en el sistema");
	require_once("./class/GLibfunciones.php");
	$OConex = new GConector();
	$init_stmt=$OConex->stmt_init();
	$OBanner = new GBanner();

	$data = json_decode(file_get_contents('php://input'));

    $response = "";

	switch($_GET['oper']){
		case 'listar':
			$sql=$OBanner->lista();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
		case 'listarFront':
			$sql=$OBanner->listaFront();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
        case 'guardar':
			if(empty($data->id)){
				$sql=$OBanner->guardar();
			}else{
				$sql=$OBanner->modificar();
			}

			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			if(!$init_stmt->bind_param('ssssssi', $data->noTitulo,$data->noDescripcion,$data->noRuta,$data->noEnlace,$data->feInicio,$data->feFin,$data->id))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();


			$response_json['success']=true;
			$response_json['affected_rows']=$init_stmt->affected_rows;
			$response_json['messages']=($response_json['affected_rows']==1)?"Se registro con éxito los datos del correctamente":"No se realizaron cambios en el registro Banner";
            $response = $response_json;  
		break;
		case 'eliminar':
			if(!isset($data) || empty($data))
				break;
			$sql=$OBanner->eliminar();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico<br/>", $OConex->error, $OConex->errno);
			if(!$init_stmt->bind_param('i', $data))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
			$response_json['success']=TRUE;
			$response_json['affected_rows']=$init_stmt->affected_rows;
			$response_json['messages']=($init_stmt->affected_rows==1)?"Se elimino con éxito el registro":"";
			if($init_stmt->affected_rows!=1 && $init_stmt->errno!=0)
				$response_json['messages']=errorMySQL($init_stmt->errno);

			$response = $response_json;  
		break;	
		case 'guardarImagen':
			if (isset($_FILES['image'])) {
				$targetDir = getcwd() . "/banners/"; // Ruta de destino en tu servidor
				$targetFile = $targetDir.basename($_FILES['image']['name']);
			
				// Mueve el archivo a la ubicación de destino
				if (move_uploaded_file($_FILES['image']['tmp_name'], $targetFile)) {
					echo "Imagen subida correctamente";
				} else {
					echo "Error al subir la imagen";
				}
			}
		break;
		case 'eliminarImagen':
			if(!empty($data->noRuta)){

				$targetDir = getcwd() . "/banners/"; // Ruta de destino en tu servidor
				$targetFile = $targetDir.basename($data->noRuta);

				if (file_exists($targetFile)) {
					if (unlink($targetFile)) {
						echo "La imagen se ha eliminado correctamente.";
					} else {
						echo "No se pudo eliminar la imagen.";
					}
				} else {
					echo "La imagen no existe en la ruta especificada.";
				}

			}

		break;
		case 'existeImagen':
			$sql=$OBanner->existeImagen();
			
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			if(!$init_stmt->bind_param('s', $data->noRuta))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);

			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
			$response = $response_json['rows'];
		break;
    }
	echo json_encode($response);
}catch(Exception $e){
	echo $e->getOutMsg();
}
?>