<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

// Require the Composer autoloader.
//require APPPATH . 'libraries/vendor/autoload.php';
//define('ACCESS_KEY', "AKIAXWSGWKL2LMYZ2XSV");
//define('SECRET_KEY', "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");
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
//use Aws\Credentials\Credentials;
//use Aws\S3\S3Client;
//use Aws\S3\Exception\S3Exception;

class Imoveis_ajax extends Builder_Controller {

	function __construct()
	{
        parent::__construct();
        require APPPATH . 'libraries/vendor/autoload.php';
        if($this->session->perfil == 0 || $this->session->perfil == null)
        {
	        echo json_encode(['valid' => false,'erro' => 1,'msg' => 'Acesso negado!']);
	        die();
		}
		$this->load->model('administrativo/admin_model');
		$this->load->model('administrativo/fluxo_model');
        $this->load->library('newsletter/newsletter');
        //$this->load->library('upload');
	}
	
	public function teste()
	{
	    echo('asdasdasd');
	}
	
	public function edit_imovel()
	{
	    try{
	        $post = $this->input->post();
	        
	        if (!($post['id_imovel']??false))
	            throw new Exception("ID NULL");
	        
	        $descricao = $post['descricao']??'editImovel';
	        
	        $valid = $this->cad_model->updateImovel($post['id_imovel'],$post);
	        MFluxo::editImovel($post['id_imovel'], $post, null, $descricao);
	       
	        echo json_encode(['valid' => $valid, 'msg' => 'Sucesso', 'update' => $post ]);
            
        }catch(Exception $e) {
                echo json_encode(['valid' => false, 'msg' => $e->getMessage()]);
        }
	}
	
	public function atualiza_imovel()
    {
        $data = $this->input->post();
        $data['edit']??$data['edit']='false';
        
        // Verifica se o imovel pertence ao cadastro;
        $imovel = $this->admin_model->getImovel([['a.id_imovel',$data['id_imovel']]]);
        
        if(!empty($imovel))
        {
            $data['step'] = (int)$data['step'];
            //var_dump($data['chk_termo'],$data['step']);die();
            
            unset($data['doc_propriedade']);
            unset($data['doc_planilha']); 
            unset($data['dn_img']);
            unset($data['step']);
            $dataNew = array_merge((array)$imovel, $data); 
            $data['key_anuncio'] = HImovel::montaKeyAnuncio($dataNew);
            
            if($this->cad_model->updateImovel($data['id_imovel'],$data))
            {
                $arrayNew = $this->filtraCamposNovaUnidade($data);
                $editUnidade = [];
                
                if(!empty($arrayNew) && $imovel->id_imovel_rel == 0)
                {
                    if($data['edit'] == 'true')
                    {
                        $unidades = $this->cad_model->getImoveis(['id_imovel_rel'=>$data['id_imovel']]);
                        foreach($unidades as $unidade){
                            $upUnidade = $data;
                            $dataNew = array_merge((array)$unidade, $data);
                            $upUnidade['key_anuncio'] = HImovel::montaKeyAnuncio($dataNew);
                            $this->cad_model->updateImovel($data['id_imovel'],$upUnidade);
                            $editUnidade[] = $upUnidade['key_anuncio'];
                        }
                    }
                    else
                    {
                        $this->cad_model->updateImovelRel($data['id_imovel'],$this->filtraCamposNovaUnidade($data));
                    }
                }
                $json = ['valid' => true, 'data'=> $data, 'editUnidade' => $editUnidade, 'msg' => 'Sucesso!'];
            }
            else{
                $json = ['valid' => false,'erro' => 5,'msg' => 'Falha de comunicação com o banco!'];
            }
            
            //updadte cadastro
            
            if($this->cad_model->updateCadastro($imovel->id_cadastro,$data))
            {
                $json = ['valid' => true, 'data'=> $data, 'msg' => 'Sucesso!'];
            }
            else{
                $json = ['valid' => false,'erro' => 5,'msg' => 'Falha de comunicação com o banco!'];
            }
        }
        else
        {
            $json = ['valid' => false,'erro' => 4,'msg' => 'Acesso negado!'];
        }
        echo json_encode($json);
    }
	
	
	public function atualiza_lancamento()
    {
        $data = $this->input->post();
        $id_imovel = $data['id_imovel'];
        $imovel =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
        
        if(!empty($imovel))
        {
            //$data['step'] = (int)$data['step'];
            unset($data['doc_propriedade']);
            unset($data['doc_planilha']);
            unset($data['dn_img']);
            //$data['key_anuncio'] = HImovel::montaKeyAnuncio($data);
            $dtLancamento = $data;
            
            if($this->cad_model->updateImovel($data['id_imovel'],$dtLancamento)){
                
                $this->cad_model->updateImovelRel($data['id_imovel'],$data);
                /*$arrayNew = $this->filtraCamposNovaUnidade($data);
                if(!empty($arrayNew))
                    $this->cad_model->updateImovelRel($data['id_imovel'],$arrayNew);*/
                    
                $json = ['valid' => true, 'data'=> $data,'msg' => 'Sucesso!'];
            }
            else{
                $json = ['valid' => false,'erro' => 5,'msg' => 'Falha de comunicação com o banco!'];
            }
        }
        else
        {
            $json = ['valid' => false,'erro' => 4,'msg' => 'Acesso negado!'];
        }
        echo json_encode($json);
    }
    
