<?php
// Teste direto do método de busca CNJ
// Upload em: brenopaiva.com.br/sistema/teste_cnj.php
// APAGUE após usar!

define('BASEPATH', true);

$db = new mysqli('localhost', 'brenopai_advteste', 'COLOQUE_SUA_SENHA_AQUI', 'brenopai_advteste');
$db->set_charset('utf8mb4');

// Pega API key do banco
$res     = $db->query("SELECT datajud_api_key FROM settings LIMIT 1");
$row     = $res->fetch_object();
$api_key = trim($row->datajud_api_key ?? '');

// Número que você testou — ajuste aqui
$numero_digits = '00007440920185060022';
$endpoint      = 'https://api-publica.datajud.cnj.jus.br/api_publica_trt6/_search';

echo "<style>body{font-family:monospace;padding:20px} pre{background:#1e1e1e;color:#d4d4d4;padding:12px;border-radius:6px;overflow:auto}</style>";
echo "<h3>Diagnóstico CNJ direto</h3>";
echo "Número: <b>$numero_digits</b><br>";
echo "API Key: <b>" . substr($api_key,0,15) . "...</b><br><br>";

$queries = [
    'term.keyword' => json_encode(['query'=>['term'=>['numeroProcesso.keyword'=>$numero_digits]]]),
    'match'        => json_encode(['query'=>['match'=>['numeroProcesso'=>$numero_digits]]]),
];

foreach ($queries as $tipo => $payload) {
    $ch = curl_init($endpoint);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 15,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $payload,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json', 'Authorization: APIKey '.$api_key],
        CURLOPT_SSL_VERIFYPEER => false,
    ]);
    $resp = curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    $data  = json_decode($resp, true);
    $hits  = $data['hits']['total']['value'] ?? 0;
    $found = !empty($data['hits']['hits']);

    echo "<b>[$tipo]</b> HTTP:$code Hits:$hits " . ($found ? '<span style="color:lime">ENCONTROU</span>' : '<span style="color:red">NÃO ENCONTROU</span>') . "<br>";

    if ($found) {
        $proc = $data['hits']['hits'][0]['_source'];
        echo "<pre>";
        echo "dataAjuizamento : " . ($proc['dataAjuizamento'] ?? 'N/A') . "\n";
        echo "grau            : " . ($proc['grau'] ?? 'N/A') . "\n";
        echo "classe          : " . ($proc['classe']['nome'] ?? 'N/A') . "\n";
        echo "orgaoJulgador   : " . ($proc['orgaoJulgador']['nome'] ?? 'N/A') . "\n";
        echo "assuntos        : " . json_encode(array_column($proc['assuntos']??[], 'nome')) . "\n";
        echo "partes          : " . (isset($proc['partes']) ? count($proc['partes']).' partes encontradas' : 'CAMPO AUSENTE') . "\n";
        echo "valorCausa      : " . ($proc['valorCausa'] ?? 'CAMPO AUSENTE') . "\n";
        echo "qtd movimentos  : " . count($proc['movimentos']??[]) . "\n";
        echo "</pre>";

        echo "<hr><h4>O que o PHP _montar_retorno_datajud retornaria:</h4><pre>";
        // Simula o método PHP
        $raw = $proc['dataAjuizamento'] ?? '';
        if (preg_match('/^\d{14}$/', $raw)) {
            $data_inicio = substr($raw,0,4).'-'.substr($raw,4,2).'-'.substr($raw,6,2);
        } else {
            $data_inicio = $raw ? date('Y-m-d', strtotime($raw)) : '';
        }
        echo "data_inicio     : $data_inicio\n";

        $grau_map = ['G1'=>'1º Grau','G2'=>'2º Grau','JE'=>'Juizado Especial'];
        echo "grau_label      : " . ($grau_map[$proc['grau']??''] ?? $proc['grau']??'') . "\n";
        echo "titulo          : " . ($proc['classe']['nome']??'') . " – " . ($proc['assuntos'][0]['nome']??'') . "\n";

        $movs = $proc['movimentos'] ?? [];
        usort($movs, fn($a,$b) => strcmp($b['dataHora']??'', $a['dataHora']??''));
        echo "ultimo_mov      : [" . date('d/m/Y', strtotime($movs[0]['dataHora']??'now')) . "] " . ($movs[0]['nome']??'') . "\n";
        echo "</pre>";
        break;
    }
}
