<?php
// ============================================================
// ERP - ActSafe | Página Pública — Visualizar via QR Code
// Suporta: NR12 (equipamentos) e NR10 (painéis elétricos)
// ============================================================
require_once '5_config/config.php';
$db = getDB();

$codigo = limpar($_GET['codigo'] ?? '');
$tipo   = limpar($_GET['tipo'] ?? 'nr12');

if (!$codigo) {
    die('<p style="font-family:Arial;text-align:center;padding:40px;color:red;">QR Code inválido.</p>');
}

// Buscar o QR Code na tabela
$stmt = $db->prepare("SELECT * FROM equipamento_qrcodes WHERE codigo_unico=?");
$stmt->execute([$codigo]);
$qr = $stmt->fetch();

if (!$qr) {
    die('<p style="font-family:Arial;text-align:center;padding:40px;color:red;">QR Code não encontrado.</p>');
}

$dados = null;
$fotos = [];
$documentos = [];
$acoes_vinculadas = [];

if ($tipo === 'nr12') {
    // Equipamento NR12
    $s = $db->prepare("SELECT e.*, u.nome AS unidade_nome, u.codigo AS unidade_codigo FROM equipamentos e LEFT JOIN unidades u ON u.id=e.unidade_id WHERE e.id=?");
    $s->execute([$qr['equipamento_id']]);
    $dados = $s->fetch();

    if ($dados) {
        $sf = $db->prepare("SELECT * FROM equipamento_fotos WHERE equipamento_id=? ORDER BY ordem");
        $sf->execute([$dados['id']]);
        $fotos = $sf->fetchAll(PDO::FETCH_ASSOC);

        $sd = $db->prepare("SELECT * FROM documentos WHERE equipamento_id=? ORDER BY criado_em DESC");
        $sd->execute([$dados['id']]);
        $documentos = $sd->fetchAll(PDO::FETCH_ASSOC);

        $sa = $db->prepare("SELECT * FROM acoes WHERE equipamento_id=? ORDER BY data_vencimento ASC");
        $sa->execute([$dados['id']]);
        $acoes_vinculadas = $sa->fetchAll(PDO::FETCH_ASSOC);
    }
} elseif ($tipo === 'nr10') {
    // Painel Elétrico NR10 — buscar pela ação
    $acao_id = intval(str_replace('NR10', '', $codigo));
    $s = $db->prepare("SELECT a.*, u.nome AS unidade_nome, u.codigo AS unidade_codigo FROM acoes a LEFT JOIN unidades u ON u.id=a.unidade_id WHERE a.id=? AND a.norma='NR10'");
    $s->execute([$acao_id]);
    $dados = $s->fetch();

    if ($dados) {
        $sd = $db->prepare("SELECT * FROM documentos WHERE acao_id=? ORDER BY criado_em DESC");
        $sd->execute([$dados['id']]);
        $documentos = $sd->fetchAll(PDO::FETCH_ASSOC);

        $sf = $db->prepare("SELECT * FROM rti_fotos WHERE acao_id=? ORDER BY ordem");
        $sf->execute([$dados['id']]);
        $fotos = $sf->fetchAll(PDO::FETCH_ASSOC);
    }
}

if (!$dados) {
    die('<p style="font-family:Arial;text-align:center;padding:40px;color:red;">Registro não encontrado.</p>');
}

