<?php

class Cadastro_Model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function add($dados) {
        $this->db->insert('termo', $dados);
    }

    public function obtemTermo() {

        $this->db->select('id_termo,conteudo, status');
        $this->db->where("status", 1);
        $query = $this->db->get('termo');

        return $query->row_array();
    }

    public function getAlunoPorID($id) {
        $this->db->where("id_aluno", $id);
        $query = $this->db->get('aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function getAlunoPorNome($nome) {
        $this->db->where("nome", $nome);
        $query = $this->db->get('aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function getAlunoPorEmail($email) {
        $this->db->where("email", $email);
        $query = $this->db->get('aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function getLoginAluno($email, $senha) {
        $this->db->where("email", $email);
        $this->db->where("senha", $senha);
        $this->db->where("bloqueado", 0);
        $query = $this->db->get('aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function inserirAluno($dados) {

        $this->db->insert('aluno', $dados);
    }

    public function getalunonverificado() {
        $this->db->where("id_aluno", $_SESSION['aluno']['id_aluno']);
        $this->db->where("situacao", 0);
        $query = $this->db->get('aluno');

        return $query->row_array();
    }

    public function autalizadadoscadastrais($data) {

        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $this->db->update('aluno', $data);
    }

    public function alunoantigo() {
        
    }

    public function recuperaemail() {

        $this->db->select('email,nome');
        $this->db->where('email', $this->input->post('email'));
        $query = $this->db->get('aluno')->row_array();

        return $query;
    }

    public function recupera_cpf($cpf) {
        $this->db->where('documento', $cpf);
        $this->db->where('tipo_doc', 2);
        $query = $this->db->get('documentacao_aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function obtemdocumentacao() {
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $query = $this->db->get('documentacao_aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function documentacaoassinatura($info) {

        $doc = $this->obtemdocumentacao();

        if ($doc != FALSE) {
            $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
            $this->db->update('documentacao_aluno', $info);
        } else {
            $data = array('id_aluno' => $_SESSION['aluno']['id_aluno'], 'assinatura' => $info['assinatura'], 'ativo' => 0);
            $this->db->insert('documentacao_aluno', $data);
        }
    }

    public function documentacao($info) {

        $doc = $this->obtemdocumentacao();

        if ($doc != FALSE) {
            $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
            $this->db->update('documentacao_aluno', $info);
        } else {
            $data = array('id_aluno' => $_SESSION['aluno']['id_aluno'], 'documento' => $info['documento'], 'tipo_doc' => $info['tipo_doc'], 'ativo' => 0);
            $this->db->insert('documentacao_aluno', $data);
        }
    }

    function aluno() {
        // RECUPERO O NOME DO ALUNO PARA SER UUSADO NO CABECALHO
        $this->db->where('id_aluno', @$_SESSION['aluno']['id_aluno']);
        $query = $this->db->get('aluno')->row_array();

        return $query;
    }

    public function email($titulo, $template, $email) {

        $url = URL_EMAIL;
        // Parâmetros enviados via POST
        $post = array(
            'token' => OPAYT_TOKEN,
            'chave' => OPAYT_CHAVE,
            'name' => 'Amazônia Cursos',
            'email' => $email,
            'subject' => $titulo,
            'body' => $template,
            'tipo' => 1,
        );

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $requisicao = curl_exec($ch);
        curl_close($ch);

        return $requisicao;
    }

    function codifica($string = null) {
        for ($i = 0; $i < 3; $i++) {
            $string = strrev(base64_encode(str_replace("=", "+", $string)));
        }
        return $string;
    }

    function decodifica($string = null) {
        for ($i = 0; $i < 3; $i++) {
            $string = strrev($string);
            $string = base64_decode(str_replace("+", "=", $string));
        }
        return $string;
    }

    function logAluno($id_aluno) {
        $this->db->where('id_aluno', $id_aluno);
        return $this->db->get('log_aluno')->result();
    }

    function atualizaLog($nome_novo, $nome_antigo) {
        
        $this->db->set('nome_antigo', $nome_antigo);
        $this->db->set('nome_atual', $nome_novo);
        $this->db->set('data_alteracao', date('Y-m-d H:i:s'));
        $this->db->set('tipo_consulta', 1);
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $this->db->update('log_aluno');
        
        $this->db->set('nome', $nome_novo);
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $this->db->update('aluno');
    }
    
    function atualizaLogData() {
        $this->db->set('tipo_consulta', 1);
        $this->db->set('data_alteracao', date('Y-m-d H:i:s'));
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $this->db->update('log_aluno');
    }
    
    function insereLog($nome_novo, $nome_antigo, $cpf) {

        $data = [
            'id_aluno' => $_SESSION['aluno']['id_aluno'],
            'cpf' => $cpf,
            'nome_antigo' => $nome_antigo,
            'nome_atual'  => $nome_novo,
            'data_alteracao' => date('Y-m-d H:i:s'),
            'tipo_consulta' => 1    
        ];
        
        $this->db->insert('log_aluno', $data);
        
        $this->db->set('nome', $nome_novo);
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $this->db->update('aluno');
    }
    
    function recuperaemailAluno($email) {
        $this->db->where('email', $email);
        return $this->db->get('aluno')->result();  
    }
    
    function atualizaEmail($email) {
        
        $this->db->set('email', $email);
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $this->db->update('aluno');
    }
    
    public function area_interesses() {
        $this->db->select('a.id_aluno, a.nome');
        $this->db->join('aluno_area b','a.id_aluno = b.id_aluno');
        $this->db->where('a.id_aluno', $_SESSION['aluno']['id_aluno']);
        return $this->db->get('aluno a')->result();
    }

}