    // P R I V A T E ---------------------------------------------------------------
    
    private function filtraCamposNovaUnidade($cad)
    {
        $cad = (array)$cad;
        $array_unset = [
            'id_imovel',
            'id_imovel_rel',
            'unidade',
            'status',
            'importar_planilha',
            'doc_planilha',
            'tipo_imovel',
            //'numero',
            //'complemento',
            'quartos',
            'suites',
            'banheiros',
            'andar',
            'vaga',
            'posicao_sol',
            'imovel_canto',
            'num_matricula',
            'area_total',
            'area_privativa',
            'doc_propriedade',
            'val_pretendido',
            'key_anuncio'
            ];
        foreach ($cad as $key=>$value)
            if(in_array($key, $array_unset))
                unset($cad[$key]);
        
        return $cad;
    }
    
    public function remove_imagem_perfil()
    {
        $id_imovel = $this->input->post('id_imovel');
        $imovel =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
        
        if(!is_null($imovel))
        {
            $id_cadastro = $imovel->id_cadastro;
            
            $file_name = $imovel->dn_img;
            $data['dn_img'] = '';
            $data['dn_img_uri'] = '';
            $result = $this->cad_model->updateImovel($id_imovel,$data);
            
            echo json_encode(['valid' => true,'msg' => 'Deu Bom']);
        }
        else
        {
            echo json_encode(['valid' => false, 'msg' => 'Faiô']);
        }
    }
    
