<?php

namespace App\Models;

use CodeIgniter\Model;

class OtbModel extends Model
{
    protected $table         = 'bdgeo.otbs';
    protected $primaryKey    = 'gid';
    protected $returnType    = 'array';
    protected $useTimestamps = false;

    protected $allowedFields = [
    'id_otb',
    'nombres_otb',
    'distritos',
    ];

    /**
     * Aplica filtros personalizados y retorna QueryBuilder para usar paginación manual
     */
public function buscarQueryBuilder(array $filtros)
{
    $builder = $this->builder();

    foreach ($filtros as $campo => $valor) {
        if (!empty($valor)) {
            if (in_array($campo, ['id_otb'])) {
                $builder->where($campo, (int) $valor);
            } else {
                // Búsqueda insensible a mayúsculas/minúsculas con ILIKE
                $builder->like($campo, $valor, 'both', null, true);
            }
        }
    }

    return $builder;
}


    /**
     * Cuenta resultados filtrados
     */
    public function contarFiltrados(array $filtros)
    {
        return $this->buscarQueryBuilder($filtros)->countAllResults(false);
        // false para que el builder no se resetee al contar
    }
}
