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

class Producto_categoria_model extends CI_Model {

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

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

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

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

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

    public function existe_codigo($codigo, $id = null) {
        $this->db->where('codigo', $codigo);
        if ($id !== null) {
            $this->db->where('id !=', $id);
        }
        return $this->db->get('mt_producto_categoria')->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_producto_categoria')->num_rows() > 0;
    }
}