	public function do_upload_doc()
    {
        $id_imovel = $this->input->post('id_imovel');
        $imovel =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
        
        if(is_null($imovel))
        {
            json_encode(['valid' => false, 'msg' => 'Faiô']);
            die();
        }
        $id_cadastro = $imovel->id_cadastro;
        try {
            if (!isset($_FILES['doc_propriedade']))
                throw new Exception("File not uploaded", 1);
                $allowed_types = array( 
                    'gif',     'GIF',
                    'jpg',     'JPG',
                    'jpeg',    'JPEG',
                    'png',     'PNG',
                    'pdf',     'PDF',
                  );
                $path_parts = pathinfo($_FILES["doc_propriedade"]["name"]);
                $extension = $path_parts['extension'];
                if (!in_array($extension, $allowed_types))
                    die(json_encode(['valid' => false,'erro' => 5,'msg' => 'Tipo de arquivo não permitido!']));
                
                $angle = $this->get_angle_rotate($_FILES['doc_propriedade']['tmp_name']);
                $this->rotate_image($_FILES['doc_propriedade']['tmp_name'],$angle);
                
                
                //$credentials = new Credentials(ACCESS_KEY, SECRET_KEY);
                //$s3 = new S3Client(['version' => 'latest','region' => 'us-west-2','credentials' => $credentials]);
                //$this->load->library('easyphpthumbnail');
                //$tmp_name = $_FILES['doc_propriedade']['tmp_name'];
                //$name = str_replace($extension, "", convertAccentsAndSpecialToNormal($_FILES['doc_propriedade']['name'])).'.'.$extension;
                //$putImg = $this->getPutDoc($tmp_name, $name, $id_cadastro, $id_imovel);
                //$resImg = $s3->putObject($putImg);
                //$imgUrl = $resImg['ObjectURL'];
                
                
                $tmp_name = $_FILES['doc_propriedade']['tmp_name'];
                $name = str_replace($extension, "", convertAccentsAndSpecialToNormal($_FILES['doc_propriedade']['name'])).'.'.$extension;
                $upload_path = 'anunciante/' . $id_cadastro .'/'.$id_imovel.'/doc';
                $imgUrl = Upload::putObjectResize($tmp_name, $name, null, $upload_path);
                
                $uri = str_replace($name, "", $imgUrl);
                
                $data['doc_propriedade'] = $imgUrl;
                
                if($this->cad_model->updateImovel($id_imovel,$data)){
                    $json = ['valid' => true, 'imagem_path' => $imgUrl, 'uploadDoc' => $imgUrl, 'data'=> $data,'msg' => 'Sucesso!'];
                }
                else{
                    $json = ['valid' => false,'erro' => 5,'msg' => 'Falha de comunicação com o banco!'];
                }
                
                echo json_encode($json);
                
        } catch(Exception $e) {
            
            echo json_encode(['valid' => false,'erro' => $e, 'uploadDoc' => '$upDoc', 'msg' => 'Falha de comunicação com S3']);
        }
    }
    
    private function rotate_image($filename,$angle)
    {
        if($angle != 0)
        {
            $this->image_lib->clear();
        
            $config=array();
            $config['image_library'] = 'GD2';
            $config['create_thumb'] = FALSE; //No thumbnail
            $config['source_image'] = $filename; //full path for the source image
            $config['rotation_angle'] = $angle;//
        
            $this->image_lib->initialize($config);
        
            //Rotate the image
            if (!$this->image_lib->rotate()){
                echo $this->image_lib->display_errors();
            }
        }
    }
    
    private function get_angle_rotate($filename)
    {
        
        $info = getimagesize($filename);
        $rotate = 0;
        
        if ($info['mime'] == 'image/jpeg')
        {
            $image = imagecreatefromjpeg($filename);
            $exif = @exif_read_data($filename);
            
            if(!empty($exif['Orientation'])) {
                //echo $exif['Orientation'];
                switch($exif['Orientation']) {
                    case 8:
                        $rotate = 90;
                        break;
                    case 3:
                        $rotate = 180;
                        break;
                    case 6:
                        $rotate = 270;
                        break;
                }
            }
        }   
        
        return $rotate;
    }
    
    /*private function getPutDoc($tmp_name, $name, $id_cadastro, $id_imovel)
    {
        $key = 'anunciante/' . $id_cadastro .'/'.$id_imovel.'/doc/'.$name;
        $tmp_path_local = './modules/anunciante/' . $id_cadastro .'/'.$id_imovel.'/';
        if(!is_dir($tmp_path_local))
                mkdir($tmp_path_local, 0774, true);
        
        move_uploaded_file( $tmp_name, $tmp_path_local . $name);
        
        return [
            'ACL' => 'public-read',
            'Bucket' => getenv('S3_BUCKET'),
            'Key'    => $key,
            'SourceFile' => $tmp_path_local.$name,
            'ContentDisposition' => 'inline; filename='.$name,
            ];
    }*/
    
    public function remove_doc()
    {
        $id_imovel = $this->input->post('id_imovel');
        $imovel =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
        
        
        
        if(!is_null($imovel))
        {
            $id_cadastro = $imovel->id_cadastro;
         
            $file_name = $imovel->doc_propriedade;
            $data['doc_propriedade'] = '';   
            $result = $this->cad_model->updateImovel($id_imovel,$data);
            
            echo json_encode(['valid' => true,'msg' => 'Deu Bom']);
        }
        else
        {
            echo json_encode(['valid' => false, 'msg' => 'Faiô']);
        }
        

    }
	
