<?php
declare(strict_types=1);
require_once __DIR__.'/../conexao.php';
require_once __DIR__.'/ativos_helpers.php';
atiExigirAcesso();
$mysqli->set_charset('utf8mb4');

if(!atiTabelaExiste($mysqli,'ti_ativos')) atiRedirecionar('instalar.php');

$tiposPermitidos=atiTiposPermitidos();
$totalCentral = 0;
$resultadoTotal = $mysqli->query("SELECT COUNT(*) total FROM ti_ativos");
if ($resultadoTotal) {
    $totalCentral = (int) (($resultadoTotal->fetch_assoc()['total'] ?? 0));
}
if ($totalCentral === 0) {
    try { atiSincronizarTodos($mysqli); } catch (Throwable) {}
}

$flash=atiConsumirFlash();
$ativos=atiListarResumos($mysqli,$tiposPermitidos);
$q=atiTexto($_GET['q']??'',180);$tipoFiltro=atiTexto($_GET['tipo']??'',30);$statusFiltro=atiTexto($_GET['status']??'',80);$qualidadeFiltro=atiTexto($_GET['qualidade']??'',20);

$kpis=['total'=>count($ativos),'em_uso'=>0,'manutencao'=>0,'sem_responsavel'=>0,'sem_local'=>0,'conferencia_vencida'=>0];
$hoje=time();
foreach($ativos as $a){$rot=atiNormalizar(atiStatusRotulo($a['status']??''));if(str_contains($rot,'uso'))$kpis['em_uso']++;if(str_contains($rot,'manutencao'))$kpis['manutencao']++;if(!atiValorValido($a['responsavel']??null))$kpis['sem_responsavel']++;if(!atiValorValido($a['setor']??null)||(!atiValorValido($a['ambiente']??null)&&!atiValorValido($a['local']??null)))$kpis['sem_local']++;$conf=$a['ultima_conferencia_em']??null;if(!$conf||($hoje-(strtotime($conf)?:0))>365*86400)$kpis['conferencia_vencida']++;}

$filtrados=array_values(array_filter($ativos,function($a)use($q,$tipoFiltro,$statusFiltro,$qualidadeFiltro){
    if($tipoFiltro!==''&&$a['tipo_ativo']!==$tipoFiltro)return false;
    if($statusFiltro!==''&&atiNormalizar(atiStatusRotulo($a['status']??''))!==atiNormalizar($statusFiltro))return false;
    $qual=(int)$a['qualidade_cadastro'];if($qualidadeFiltro==='baixo'&&$qual>=60)return false;if($qualidadeFiltro==='medio'&&($qual<60||$qual>=85))return false;if($qualidadeFiltro==='alto'&&$qual<85)return false;
    if($q==='')return true;$texto=implode(' ',[$a['codigo_ativo'],$a['tipo_ativo'],$a['nome'],$a['patrimonio'],$a['serie'],$a['identificador'],$a['responsavel'],$a['setor'],$a['ambiente'],$a['local'],$a['status']]);return str_contains(atiNormalizar($texto),atiNormalizar($q));
}));

