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

class Ubigeo_model extends CI_Model {

    public function listar() {
        return $this->db
            ->order_by('id', 'DESC')
            ->get('mt_ubigeo')
            ->result();
    }

    public function obtener($id) {
        return $this->db
            ->where('id', $id)
            ->get('mt_ubigeo')
            ->row();
    }

    public function insertar($data) {
        return $this->db->insert('mt_ubigeo', $data);
    }

    public function actualizar($id, $data) {
        return $this->db
            ->where('id', $id)
            ->update('mt_ubigeo', $data);
    }

    public function cambiarEstado($id, $estado, $usuario_id = null) {
        return $this->db
            ->where('id', $id)
            ->update('mt_ubigeo', array(
                'estado' => $estado,
                'updated_at' => date('Y-m-d H:i:s'),
                'updated_by' => $usuario_id
            ));
    }

    public function existe_codigo($departamento, $provincia, $distrito, $id = null) {
        $this->db->where('departamento', $departamento);
        $this->db->where('provincia', $provincia);
        $this->db->where('distrito', $distrito);

        if ($id !== null) {
            $this->db->where('id !=', $id);
        }

        return $this->db->get('mt_ubigeo')->num_rows() > 0;
    }

    public function existe_nombre($nombre, $id = null) {
        $this->db->where('nombre', $nombre);

        if ($id !== null) {
            $this->db->where('id !=', $id);
        }

        return $this->db->get('mt_ubigeo')->num_rows() > 0;
    }
}