	public function restaurar_imovel()
	{
	    $post = $this->input->post();
	    
	    if ($post['id_imovel']??false){
	        $valid = $this->cad_model->updateImovel($post['id_imovel'],['lixeira' => 0]);
	                 $this->cad_model->updateImovelRel($post['id_imovel'],['lixeira' => 0]);
	        
	        $post['lixeira'] =  0;
	        MFluxo::editImovel($post['id_imovel'], $post, null, 'Restaurado');
	        
	        echo json_encode(['valid'=> $valid]);
	    }    
	    else    
            echo json_encode(['valid'=> false]);
	    
	    
	}
	
	public function moderar_imovel()
	{
	    $post = $this->input->post();
	    //MFluxo::editImovel($post['id_imovel'], ['status'=> 2], null, 'Enviado para moderação ');
	    $this->setStatusImovel($post, 2, 'Enviado para moderação ');
	}
	
	public function aceitar_imovel()
	{
	    $post = $this->input->post();
	    //MFluxo::editImovel($post['id_imovel'], ['status'=> 3], null, 'Publicado');
	    $this->setStatusImovel($post, 3, 'Publicado');
	}
	
	public function negar_imovel()
	{
	    $post = $this->input->post();
	    
	    $this->load->library('form_validation');
	    $this->form_validation->set_rules('motivo', 'Motivo', 'required|trim');
	    
        if ($this->form_validation->run() != FALSE) 
        {
            //MFluxo::editImovel($post['id_imovel'], $post, null, 'Bloqueado');
            $this->setStatusImovel($post, 4, 'Bloqueado');
	        
        }
        else
        {
            echo json_encode(['valid' => false,'erro' => 1,'msg' => validation_errors()]);
        }
	    
	}
	
	private function setStatusImovel($post, $i, $descricao = '')
	{
	    if ($post['id_imovel']??false){
	        $valid = $this->cad_model->updateImovel($post['id_imovel'],['status' => $i,'status_lancamento' => $i]);
	                 $this->cad_model->updateImovelRel($post['id_imovel'],['status' => $i]);
	        
	        $post['status'] =  $i;
	        MFluxo::editImovel($post['id_imovel'], $post, null, $descricao);
	        
	        $cadastro = $this->cad_model->getImoveCadastro($post['id_imovel']);
	        
	        $empreendimento = $this->cad_model->getEmpreendimento(['id_imovel', $post['id_imovel']]);
	        if($empreendimento == null){
    	        $array = array(   
                    'nome' => $this->altera_nome($cadastro->nome),
                    'email'=> $cadastro->email,
                    'link' => base_url()."imovel/".$post['id_imovel']
                );
    	        if($i == 3)
                    $this->newsletter->enviar_email_campanha($array['email'], 26, $array);
    	        else if($i == 4)
                    $this->newsletter->enviar_email_campanha($array['email'], 27, $array);
	        }
	        
	        echo json_encode(['valid'=> $valid]);
	    }    
	    else    
            echo json_encode(['valid'=> false]);
	}
	
	private function altera_nome($str){
        $nome = explode(' ', $str);
        $first = array_shift($nome);
        $last = array_pop($nome);
        $nome_novo = trim($first." ".$last);
        
        return $nome_novo;
    }
    
    /*private function getPutResizePerfil($tmp_name, $name, $width, $id_cadastro, $pj = false)
    {
        $resize = new easyphpthumbnail;
        		$resize->Thumblocation = $tmp_name;
        		$resize->Thumbfilename = $name;
        		$resize->Thumbwidth = $width;
        		$resize->Quality = 60;
        		$resize->Createthumb($tmp_name, 'file');
        
        $key = 'anunciante/' . $id_cadastro .'/perfil/'.$name;
        if($pj)
            $key = 'anunciante/' . $id_cadastro .'/perfil/pj/'.$name;
        
        return [
            'ACL' => 'public-read',
            'Bucket' => getenv('S3_BUCKET'),
            'Key'    => $key,
            'SourceFile' => $resize->Thumblocation.$resize->Thumbfilename,
            'ContentDisposition' => 'inline; filename='.$tmp_name,
            ];
    }*/
	