$pagina=max(1,(int)($_GET['pagina']??1));$porPagina=48;$totalPaginas=max(1,(int)ceil(count($filtrados)/$porPagina));$pagina=min($pagina,$totalPaginas);$exibidos=array_slice($filtrados,($pagina-1)*$porPagina,$porPagina);
function atiUrlPagina(int $p):string{$g=$_GET;$g['pagina']=$p;return '?'.http_build_query($g);}
function atiIconeTipo(string $t):string{return match($t){'COMPUTADOR'=>'bi-pc-display','IMPRESSORA'=>'bi-printer-fill','SMARTPHONE'=>'bi-phone-fill','CHIP'=>'bi-sim-fill',default=>'bi-box-seam-fill'};}
?>
<!doctype html><html lang="pt-BR"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><meta name="theme-color" content="#08396f"><title>Central Unificada de Ativos | Manutenção TI</title><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet"><link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet"><link href="ativos_style.css?v=1" rel="stylesheet"></head><body>
<div class="top"></div><div class="grid-bg"></div><div class="app"><header class="header"><div class="header-inner"><div class="brand"><div class="logo"><img src="../assets/logo_pref.jpg" alt="Prefeitura de Extrema"></div><div><span class="eyebrow"><i class="bi bi-shield-lock-fill"></i>Gerência de Tecnologia • Registro institucional único</span><h1>Central Unificada de Ativos</h1><p>Computadores, impressoras, smartphones e linhas móveis reunidos sem alterar os módulos que já estão funcionando.</p></div></div><nav class="header-actions"><?php if(atiEhRenan()):?><a class="head-btn primary" href="sincronizar.php"><i class="bi bi-arrow-repeat"></i>Sincronizar</a><a class="head-btn" href="instalar.php"><i class="bi bi-gear-fill"></i>Estrutura</a><a class="head-btn" href="../inventario_geral.php"><i class="bi bi-clipboard2-check-fill"></i>Inventário</a><a class="head-btn" href="../usuarios_permissoes.php"><i class="bi bi-person-lock"></i>Permissões</a><?php endif;?><a class="head-btn" href="../listar_os.php"><i class="bi bi-arrow-left-circle-fill"></i>Sistema</a><a class="head-btn" href="../logout.php"><i class="bi bi-box-arrow-right"></i>Sair</a></nav></div></header><main class="main">
<?php if($flash):?><div class="flash <?=$flash['tipo']==='sucesso'?'success':'error'?>"><i class="bi <?=$flash['tipo']==='sucesso'?'bi-check-circle-fill':'bi-exclamation-triangle-fill'?>"></i><?=atiE($flash['mensagem'])?></div><?php endif;?>
<section class="hero"><div><h2>Uma identidade permanente para <span>cada ativo da TI.</span></h2><p>O código ATI conecta o cadastro atual, ordens de serviço, termos, movimentações, manutenções, documentos, custos, relacionamentos e conferências físicas em uma única ficha.</p><div class="tags"><span class="tag"><i class="bi bi-link-45deg"></i>Sem recadastro</span><span class="tag"><i class="bi bi-clock-history"></i>Histórico consolidado</span><span class="tag"><i class="bi bi-shield-check"></i>Permissões preservadas</span><span class="tag"><i class="bi bi-database-check"></i>Módulos originais intactos</span></div></div><aside class="hero-side"><small>Ativos visíveis para <?=atiE(atiUsuario())?></small><strong><?=count($ativos)?></strong><span>Sincronizados a partir dos módulos autorizados para o seu perfil.</span></aside></section>
<section class="kpis"><article class="kpi"><i class="bi bi-boxes"></i><strong><?=$kpis['total']?></strong><span>Total integrado</span></article><article class="kpi"><i class="bi bi-person-check-fill"></i><strong><?=$kpis['em_uso']?></strong><span>Em uso</span></article><article class="kpi"><i class="bi bi-tools"></i><strong><?=$kpis['manutencao']?></strong><span>Em manutenção</span></article><article class="kpi"><i class="bi bi-person-exclamation"></i><strong><?=$kpis['sem_responsavel']?></strong><span>Sem responsável</span></article><article class="kpi"><i class="bi bi-geo-alt-fill"></i><strong><?=$kpis['sem_local']?></strong><span>Local incompleto</span></article><article class="kpi"><i class="bi bi-clipboard-x-fill"></i><strong><?=$kpis['conferencia_vencida']?></strong><span>Conferência pendente</span></article></section>
<section class="panel"><div class="panel-head"><div class="panel-title"><span class="panel-icon"><i class="bi bi-search"></i></span><div><h3>Pesquisa central</h3><p><?=count($filtrados)?> ativo(s) encontrados.</p></div></div></div><form class="filters" method="get"><input class="control" type="search" name="q" value="<?=atiE($q)?>" placeholder="ATI, patrimônio, série, IMEI, linha, modelo, pessoa, setor ou local..."><select class="control" name="tipo"><option value="">Todos os tipos</option><?php foreach($tiposPermitidos as $t):?><option value="<?=$t?>" <?=$tipoFiltro===$t?'selected':''?>><?=atiE($t)?></option><?php endforeach;?></select><select class="control" name="status"><option value="">Todos os status</option><?php foreach(['Em uso','Disponível','Reserva / estoque','Em manutenção','Pronta para retirada','Não localizado','Aguardando baixa','Baixado','Cadastro incompleto'] as $s):?><option <?=$statusFiltro===$s?'selected':''?>><?=atiE($s)?></option><?php endforeach;?></select><select class="control" name="qualidade"><option value="">Qualquer qualidade</option><option value="baixo" <?=$qualidadeFiltro==='baixo'?'selected':''?>>Abaixo de 60%</option><option value="medio" <?=$qualidadeFiltro==='medio'?'selected':''?>>60% a 84%</option><option value="alto" <?=$qualidadeFiltro==='alto'?'selected':''?>>85% ou mais</option></select><button class="button primary"><i class="bi bi-funnel-fill"></i>Filtrar</button></form>
<div class="assets"><?php foreach($exibidos as $a):?><a class="asset-card" href="ativo.php?id=<?=(int)$a['id']?>"><div class="asset-top"><span class="asset-icon"><i class="bi <?=atiIconeTipo($a['tipo_ativo'])?>"></i></span><span class="asset-code"><?=atiE($a['codigo_ativo'])?></span></div><h4><?=atiE($a['nome'])?></h4><p><?=atiE($a['tipo_ativo'].' • '.($a['subtipo']??''))?></p><div class="asset-info"><div><span>Patrimônio</span><strong><?=atiE($a['patrimonio']?:'Não informado')?></strong></div><div><span>Série / identificador</span><strong><?=atiE($a['serie']?:($a['identificador']?:'Não informado'))?></strong></div><div><span>Responsável</span><strong><?=atiE($a['responsavel']?:'Sem responsável')?></strong></div><div><span>Setor</span><strong><?=atiE($a['setor']?:'Sem setor')?></strong></div></div><div class="asset-footer"><span class="status <?=atiStatusClasse($a['status'])?>"><?=atiE(atiStatusRotulo($a['status']))?></span><span class="quality"><span><?=$a['qualidade_cadastro']?>%</span><span class="quality-track"><i style="width:<?=(int)$a['qualidade_cadastro']?>%"></i></span></span></div></a><?php endforeach;?><?php if(!$exibidos):?><div class="empty" style="grid-column:1/-1"><i class="bi bi-search"></i><strong>Nenhum ativo encontrado</strong><span>Altere os filtros ou execute a sincronização.</span></div><?php endif;?></div>
<?php if($totalPaginas>1):?><div class="pagination"><?php for($p=max(1,$pagina-3);$p<=min($totalPaginas,$pagina+3);$p++):?><a class="page <?=$p===$pagina?'active':''?>" href="<?=atiE(atiUrlPagina($p))?>"><?=$p?></a><?php endfor;?></div><?php endif;?></section><footer class="footer"><span>Prefeitura de Extrema • Gerência de Tecnologia<br>Central institucional de ativos.</span><span>Os módulos existentes permanecem independentes e intactos.</span></footer></main></div></body></html>
