<?php
require '../bootstrap.php';
$conectDB = connectDB();
$conectDB->exec("set names utf8mb4");

$dataCadastro = date("Y-m-d H:i:s");

$dadosUsuario = findItem($conectDB, 'usuario', ' * ', array("code"=>$_SESSION['userCode']) );
if(empty($dadosUsuario->id))
{
	echo messageJson('erro', 'Faça Login');exit;
	exit;
}
 

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
	$dadosUser = findItem($conectDB, 'usuario', ' gerenciador_imobiliario_token ', array("id"=>$_SESSION['userID']) );
	if(empty($dadosUser->gerenciador_imobiliario_token)){
		echo messageJson('erro', 'Informe o seu Token da Gerencie Sistemas para importar imóveis');exit;
		exit;
	}

		if(empty($_POST['imovelID']))
		{
			echo messageJson('erro', 'Seleciona um ou mais imóveis antes de continuar');exit;
			exit;
		}

		$imovelImportado = '';
		foreach($_POST['imovelID'] as $imovelID){
			$token  = $dadosUser->gerenciador_imobiliario_token;
			$ch = curl_init($configSistema['apiBaseURL'].'buscaItem/'.$imovelID);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_HTTPHEADER, array(
			   'Content-Type: application/json',
			   'Authorization: '.$token
			 ));
			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			$data = curl_exec($ch);
			//print_r($data); 
			$retorno = json_decode($data);
			if( (isset($retorno->status)) && ($retorno->status == 'error') )
			{
 				echo messageJson("erro", $retorno->message);
			}
			else
			{
				
				$checaImovelImportado = findItem($conectDB, 'imovel', ' id ', array( "gerencie_imovel_id" => $imovelID ) );
				if( empty($checaImovelImportado->id))
				{
					////encontrou o imovel, cadastra agora
					$dataRetorno = json_decode($data,true);//converts in array
 
					$codigo	  = uniqid(time().'.'.rand(), true);
					$destaque = 0;
 
					$cadinsert = "
						INSERT into imovel
							(usuario_id, gerencie_imovel_id, codigo, titulo, situacao, categoria, valor, indice_de_reajuste_ao_consumidor, area_total, indice_cadastral,
							construtora, idade, posicao, topografia, taxa_do_condominio, iptu, permuta, imovel_ocupado, rua, numero, bairro, estado, cidade,
							descricao_do_imovel, observacoes_internas, condicao_de_pagamento, quitado, comissao_da_imobiliaria, informacoes_documentacao,
							dormitorio, suite, suite_c_closet, demi_suite, sala, sala_de_estar, sala_de_tv, garagem, garagem_descoberta, banheiro, andar, elevador,
							edicula, horta, jardim, area_de_servico, bar, biblioteca, closet, copa, despensa, escritorio, lareira, sala_de_ginastica, sala_de_jantar,
							acesso_a_deficiente, gerador_de_energia, guarita, lavanderia_coletiva, medicao, agua_individual, portaria_24_horas, bicicletario, churrasqueira,
							ducha_externa, piscina, playground, quadra_de_esportes, quadra_tenis, sala_ginastica_fitness, salao_de_festas, salao_de_jogos, sauna, alarme,
							camera_de_vigilancia, fechadura_reforcada, interfone, muro_com_cerca_eletrica, portao_eletronico, vigilancia_24_horas, destaque_home, data_criacao)
						VALUES
							(:usuario_id, :gerencie_imovel_id, :codigo, :titulo, :situacao, :categoria, :valor, :indice_de_reajuste_ao_consumidor, :area_total, :indice_cadastral,
							:construtora, :idade, :posicao, :topografia, :taxa_do_condominio, :iptu, :permuta, :imovel_ocupado, :rua, :numero, :bairro, :estado, :cidade,
							:descricao_do_imovel, :observacoes_internas, :condicao_de_pagamento, :quitado, :comissao_da_imobiliaria, :informacoes_documentacao,
							:dormitorio, :suite, :suite_c_closet, :demi_suite, :sala, :sala_de_estar, :sala_de_tv, :garagem, :garagem_descoberta, :banheiro, :andar, :elevador,
							:edicula, :horta, :jardim, :area_de_servico, :bar, :biblioteca, :closet, :copa, :despensa, :escritorio, :lareira, :sala_de_ginastica, :sala_de_jantar,
							:acesso_a_deficiente, :gerador_de_energia, :guarita, :lavanderia_coletiva, :medicao, :agua_individual, :portaria_24_horas, :bicicletario, :churrasqueira,
							:ducha_externa, :piscina, :playground, :quadra_de_esportes, :quadra_tenis, :sala_ginastica_fitness, :salao_de_festas, :salao_de_jogos, :sauna, :alarme,
							:camera_de_vigilancia, :fechadura_reforcada, :interfone, :muro_com_cerca_eletrica, :portao_eletronico, :vigilancia_24_horas, :destaque_home, :data_criacao)";
					try {
						$cadresult = $conectDB->prepare($cadinsert);
						$cadresult->bindParam(':usuario_id' , $_SESSION['userID'], PDO::PARAM_STR);
							$cadresult->bindParam(':gerencie_imovel_id' , $dataRetorno['id'], PDO::PARAM_STR);
							$cadresult->bindParam(':codigo' , $codigo, PDO::PARAM_STR);
						$cadresult->bindParam(':titulo' , $dataRetorno['titulo'], PDO::PARAM_STR);
						$cadresult->bindParam(':situacao' , $dataRetorno['situacao'], PDO::PARAM_STR);
						$cadresult->bindParam(':categoria' , $dataRetorno['categoria'], PDO::PARAM_STR);
						$cadresult->bindParam(':valor' , $dataRetorno['valor'], PDO::PARAM_STR);
						$cadresult->bindParam(':indice_de_reajuste_ao_consumidor' , $dataRetorno['indice_de_reajuste_ao_consumidor'], PDO::PARAM_STR);
						$cadresult->bindParam(':area_total' , $dataRetorno['area_total'], PDO::PARAM_STR);
						$cadresult->bindParam(':indice_cadastral' , $dataRetorno['indice_cadastral'], PDO::PARAM_STR);
						$cadresult->bindParam(':construtora' , $dataRetorno['construtora'], PDO::PARAM_STR);
						$cadresult->bindParam(':idade' , $dataRetorno['idade'], PDO::PARAM_STR);
						$cadresult->bindParam(':posicao' , $dataRetorno['posicao'], PDO::PARAM_STR);
						$cadresult->bindParam(':topografia' , $dataRetorno['topografia'], PDO::PARAM_STR);
						$cadresult->bindParam(':taxa_do_condominio' , $dataRetorno['taxa_do_condominio'], PDO::PARAM_STR);
						$cadresult->bindParam(':iptu' , $dataRetorno['iptu'], PDO::PARAM_STR);
						$cadresult->bindParam(':permuta' , $dataRetorno['permuta'], PDO::PARAM_STR);
						$cadresult->bindParam(':imovel_ocupado' , $dataRetorno['imovel_ocupado'], PDO::PARAM_STR);
						$cadresult->bindParam(':rua' , $dataRetorno['rua'], PDO::PARAM_STR);
						$cadresult->bindParam(':numero' , $dataRetorno['numero'], PDO::PARAM_STR);
						$cadresult->bindParam(':bairro' , $dataRetorno['bairro'], PDO::PARAM_STR);
						$cadresult->bindParam(':estado' , $dataRetorno['estado'], PDO::PARAM_STR);
						$cadresult->bindParam(':cidade' , $dataRetorno['cidade'], PDO::PARAM_STR);
						$cadresult->bindParam(':descricao_do_imovel' , $dataRetorno['descricao_do_imovel'], PDO::PARAM_STR);
						$cadresult->bindParam(':observacoes_internas' , $dataRetorno['observacoes_internas'], PDO::PARAM_STR);
						$cadresult->bindParam(':condicao_de_pagamento' , $dataRetorno['condicao_de_pagamento'], PDO::PARAM_STR);
						$cadresult->bindParam(':quitado' , $dataRetorno['quitado'], PDO::PARAM_STR);
						$cadresult->bindParam(':comissao_da_imobiliaria' , $dataRetorno['comissao_da_imobiliaria'], PDO::PARAM_STR);
						$cadresult->bindParam(':informacoes_documentacao' , $dataRetorno['informacoes_documentacao'], PDO::PARAM_STR);
						$cadresult->bindParam(':dormitorio' , $dataRetorno['dormitorio'], PDO::PARAM_STR);
						$cadresult->bindParam(':suite' , $dataRetorno['suite'], PDO::PARAM_STR);
						$cadresult->bindParam(':suite_c_closet' , $dataRetorno['suite_c_closet'], PDO::PARAM_STR);
						$cadresult->bindParam(':demi_suite' , $dataRetorno['demi_suite'], PDO::PARAM_STR);
						$cadresult->bindParam(':sala' , $dataRetorno['sala'], PDO::PARAM_STR);
						$cadresult->bindParam(':sala_de_estar' , $dataRetorno['sala_de_estar'], PDO::PARAM_STR);
						$cadresult->bindParam(':sala_de_tv' , $dataRetorno['sala_de_tv'], PDO::PARAM_STR);
						$cadresult->bindParam(':garagem' , $dataRetorno['garagem'], PDO::PARAM_STR);
						$cadresult->bindParam(':garagem_descoberta' , $dataRetorno['garagem_descoberta'], PDO::PARAM_STR);
						$cadresult->bindParam(':banheiro' , $dataRetorno['banheiro'], PDO::PARAM_STR);
						$cadresult->bindParam(':andar' , $dataRetorno['andar'], PDO::PARAM_STR);
						$cadresult->bindParam(':elevador' , $dataRetorno['elevador'], PDO::PARAM_STR);
						$cadresult->bindParam(':edicula' , $dataRetorno['edicula'], PDO::PARAM_STR);
						$cadresult->bindParam(':horta' , $dataRetorno['horta'], PDO::PARAM_STR);
						$cadresult->bindParam(':jardim' , $dataRetorno['jardim'], PDO::PARAM_STR);
						$cadresult->bindParam(':area_de_servico' , $dataRetorno['area_de_servico'], PDO::PARAM_STR);
						$cadresult->bindParam(':bar' , $dataRetorno['bar'], PDO::PARAM_STR);
						$cadresult->bindParam(':biblioteca' , $dataRetorno['biblioteca'], PDO::PARAM_STR);
						$cadresult->bindParam(':closet' , $dataRetorno['closet'], PDO::PARAM_STR);
						$cadresult->bindParam(':copa' , $dataRetorno['copa'], PDO::PARAM_STR);
						$cadresult->bindParam(':despensa' , $dataRetorno['despensa'], PDO::PARAM_STR);
						$cadresult->bindParam(':escritorio' , $dataRetorno['escritorio'], PDO::PARAM_STR);
						$cadresult->bindParam(':lareira' , $dataRetorno['lareira'], PDO::PARAM_STR);
						$cadresult->bindParam(':sala_de_ginastica' , $dataRetorno['sala_de_ginastica'], PDO::PARAM_STR);
						$cadresult->bindParam(':sala_de_jantar' , $dataRetorno['sala_de_jantar'], PDO::PARAM_STR);
						$cadresult->bindParam(':acesso_a_deficiente' , $dataRetorno['acesso_a_deficiente'], PDO::PARAM_STR);
						$cadresult->bindParam(':gerador_de_energia' , $dataRetorno['gerador_de_energia'], PDO::PARAM_STR);
						$cadresult->bindParam(':guarita' , $dataRetorno['guarita'], PDO::PARAM_STR);
						$cadresult->bindParam(':lavanderia_coletiva' , $dataRetorno['lavanderia_coletiva'], PDO::PARAM_STR);
						$cadresult->bindParam(':medicao' , $dataRetorno['medicao'], PDO::PARAM_STR);
						$cadresult->bindParam(':agua_individual' , $dataRetorno['agua_individual'], PDO::PARAM_STR);
						$cadresult->bindParam(':portaria_24_horas' , $dataRetorno['portaria_24_horas'], PDO::PARAM_STR);
						$cadresult->bindParam(':bicicletario' , $dataRetorno['bicicletario'], PDO::PARAM_STR);
						$cadresult->bindParam(':churrasqueira' , $dataRetorno['churrasqueira'], PDO::PARAM_STR);
						$cadresult->bindParam(':ducha_externa' , $dataRetorno['ducha_externa'], PDO::PARAM_STR);
						$cadresult->bindParam(':piscina' , $dataRetorno['piscina'], PDO::PARAM_STR);
						$cadresult->bindParam(':playground' , $dataRetorno['playground'], PDO::PARAM_STR);
						$cadresult->bindParam(':quadra_de_esportes' , $dataRetorno['quadra_de_esportes'], PDO::PARAM_STR);
						$cadresult->bindParam(':quadra_tenis' , $dataRetorno['quadra_tenis'], PDO::PARAM_STR);
						$cadresult->bindParam(':sala_ginastica_fitness' , $dataRetorno['sala_ginastica_fitness'], PDO::PARAM_STR);
						$cadresult->bindParam(':salao_de_festas' , $dataRetorno['salao_de_festas'], PDO::PARAM_STR);
						$cadresult->bindParam(':salao_de_jogos' , $dataRetorno['salao_de_jogos'], PDO::PARAM_STR);
						$cadresult->bindParam(':sauna' , $dataRetorno['sauna'], PDO::PARAM_STR);
						$cadresult->bindParam(':alarme' , $dataRetorno['alarme'], PDO::PARAM_STR);
						$cadresult->bindParam(':camera_de_vigilancia' , $dataRetorno['camera_de_vigilancia'], PDO::PARAM_STR);
						$cadresult->bindParam(':fechadura_reforcada' , $dataRetorno['fechadura_reforcada'], PDO::PARAM_STR);
						$cadresult->bindParam(':interfone' , $dataRetorno['interfone'], PDO::PARAM_STR);
						$cadresult->bindParam(':muro_com_cerca_eletrica' , $dataRetorno['muro_com_cerca_eletrica'], PDO::PARAM_STR);
						$cadresult->bindParam(':portao_eletronico' , $dataRetorno['portao_eletronico'], PDO::PARAM_STR);
						$cadresult->bindParam(':vigilancia_24_horas' , $dataRetorno['vigilancia_24_horas'], PDO::PARAM_STR);
						$cadresult->bindParam(':destaque_home' , $destaque, PDO::PARAM_STR);
						$cadresult->bindParam(':data_criacao' , $dataCadastro, PDO::PARAM_STR);
						$cadresult->execute();
						$cadcontar = $cadresult->rowCount();
						if($cadcontar > 0) {
								$imovelImportado = 1;
								$id_imovel = $conectDB->lastInsertId();
								//echo 'cadastrou';
								
								//download imagens
									$destino = '../../assets/storage/'.$_SESSION['userCode'].'/imoveis/'.$id_imovel.'/';
									if (!file_exists( $destino )) {
										mkdir( $destino, 0777, true);
									}

									$curlImagens = curl_init($configSistema['apiBaseURL'].'buscaItem/imagens/'.$imovelID);
									curl_setopt($curlImagens, CURLOPT_RETURNTRANSFER, true);
									curl_setopt($curlImagens, CURLOPT_HTTPHEADER, array(
									   'Content-Type: application/json',
									   'Authorization: '.$token
									 ));
									curl_setopt($curlImagens, CURLOPT_SSL_VERIFYHOST, false);
									curl_setopt($curlImagens, CURLOPT_SSL_VERIFYPEER, false);
									$dataR = curl_exec($curlImagens);
									//print_r($dataR); 
									$retornoImagens = json_decode($dataR);
									if( (isset($retornoImagens->status)) && ($retornoImagens->status == 'error') )
									{
										echo messageJson("erro", $retornoImagens->message);
									}
									else
									{

  
 
										$contador = 1;
										$retornoImagensJson = json_decode($dataR, true);//converts in array
										foreach($retornoImagensJson['body'] as $keys => $value){
								        	 
											//download image
												$urlImagem 	= 'https://meusistemas.com.br/gerenciador-imobiliario/assets/storage/'.$dataRetorno['userID'].'/imoveis/'.$dataRetorno['id'].'/imagens/'.$value['imagem'];
												$saveto 	= $destino.$value['imagem'];

											    $file = fopen($urlImagem, 'rb');
											    if ($file) {
											        $newf = fopen($saveto, 'wb');
											        if ($newf) {
											            while (!feof($file)) {
											                fwrite($newf, fread($file, 1024 * 8), 1024 * 8);
											            }
											        }
											    }
											    if ($file) {
											        fclose($file);

											        //cadastra imagem
													$codigoImagem	  = uniqid(time().'.'.rand(), true);
													$principal = 0;
													if($contador == 1){
														$principal = 1;
													}
								 					
													$cadinsert = "
														INSERT into imovel_galeria
															(imovel_id, usuario_id, codigo, principal, img, ordem, cadastro)
														VALUES
															(:imovel_id, :usuario_id, :codigo, :principal, :img, :ordem, :cadastro)";
													 
														$cadresult = $conectDB->prepare($cadinsert);
														$cadresult->bindParam(':usuario_id' , $_SESSION['userID'], PDO::PARAM_STR);
														$cadresult->bindParam(':imovel_id' , $id_imovel, PDO::PARAM_STR);
														$cadresult->bindParam(':codigo' , 	$codigoImagem, PDO::PARAM_STR);
														$cadresult->bindParam(':principal' , $principal, PDO::PARAM_STR);
														$cadresult->bindParam(':img' , 		$value['imagem'], PDO::PARAM_STR);
														$cadresult->bindParam(':ordem' , 	$value['posicao'], PDO::PARAM_STR);
														$cadresult->bindParam(':cadastro' , $dataCadastro, PDO::PARAM_STR);
														$cadresult->execute();
														

													//cadastra imagem
											    }
											    if ($newf) {
											        fclose($newf);
											    }

											    $contador ++;
											//download image
 								        }
 


									}
						}
						else
						{
							echo 'não cadastrou a casa';
						}
					}
					catch(PDOException $e) {
						echo $e;
					}
				}
			}
			if($imovelImportado == 1){
				echo json_encode(array('', 'Tudo certo! foi cadastrado com sucesso.', ''));
			}
		} 

	
	//$token     = stringInputCleaner($_POST['token']);
}