	/* ----------------------------- Deletar imagem ----------------------------- */
    
    // Deletar imagem da galeria. Remove do banco e da pasta
    public function deletar()
    {
        $imgName = $this->input->get('file');
        $id_imovel = $this->input->get('id_imovel');
        //$result = $this->cad_model->delete_galeria_admin($imgName, $id_imovel);
        $img = $this->admin_model->getImgImovel([['imagem', $imgName],['id_imovel', $id_imovel]]);
        if($img != null){
            $wd[] = [['id_img', $img->id_img],['id_img_rel',$img->id_img]]; //id_img ou id_img_rel
            $result = $this->admin_model->deleteImgImovel($wd);
        }
        echo json_encode(array(
            'valid' => $result??false
        )); 
    }
    
    
    /* ----------------------------- Métodos da galeria ----------------------------- */
    
    public function upload_img_perfil()
    {
        $dados_perfil = $this->input->post('dados_perfil');
        
        $id_imovel = $this->input->post('id_imovel');
        $imovel =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
        
        if($imovel == null){
            echo json_encode(['valid' => false,'erro' => 5,'msg' => 'Imovel Nao encontrado']); die();
        }
        
        $id_cadastro = $imovel->id_cadastro;
        
        try {
            
            if (!isset($_FILES['dn_img']))
                throw new Exception("File not uploaded", 1);
            $allowed_types = array( 
                'gif',     'GIF',
                'jpg',     'JPG',
                'jpeg',    'JPEG',
                'png',     'PNG',
               );
               
            $path_parts = pathinfo($_FILES["dn_img"]["name"]);
            $extension = $path_parts['extension'];
            if (!in_array($extension, $allowed_types))
                die(json_encode(['valid' => false,'erro' => 5,'msg' => 'Tipo de arquivo não permitido!']));
            
            //$credentials = new Credentials(ACCESS_KEY, SECRET_KEY);
            //$s3 = new S3Client(['version' => 'latest','region' => 'us-west-2','credentials' => $credentials]);
            //$this->load->library('easyphpthumbnail');
            //$tmp_name = $_FILES['dn_img']['tmp_name'];
            //$name = str_replace($extension, "", convertAccentsAndSpecialToNormal($_FILES['dn_img']['name'])).'.'.$extension;
            //$putImg = $this->getPutResizePerfil($tmp_name, $name, 300, $id_cadastro);
            //$resImg = $s3->putObject($putImg);
            //$imgUrl = $resImg['ObjectURL'];
            
            
            $tmp_name = $_FILES['dn_img']['tmp_name'];
            $name = str_replace($extension, "", convertAccentsAndSpecialToNormal($_FILES['dn_img']['name'])).'.'.$extension;
            $upload_path = 'anunciante/' . $id_cadastro .'/perfil/';
            $imgUrl = Upload::putObjectResize($tmp_name, $name, null, $upload_path);
            
            
            
            $uri = str_replace($name, "", $imgUrl);
            
            $data['dn_img'] = $name;    
            $data['dn_img_uri'] = $uri;    
            
            $upPerfil['img_perfil'] = $name;
            $upPerfil['img_perfil_uri'] = $uri;  
            
            $cad = $this->admin_model->get_cadastro([],$id_cadastro);
            
            // SE VIR MARCADO Trazer dados do perfil cadastrado, Sobe a imagem do perfil pro CADASTRO
            /*if($dados_perfil == 'cpf')
                $this->cad_model->updateCadastro($cad->id_cadastro, $upPerfil);*/
            
            if($dados_perfil == 'cpf'){
                $wup[] = ['id_cadastro', $id_cadastro];
                $wup[] = ['doc_perfil', 'cpf'];
                
                $this->admin_model->updateImoveis($wup,$data);
                
                if($this->admin_model->updateCadastro($id_cadastro, $upPerfil)){
                    $json = ['valid' => true, 'imagem_path' => $imgUrl, 'data'=> $data,'msg' => 'Sucesso!'];
                }
                else{
                    $json = ['valid' => false,'erro' => 5,'msg' => 'Falha de comunicação com o banco!'];
                }
            }
            else{
                if($this->admin_model->updateImovel($id_imovel,$data)){
                    $this->admin_model->updateImovelRel($id_imovel,$data);
                    $json = ['valid' => true, 'imagem_path' => $imgUrl, 'data'=> $data,'msg' => 'Sucesso!'];
                }
                else{
                    $json = ['valid' => false,'erro' => 5,'msg' => 'Falha de comunicação com o banco!'];
                }
            }
            echo json_encode($json);  
            
        } catch(Exception $e) {
            echo json_encode(['valid' => false,'erro' => 5,'msg' => $e->getMessage()]);
        }
    }
    
