<?php 
defined('BASEPATH') or exit('Ação não permitida');

class Core_model extends CI_Model{


    public function get_all($table = NULL, $conditions = NULL){
        if($table && $this->db->table_exists($table)){
            if(is_array($conditions)){
                $this->db->where($conditions);
            }
            return $this->db->get($table)->result();
        } else {
            return false;
        }
    }

    public function get_by_id($table = NULL, $conditions = NULL){
        if($table && $this->db->table_exists($table) && is_array($conditions)){
            $this->db->where($conditions);
            $this->db->limit(1);
            return $this->db->get($table)->row();
        } else {
            return false;
        }
    }

    public function get($table = NULL, $conditions = NULL){
        if($table && $this->db->table_exists($table) && is_array($conditions)){
            $this->db->where($conditions);
            $this->db->limit(1);
            return $this->db->get($table)->row();
        } else {
            return false;
        }
    }

    public function insert($table = NULL, $data = NULL, $get_last_id = NULL){
        if($table && $this->db->table_exists($table) && is_array($data)){
            //INSERT THE LAST ID WHICH WAS INSERTED IN DATABASE
            if($get_last_id){
                $this->session->set_userdata('last_id', $this->db->insert_id);
            }
            if($this->db->affected_rows() > 0){
                $this->session->set_flashdata('success_message', 'Salvo com sucesso.');
            } else {
                $this->session->set_flashdata('error_message', 'Não foi possível salvar. Tente novamente!');
            }
        } else {
            return false;
        }
    }

    public function update($table = NULL, $data = NULL, $conditions = NULL){
        if($table && $this->db->table_exists($table) && is_array($data) && is_array($conditions)){
            if($this->db->update($table, $data, $conditions)){
                $this->session->set_flashdata('success_message', 'Editado com sucesso.');
            } else {
                $this->session->set_flashdata('error_message', 'Não foi possível salvar. Tente novamente!');
            }
        } else {
            return false;
        }
    }

    public function delete($table = NULL, $conditions = NULL){
        if($table && $this->db->table_exists($table) && is_array($conditions)){
            if($this->db->delete($table, $conditions)){
                $this->session->set_flashdata('success_message', 'Deletado com sucesso.');
            } else {
                $this->session->set_flashdata('error_message', 'Não foi possível deletar o registro.');
            }
        } else {
            return false;
        }

    }
}


?>