<?php
$base = '/home/brenopai/public_html/brenopaiva.com.br/sistema/application/modules/admin';
echo '<pre>';

// 1. Corrige controller — user_id pode ser 'id' na sessão
$ctrl = file_get_contents($base.'/controllers/diario_oficial.php');
$ctrl = str_replace(
    "\$uid    = \$admin['user_id'];",
    "\$uid    = \$admin['user_id'] ?? \$admin['id'] ?? 0;",
    $ctrl
);
// Corrige também nas outras ocorrências
$ctrl = str_replace(
    "\$this->pje_model->marcar_lida(\$id, \$admin['user_id']);",
    "\$this->pje_model->marcar_lida(\$id, \$admin['user_id'] ?? \$admin['id'] ?? 0);",
    $ctrl
);
$ctrl = str_replace(
    "\$this->pje_model->marcar_todas_lidas(\$adv_id, \$admin['user_id']);",
    "\$this->pje_model->marcar_todas_lidas(\$adv_id, \$admin['user_id'] ?? \$admin['id'] ?? 0);",
    $ctrl
);
file_put_contents($base.'/controllers/diario_oficial.php', $ctrl);
echo "✓ Controller: user_id corrigido\n";

// 2. Corrige model — reset_query() não existe no CI2, usar flush_cache() ou reescrever
$model = file_get_contents($base.'/models/pje_model.php');
// Substitui o método _apply_filters inteiro
$old = '    private function _apply_filters($f) {
        $this->db->reset_query();
        if (!empty($f[\'f_adv\']))      $this->db->where(\'p.advogado_id\', $f[\'f_adv\']);
        if (!empty($f[\'f_dt_ini\']))   $this->db->where(\'p.data_publicacao >=\', $f[\'f_dt_ini\']);
        if (!empty($f[\'f_dt_fim\']))   $this->db->where(\'p.data_publicacao <=\', $f[\'f_dt_fim\']);
        if ($f[\'f_lida\'] !== \'\' && $f[\'f_lida\'] !== null)
                                      $this->db->where(\'p.lida\', (int)$f[\'f_lida\']);
        if (!empty($f[\'f_tribunal\'])) $this->db->where(\'p.tribunal\', $f[\'f_tribunal\']);
        if (!empty($f[\'f_busca\'])) {
            $b = $this->db->escape_like_str($f[\'f_busca\']);
            $this->db->group_start();
            $this->db->like(\'p.numero_processo\', $b);
            $this->db->or_like(\'p.processo_mascara\', $b);
            $this->db->or_like(\'p.conteudo\', $b);
            $this->db->or_like(\'p.orgao\', $b);
            $this->db->group_end();
        }
    }';

$new = '    private function _apply_filters($f) {
        // CI2 nao tem reset_query() — os wheres sao acumulados na mesma query
        if (!empty($f[\'f_adv\']))      $this->db->where(\'p.advogado_id\', (int)$f[\'f_adv\']);
        if (!empty($f[\'f_dt_ini\']))   $this->db->where(\'p.data_publicacao >=\', $f[\'f_dt_ini\']);
        if (!empty($f[\'f_dt_fim\']))   $this->db->where(\'p.data_publicacao <=\', $f[\'f_dt_fim\']);
        if (isset($f[\'f_lida\']) && $f[\'f_lida\'] !== \'\' && $f[\'f_lida\'] !== null)
                                      $this->db->where(\'p.lida\', (int)$f[\'f_lida\']);
        if (!empty($f[\'f_tribunal\'])) $this->db->where(\'p.tribunal\', $f[\'f_tribunal\']);
        if (!empty($f[\'f_busca\'])) {
            $b = $f[\'f_busca\'];
            $this->db->where(\'(p.numero_processo LIKE \'.$this->db->escape(\'%\'.$b.\'%\')
                .\' OR p.processo_mascara LIKE \'.$this->db->escape(\'%\'.$b.\'%\')
                .\' OR p.orgao LIKE \'.$this->db->escape(\'%\'.$b.\'%\')
                .\' OR p.conteudo LIKE \'.$this->db->escape(\'%\'.$b.\'%\').\')\'
            , NULL, FALSE);
        }
    }';

if (strpos($model, 'reset_query') !== false) {
    $model = str_replace($old, $new, $model);
    if (strpos($model, 'reset_query') !== false) {
        // fallback: substitui só a linha
        $model = str_replace('$this->db->reset_query();', '//', $model);
        echo "✓ Model: reset_query removido (fallback)\n";
    } else {
        echo "✓ Model: _apply_filters reescrito\n";
    }
} else {
    echo "✓ Model: sem reset_query\n";
}

// Também corrige group_start/group_end que pode nao existir no CI2
$model = str_replace('$this->db->group_start();', '', $model);
$model = str_replace('$this->db->group_end();', '', $model);

file_put_contents($base.'/models/pje_model.php', $model);
echo "✓ Model salvo\n";

// 3. Verifica sessão — mostra chaves disponíveis
$session_file = $base.'/../../../index.php';
echo "\nChaves de sessão admin (diagnóstico):\n";
echo "Acesse: ".site_url_manual('admin/diario_oficial/debug_session')."\n";

function site_url_manual($path) {
    return 'https://sistema.brenopaiva.com.br/index.php/'.$path;
}

echo "\n✓ Correções aplicadas. Tente acessar novamente.\n";
echo '</pre>';