    public function update_img_galeria() 
    {
            $id_imovel = $this->input->post('id_imovel');
            $data['imagem'] = $this->input->post('imagem');
            $data['descricao'] = $this->input->post('descricao');
            $data['alt'] = $this->input->post('descricao');
            
            $img = $this->admin_model->getImgImovel([['imagem', $data['imagem']],['id_imovel', $id_imovel]]);
            if($img != null){
                $wd[] = [['id_img', $img->id_img],['id_img_rel',$img->id_img]]; //id_img ou id_img_rel
                if($this->admin_model->updateImgImovel($wd, $data))
                    echo json_encode(array('valid' => true,'msg' => 'Dados atualizados com sucesso.','desc' => $data['descricao'] ,'name' => $data['alt']));
            }else{
                echo json_encode(array('valid' => false,'msg' => 'A ação não pode ser concluida.'));
            }
        
    }
    
    // Upload das imagens da galeria
    public function do_upload_galery() 
    {
        try {
                //dispara exceção caso não tenha dados enviados
                if (!isset($_FILES['files'])) {
                    die(json_encode(['valid' => false,'erro' => 5,'msg' => 'File not uploaded']));
                    //throw new Exception("File not uploaded", 1);
                }
                
                $allowed_types = array(
                    'gif',
                    'jpg',
                    'jpeg',
                    'png',
                    'GIF',
                    'JPG',
                    'JPEG',
                    'PNG'
                );
                
                $path_parts = pathinfo($_FILES["files"]["name"][0]);
                $extension = $path_parts['extension'];
                
                if (!in_array($extension, $allowed_types))
                    die(json_encode(['valid' => false,'erro' => 5,'msg' => 'Tipo de arquivo não permitido!']));
                
                //$credentials = new Credentials(ACCESS_KEY, SECRET_KEY);
                //$s3 = new S3Client(['version' => 'latest','region' => 'us-west-2','credentials' => $credentials]);
                
                //$this->load->library('easyphpthumbnail');
                //$id_cadastro = $this->session->id_cadastro;
                
                $id_imovel = $this->input->post('id_imovel');
                $imovel =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
                $id_cadastro = $imovel->id_cadastro??0;
                
                
                //$tmp_name = $_FILES['files']['tmp_name'][0];
                //$name = str_replace($extension, "", convertAccentsAndSpecialToNormal($_FILES['files']['name'][0]) ).'.'.$extension;
                //$putFull = $this->getPutResize($tmp_name, $name, '', 1920, $id_cadastro, $id_imovel);
                //$resFull = $s3->putObject($putFull);
                //$putMedium = $this->getPutResize($tmp_name, $name, 'medium/', 400, $id_cadastro, $id_imovel);
                //$respMedium = $s3->putObject($putMedium);
                //$putThumbnail = $this->getPutResize($tmp_name, $name, 'thumbnail/', 200, $id_cadastro, $id_imovel);
                //$respThumbnail = $s3->putObject($putThumbnail);
                //$imgUrl = $resFull['ObjectURL'];
                
                $tmp_name = $_FILES['files']['tmp_name'][0];
                $name = str_replace($extension, "", convertAccentsAndSpecialToNormal($_FILES['files']['name'][0]) ).'.'.$extension;
                $upload_path = 'anunciante/' . $id_cadastro .'/anuncios/'.$id_imovel.'/galeria';
                
                Upload::putObjectResize($tmp_name, $name, 200, $upload_path.'/thumbnail');
                Upload::putObjectResize($tmp_name, $name, 400, $upload_path.'/medium');
                $imgUrl = Upload::putObjectResize($tmp_name, $name, 1920, $upload_path);
                
                $uri = str_replace($name, "", $imgUrl);
                $mediumUrl = $uri.'medium/'.$name;
                $thumbnailUrl = $uri.'thumbnail/'.$name;
                $return = [
                    'deleteType'    => '',
                    'deleteUrl'     => base_url('administrativo/ajax/imoveis_ajax/deletar?file='.$name),
                    'mediumUrl'     => $mediumUrl,
                    'name'          => $name,
                    'size'          => '',
                    'thumbnailUrl'  => $thumbnailUrl,
                    'type'          => '',
                    'uri'           => $uri,
                    'url'           => $imgUrl,
                ];
                
                echo json_encode(['valid' => true,'file' => $return]);
        
            } catch(Exception $e) {
                echo json_encode(['valid' => false,'erro' => 5,'msg' => $e->getMessage()]);
            }
    }
    