$status_labels = [
    'pendente'     => ['label' => 'Pendente',     'cor' => '#f59e0b'],
    'em_andamento' => ['label' => 'Em Andamento', 'cor' => '#3b82f6'],
    'concluida'    => ['label' => 'Concluída',    'cor' => '#10b981'],
    'atrasada'     => ['label' => 'Atrasada',     'cor' => '#ef4444'],
];
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title><?= sanitizar($tipo === 'nr10' ? $dados['titulo'] : $dados['nome']) ?> | ERP - ActSafe</title>
  <script src="https://cdn.tailwindcss.com"></script>
  <script>
    tailwind.config = {
      theme: { extend: { colors: {
        'actsafe-blue': '#0F4C81', 'actsafe-orange': '#F26419'
      }}}
    }
  </script>
  <script src="https://unpkg.com/lucide@latest/dist/umd/lucide.min.js"></script>
  <style>
    body { font-family: 'Segoe UI', system-ui, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; }
    .card { background:#fff; border-radius:1rem; padding:1.5rem; box-shadow:0 10px 40px rgba(0,0,0,.2); margin-bottom:1.5rem; }
    .badge { display:inline-block; font-size:.75rem; font-weight:700; padding:.25rem .75rem; border-radius:.5rem; }
  </style>
</head>
<body>
<div class="py-6 px-4">
  <div class="max-w-2xl mx-auto">

    <!-- HEADER -->
    <div class="text-center mb-8">
      <div class="inline-block bg-white/20 backdrop-blur-sm rounded-full p-3 mb-4">
        <i data-lucide="<?= $tipo === 'nr10' ? 'zap' : 'cog' ?>" class="w-8 h-8 text-white"></i>
      </div>
      <h1 class="text-2xl font-bold text-white mb-1">ERP - ActSafe</h1>
      <p class="text-white/80 text-sm"><?= $tipo === 'nr10' ? 'NR 10 — Segurança Elétrica' : 'NR 12 — Segurança em Máquinas' ?></p>
    </div>

    <!-- CARD PRINCIPAL -->
    <div class="card">
      <div class="flex items-start justify-between gap-3 mb-4">
        <div>
          <?php if ($tipo === 'nr12'): ?>
            <span class="badge bg-blue-100 text-blue-700 mb-2"><?= sanitizar($dados['cod']) ?></span>
            <h2 class="text-xl font-bold text-gray-900"><?= sanitizar($dados['nome']) ?></h2>
            <?php if ($dados['tag']): ?>
              <p class="text-sm text-gray-500">TAG: <?= sanitizar($dados['tag']) ?></p>
            <?php endif; ?>
          <?php else: ?>
            <span class="badge bg-yellow-100 text-yellow-700 mb-2">NR 10 — Painel Elétrico</span>
            <h2 class="text-xl font-bold text-gray-900"><?= sanitizar($dados['titulo']) ?></h2>
            <?php if ($dados['responsavel']): ?>
              <p class="text-sm text-gray-500">Responsável: <?= sanitizar($dados['responsavel']) ?></p>
            <?php endif; ?>
          <?php endif; ?>
        </div>
        <?php if ($tipo === 'nr10' && isset($dados['status'])): $st = $status_labels[$dados['status']] ?? null; ?>
          <?php if ($st): ?>
          <span class="badge text-white flex-shrink-0" style="background:<?= $st['cor'] ?>"><?= $st['label'] ?></span>
          <?php endif; ?>
        <?php endif; ?>
      </div>

      <div class="grid grid-cols-2 gap-3 text-sm">
        <div class="p-3 bg-gray-50 rounded-lg">
          <p class="text-xs text-gray-400 mb-0.5">Unidade</p>
          <p class="font-semibold text-gray-700"><?= sanitizar($dados['unidade_nome']) ?></p>
          <p class="text-xs text-gray-500"><?= sanitizar($dados['unidade_codigo']) ?></p>
        </div>
        <?php if ($tipo === 'nr12'): ?>
        <div class="p-3 bg-gray-50 rounded-lg">
          <p class="text-xs text-gray-400 mb-0.5">Categoria de Risco</p>
          <p class="font-semibold text-gray-700"><?= sanitizar($dados['cat_risco'] ?: '—') ?></p>
        </div>
        <div class="p-3 bg-gray-50 rounded-lg">
          <p class="text-xs text-gray-400 mb-0.5">Família</p>
          <p class="font-semibold text-gray-700"><?= sanitizar($dados['familia'] ?: '—') ?></p>
        </div>
        <!-- Checklist NR12 -->
        <div class="p-3 bg-gray-50 rounded-lg">
          <p class="text-xs text-gray-400 mb-1">Checklist Adequação</p>
          <?php $checks = ['proj_conceito'=>'Projeto','execucao'=>'Execução','procedimento'=>'Proc.','validacao'=>'Valid.','laudos'=>'Laudos']; ?>
          <div class="flex gap-1 flex-wrap">
            <?php foreach ($checks as $f => $l): ?>
            <span class="text-xs px-1.5 py-0.5 rounded <?= $dados[$f] ? 'bg-green-100 text-green-700' : 'bg-red-50 text-red-400' ?>">
              <?= $dados[$f] ? '✓' : '✗' ?> <?= $l ?>
            </span>
            <?php endforeach; ?>
          </div>
        </div>
        <?php else: ?>
        <div class="p-3 bg-gray-50 rounded-lg">
          <p class="text-xs text-gray-400 mb-0.5">Tipo</p>
          <p class="font-semibold text-gray-700"><?= sanitizar($dados['tipo']) ?></p>
        </div>
        <?php if ($dados['data_vencimento']): ?>
        <div class="p-3 bg-gray-50 rounded-lg col-span-2">
          <p class="text-xs text-gray-400 mb-0.5">Vencimento</p>
          <p class="font-semibold text-gray-700"><?= formatarData($dados['data_vencimento']) ?></p>
        </div>
        <?php endif; ?>
        <?php endif; ?>
      </div>
    </div>

    <!-- FOTOS -->
    <?php if (!empty($fotos)): ?>
    <div class="card">
      <h3 class="font-bold text-gray-900 mb-3 flex items-center gap-2">
        <i data-lucide="camera" class="w-5 h-5 text-blue-600"></i> Fotos (<?= count($fotos) ?>)
      </h3>
      <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
        <?php foreach ($fotos as $f): ?>
        <div class="rounded-lg overflow-hidden border border-gray-200">
          <img src="<?= sanitizar(UPLOAD_URL . $f['arquivo']) ?>" alt="Foto" class="w-full h-56 object-cover">
          <?php if (!empty($f['descricao'])): ?>
          <p class="p-2 text-sm text-gray-600 bg-gray-50"><?= sanitizar($f['descricao']) ?></p>
          <?php endif; ?>
        </div>
        <?php endforeach; ?>
      </div>
    </div>
    <?php endif; ?>

    <!-- DOCUMENTOS -->
    <?php if (!empty($documentos)): ?>
    <div class="card">
      <h3 class="font-bold text-gray-900 mb-3 flex items-center gap-2">
        <i data-lucide="file-text" class="w-5 h-5 text-orange-600"></i> Documentos (<?= count($documentos) ?>)
      </h3>
      <div class="space-y-2">
        <?php foreach ($documentos as $d): ?>
        <a href="<?= sanitizar(UPLOAD_URL . $d['arquivo']) ?>" target="_blank"
           class="flex items-center gap-3 p-3 rounded-lg bg-gray-50 hover:bg-gray-100 transition-colors">
          <i data-lucide="file" class="w-5 h-5 text-gray-400 flex-shrink-0"></i>
          <div class="flex-1 min-w-0">
            <p class="font-semibold text-gray-900 truncate"><?= sanitizar($d['nome']) ?></p>
            <p class="text-xs text-gray-500"><?= ucfirst(str_replace('_', ' ', $d['categoria'])) ?></p>
          </div>
          <i data-lucide="external-link" class="w-4 h-4 text-gray-400 flex-shrink-0"></i>
        </a>
        <?php endforeach; ?>
      </div>
    </div>
    <?php endif; ?>

    <!-- AÇÕES VINCULADAS (apenas NR12) -->
    <?php if ($tipo === 'nr12' && !empty($acoes_vinculadas)): ?>
    <div class="card">
      <h3 class="font-bold text-gray-900 mb-3 flex items-center gap-2">
        <i data-lucide="list-checks" class="w-5 h-5 text-purple-600"></i> Ações de Conformidade (<?= count($acoes_vinculadas) ?>)
      </h3>
      <div class="space-y-2">
        <?php foreach ($acoes_vinculadas as $ac):
          $st = $status_labels[$ac['status']] ?? ['label' => $ac['status'], 'cor' => '#6b7280'];
        ?>
        <div class="flex items-center justify-between p-3 bg-gray-50 rounded-lg border border-gray-200">
          <div class="flex-1 min-w-0">
            <p class="text-sm font-medium text-gray-700"><?= sanitizar($ac['titulo']) ?></p>
            <p class="text-xs text-gray-400"><?= sanitizar($ac['tipo']) ?> • Venc: <?= formatarData($ac['data_vencimento']) ?></p>
          </div>
          <span class="badge text-white ml-2 flex-shrink-0" style="background:<?= $st['cor'] ?>"><?= $st['label'] ?></span>
        </div>
        <?php endforeach; ?>
      </div>
    </div>
    <?php endif; ?>

    <!-- FOOTER -->
    <div class="text-center text-white/60 text-xs pb-6">
      <p>Código: <span class="font-mono font-bold"><?= sanitizar($codigo) ?></span></p>
      <p class="mt-1">ERP - ActSafe © <?= date('Y') ?> — Conformidade Normativa</p>
    </div>

  </div>
</div>
<script>document.addEventListener('DOMContentLoaded', function() { lucide.createIcons(); });</script>
</body>
</html>