    // Insere nome das imagens no banco
    public function update_galery()//insert<----------------------- 
    {
        $post = $this->input->post();
        $id_imovel = $this->input->post('id_imovel');
        $imovelAdm =  $this->admin_model->getImovel([['a.id_imovel',$id_imovel]]);
        $id_cadastro = $imovelAdm->id_cadastro??0;
        
        $post['id_cadastro'] = $id_cadastro;
        
        $post['id_img_rel'] = $this->admin_model->update_galeria($post);//insert<-----------------------
        if($post['edit_lancamento']??false){
            foreach( $this->cad_model->getImoveis(['id_imovel_rel'=>$post['id_imovel']]) as $imovel ){
                $post['id_imovel'] = $imovel->id_imovel;
                $this->cad_model->update_galeria($post);//insert<-----------------------
            }
        }
        echo json_encode($post);
    }
	
	// Tipo: "thumbnail/",  "medium/", "" 
    /*private function getPutResize($tmp_name, $name, $tipo, $width, $id_cadastro, $id_imovel)
    {
        $resize = new easyphpthumbnail;
        		$resize->Thumblocation = $tmp_name;
        		$resize->Thumbfilename = $name;
        		$resize->Thumbwidth = $width;
        		//$resize->Quality = 100;
        		//$resize->Colorreplace  = [0];
        		//$resize->Colorize      = [0];
        		//$resize->Contrast      = [0];
        		//$resize->Sharpen = true;
        		
        		$resize->Createthumb($tmp_name, 'file');
        		
                
        return [
            'ACL' => 'public-read',
            'Bucket' => getenv('S3_BUCKET'),
            'Key'    => 'anunciante/' . $id_cadastro .'/anuncios/'.$id_imovel.'/galeria/'.$tipo.$name,
            'SourceFile' => $resize->Thumblocation.$resize->Thumbfilename,
            'ContentDisposition' => 'inline; filename='.$name,
            ];
    }*/
    
    // ordena as imagens no banco
    public function order_priority() 
    {
        $xss_data = $this->security->xss_clean($_POST);
        if ($xss_data === null && empty($xss_data)) 
        {
            die('Parâmetros inválidos');
        }
        $data = $this->input->post('data');
        
        if(!empty($data))
        {
            $order = array();
            foreach ($data as $key=>$img)
            {
                $this->admin_model->update_galery_by_id(['id_img'=>$img['id'],'priority'=>$key]);
                $this->admin_model->update_galery_rel_by_id(['id_img'=>$img['id'],'priority'=>$key]);//<So Ordena de a foto for do imovel principal
            }
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
	
}