<?php
require_once '../5_config/config.php';
$usuario = verificarAuth();
$db = getDB();
$perfil = $usuario['perfil'];
$msg = '';
Auditoria::inicializar($db, $usuario['id'], $usuario['nome'], $usuario['perfil']);

// POST: Upload de fotos
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['acao_form'] ?? '') === 'upload_foto') {
    $equip_id = intval($_POST['equipamento_id'] ?? 0);
    $descricao = limpar($_POST['descricao'] ?? '');

    if ($equip_id && isset($_FILES['foto']) && $_FILES['foto']['error'] === UPLOAD_ERR_OK) {
        $file = $_FILES['foto'];
        $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
        if (in_array($ext, ['jpg','jpeg','png','gif','webp'])) {
            if (!is_dir(UPLOAD_DIR . 'equipamentos/')) mkdir(UPLOAD_DIR . 'equipamentos/', 0755, true);

            $nome_foto = 'eq_' . uniqid() . '.jpg';
            $dest = UPLOAD_DIR . 'equipamentos/' . $nome_foto;
            $src_path = $file['tmp_name'];
            $img_info = @getimagesize($src_path);

            if ($img_info) {
                $src_w = $img_info[0]; $src_h = $img_info[1]; $mime = $img_info['mime'];
                $src_img = match($mime) {
                    'image/jpeg' => imagecreatefromjpeg($src_path),
                    'image/png'  => imagecreatefrompng($src_path),
                    'image/gif'  => imagecreatefromgif($src_path),
                    'image/webp' => imagecreatefromwebp($src_path),
                    default      => null
                };

                if ($src_img) {
                    if (function_exists('exif_read_data') && $mime === 'image/jpeg') {
                        $exif = @exif_read_data($src_path);
                        $ori = $exif['Orientation'] ?? 1;
                        $src_img = match($ori) {
                            3 => imagerotate($src_img, 180, 0),
                            6 => imagerotate($src_img, -90, 0),
                            8 => imagerotate($src_img, 90, 0),
                            default => $src_img
                        };
                        $src_w = imagesx($src_img); $src_h = imagesy($src_img);
                    }

                    $ratio = min(1280/$src_w, 960/$src_h, 1.0);
                    $nw = (int)($src_w*$ratio); $nh = (int)($src_h*$ratio);
                    $dst = imagecreatetruecolor($nw, $nh);
                    imagefill($dst, 0, 0, imagecolorallocate($dst,255,255,255));
                    imagecopyresampled($dst,$src_img,0,0,0,0,$nw,$nh,$src_w,$src_h);
                    imagejpeg($dst, $dest, 82);
                    imagedestroy($src_img); imagedestroy($dst);

                    $db->prepare("INSERT INTO equipamento_fotos (equipamento_id,arquivo,descricao) VALUES (?,?,?)")
                       ->execute([$equip_id,'equipamentos/'.$nome_foto,$descricao]);
                    $foto_id = (int)$db->lastInsertId();
                    Auditoria::criar('equipamento_fotos', $foto_id, ['equipamento_id'=>$equip_id,'arquivo'=>$nome_foto,'descricao'=>$descricao], "Foto adicionada ao equipamento #$equip_id");
                    $msg = 'success:Foto+adicionada+com+sucesso!';
                }
            }
        } else {
            $msg = 'error:Formato+de+imagem+inválido.';
        }
    } else {
        $msg = 'error:Erro+ao+fazer+upload+da+foto.';
    }

    header("Location: nr12.php?msg=" . urlencode($msg));
    exit;
}

// GET: Gerar QR Code para equipamento existente
if (isset($_GET['gerar_qr'])) {
    $equip_id = intval($_GET['gerar_qr']);
    $eq = $db->prepare("SELECT id, cod FROM equipamentos WHERE id=?");
    $eq->execute([$equip_id]);
    $eq_data = $eq->fetch();
    if ($eq_data) {
        $codigo_qr = 'EQ' . str_pad($equip_id, 6, '0', STR_PAD_LEFT);
        $url_qr = APP_URL . '/equipamento_qr.php?codigo=' . $codigo_qr . '&tipo=nr12';
        $db->prepare("INSERT IGNORE INTO equipamento_qrcodes (equipamento_id, codigo_unico, url_publica) VALUES (?,?,?)")
           ->execute([$equip_id, $codigo_qr, $url_qr]);
    }
    header('Location: nr12.php?msg=success:QR+Code+gerado+com+sucesso!'); exit;
}

// GET: Remover foto
if ($_SERVER['REQUEST_METHOD'] === 'GET' && ($_GET['acao_form'] ?? '') === 'remover_foto') {
    $foto_id = intval($_GET['foto_id'] ?? 0);
    $s = $db->prepare("SELECT arquivo FROM equipamento_fotos WHERE id=?");
    $s->execute([$foto_id]);
    $foto = $s->fetch();
    if ($foto) {
        @unlink(UPLOAD_DIR . $foto['arquivo']);
        $db->prepare("DELETE FROM equipamento_fotos WHERE id=?")->execute([$foto_id]);
        Auditoria::deletar('equipamento_fotos', $foto_id, $foto, "Foto removida do equipamento #$equip_id");
        $msg = 'success:Foto+removida+com+sucesso!';
    }
    header("Location: nr12.php?msg=" . urlencode($msg));
    exit;
}

// POST: Upload de documento NR 12
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['acao_form'] ?? '') === 'upload_doc') {
    $equip_id = intval($_POST['equipamento_id'] ?? 0);
    $unidade_id = intval($_POST['unidade_id'] ?? 0);
    $categoria = limpar($_POST['categoria'] ?? '');
    $nome = limpar($_POST['nome'] ?? '');
    $descricao = limpar($_POST['descricao'] ?? '');
    $data_vencimento = $_POST['data_vencimento'] ?: null;

    if ($categoria && $nome && isset($_FILES['arquivo']) && $_FILES['arquivo']['error'] === UPLOAD_ERR_OK) {
        $file = $_FILES['arquivo'];
        $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
        
        if (in_array($ext, ['pdf','doc','docx','xls','xlsx','jpg','jpeg','png','gif'])) {
            if (!is_dir(UPLOAD_DIR . 'documentos/')) mkdir(UPLOAD_DIR . 'documentos/', 0755, true);

            $nome_arquivo = 'doc_' . uniqid() . '.' . $ext;
            $dest = UPLOAD_DIR . 'documentos/' . $nome_arquivo;

            if (move_uploaded_file($file['tmp_name'], $dest)) {
                $tamanho_kb = ceil(filesize($dest) / 1024);
                $mime_type = mime_content_type($dest) ?: 'application/octet-stream';

                $db->prepare("INSERT INTO documentos (unidade_id,equipamento_id,categoria,nome,descricao,arquivo,mime_type,tamanho_kb,data_vencimento,enviado_por) VALUES (?,?,?,?,?,?,?,?,?,?)")
                   ->execute([$unidade_id,$equip_id,$categoria,$nome,$descricao,'documentos/'.$nome_arquivo,$mime_type,$tamanho_kb,$data_vencimento,$usuario['id']]);
                $doc_novo_id = (int)$db->lastInsertId();
                Auditoria::criar('documentos', $doc_novo_id, ['nome'=>$nome,'categoria'=>$categoria,'equipamento_id'=>$equip_id], "Documento NR12 enviado: $nome");
                $msg = 'success:Documento+enviado+com+sucesso!';
            } else {
                $msg = 'error:Erro+ao+salvar+o+arquivo.';
            }
        } else {
            $msg = 'error:Formato+não+permitido.';
        }
    } else {
        $msg = 'error:Preencha+os+campos+obrigatórios.';
    }

    header("Location: nr12.php?msg=" . urlencode($msg));
    exit;
}

// GET: Remover documento
if ($_SERVER['REQUEST_METHOD'] === 'GET' && ($_GET['acao_form'] ?? '') === 'remover_doc') {
    $doc_id = intval($_GET['doc_id'] ?? 0);
    $s = $db->prepare("SELECT arquivo FROM documentos WHERE id=?");
    $s->execute([$doc_id]);
    $doc = $s->fetch();
    if ($doc) {
        @unlink(UPLOAD_DIR . $doc['arquivo']);
        $db->prepare("DELETE FROM documentos WHERE id=?")->execute([$doc_id]);
        Auditoria::deletar('documentos', $doc_id, $doc, "Documento NR12 removido: " . ($doc['arquivo'] ?? 'ID '.$doc_id));
        $msg = 'success:Documento+removido+com+sucesso!';
    }
    header("Location: nr12.php?msg=" . urlencode($msg));
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $acao_form = $_POST['acao_form'] ?? '';
    if ($acao_form === 'salvar' && temPermissao('criar', $perfil)) {
        $id      = intval($_POST['id'] ?? 0);
        $uid     = intval($_POST['unidade_id'] ?? 0);
        // Código NÃO vem do formulário — é gerado automaticamente
        $tag     = limpar($_POST['tag'] ?? '');
        $nome    = limpar($_POST['nome'] ?? '');
        $familia = limpar($_POST['familia'] ?? '');
        $cat     = limpar($_POST['cat_risco'] ?? '');
        $proj    = isset($_POST['proj_conceito']) ? 1 : 0;
        $exec    = isset($_POST['execucao']) ? 1 : 0;
        $proc    = isset($_POST['procedimento']) ? 1 : 0;
        $valid   = isset($_POST['validacao']) ? 1 : 0;
        $laudos  = isset($_POST['laudos']) ? 1 : 0;
        $d_ini   = $_POST['data_inicio'] ?: null;
        $d_prev  = $_POST['data_prev_conclusao'] ?: null;
        $obs     = limpar($_POST['observacoes'] ?? '');

        if ($uid && $nome) {
            if ($id > 0 && temPermissao('editar', $perfil)) {
                $stmt_antes = $db->prepare("SELECT nome, tag, familia, cat_risco FROM equipamentos WHERE id=?");
                $stmt_antes->execute([$id]); $dados_antes = $stmt_antes->fetch() ?: [];
                $db->prepare("UPDATE equipamentos SET unidade_id=?,tag=?,nome=?,familia=?,cat_risco=?,proj_conceito=?,execucao=?,procedimento=?,validacao=?,laudos=?,data_inicio=?,data_prev_conclusao=?,observacoes=? WHERE id=?")
                   ->execute([$uid,$tag,$nome,$familia,$cat,$proj,$exec,$proc,$valid,$laudos,$d_ini,$d_prev,$obs,$id]);
                Auditoria::atualizar('equipamentos', $id, $dados_antes, ['nome'=>$nome,'tag'=>$tag,'familia'=>$familia,'cat_risco'=>$cat], "NR12 equipamento atualizado: $nome");
                header('Location: nr12.php?msg=success:Equipamento+atualizado!'); exit;
            } else {
                $db->prepare("INSERT INTO equipamentos (unidade_id,cod,tag,nome,familia,cat_risco,proj_conceito,execucao,procedimento,validacao,laudos,data_inicio,data_prev_conclusao,observacoes) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
                   ->execute([$uid,'TEMP',$tag,$nome,$familia,$cat,$proj,$exec,$proc,$valid,$laudos,$d_ini,$d_prev,$obs]);
                $novo_id = $db->lastInsertId();
                $cod_auto = 'EQ-' . str_pad($novo_id, 4, '0', STR_PAD_LEFT);
                $db->prepare("UPDATE equipamentos SET cod=? WHERE id=?")->execute([$cod_auto, $novo_id]);
                // Gerar QR Code automaticamente
                $codigo_qr = 'EQ' . str_pad($novo_id, 6, '0', STR_PAD_LEFT);
                $url_qr = APP_URL . '/equipamento_qr.php?codigo=' . $codigo_qr . '&tipo=nr12';
                $db->prepare("INSERT IGNORE INTO equipamento_qrcodes (equipamento_id, codigo_unico, url_publica) VALUES (?,?,?)")
                   ->execute([$novo_id, $codigo_qr, $url_qr]);
                Auditoria::criar('equipamentos', (int)$novo_id, ['nome'=>$nome,'tag'=>$tag,'familia'=>$familia,'cat_risco'=>$cat,'cod'=>$cod_auto], "NR12 equipamento criado: $nome ($cod_auto)");
                header('Location: nr12.php?msg=success:Equipamento+cadastrado!+Código:+' . urlencode($cod_auto)); exit;
            }
        } else {
            header('Location: nr12.php?msg=error:Preencha+os+campos+obrigatórios.'); exit;
        }
    } elseif ($acao_form === 'excluir' && temPermissao('excluir', $perfil)) {
        $id = intval($_POST['id'] ?? 0);
        if ($id > 0) {
            $stmt_del = $db->prepare("SELECT nome, tag FROM equipamentos WHERE id=?");
            $stmt_del->execute([$id]); $reg_del = $stmt_del->fetch() ?: [];
            $db->prepare("DELETE FROM equipamentos WHERE id=?")->execute([$id]);
            Auditoria::deletar('equipamentos', $id, $reg_del, "NR12 equipamento excluído: " . ($reg_del['nome'] ?? 'ID '.$id));
        }
        header('Location: nr12.php?msg=success:Equipamento+removido!'); exit;
    }
}

// Ler mensagem da URL (padrão PRG)
$msg = $_GET['msg'] ?? '';

$filtro_unidade = intval($_GET['unidade_id'] ?? 0);
$unidades = $db->query("SELECT id,codigo,nome FROM unidades WHERE ativo=1 ORDER BY nome")->fetchAll();

$where = ['1=1']; $params = [];
if ($filtro_unidade) { $where[] = 'e.unidade_id=?'; $params[] = $filtro_unidade; }
$sql = "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 " . implode(' AND ', $where) . " ORDER BY u.nome, e.tag";
$stmt = $db->prepare($sql); $stmt->execute($params);
$equipamentos = $stmt->fetchAll();

$editando = null;
if (isset($_GET['editar'])) {
    $s = $db->prepare("SELECT * FROM equipamentos WHERE id=?");
    $s->execute([intval($_GET['editar'])]);
    $editando = $s->fetch();
}

$pagina_titulo = 'NR 12 — Máquinas';
require_once '../1_frontend/layout.php';
?>

<div class="space-y-5">
  <div class="flex items-center justify-between flex-wrap gap-3">
    <div>
      <h1 class="text-2xl font-bold text-actsafe-text flex items-center gap-2">
        <i data-lucide="cog" class="w-6 h-6 text-orange-500"></i> NR 12 — Máquinas e Equipamentos
      </h1>
      <p class="text-sm text-gray-500 mt-0.5">Cadastro e checklist de adequação de equipamentos</p>
    </div>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="nr12.php?novo=1" class="btn-primary"><i data-lucide="plus" class="w-4 h-4"></i> Novo Equipamento</a>
    <?php endif; ?>
  </div>

  <?php if ($msg): [$tipo_msg,$texto_msg] = explode(':', $msg, 2); ?>
  <div class="flex items-center gap-2 px-4 py-3 rounded-lg text-sm font-medium
    <?= $tipo_msg==='success' ? 'bg-green-50 border border-green-200 text-green-700' : 'bg-red-50 border border-red-200 text-red-700' ?>">
    <i data-lucide="<?= $tipo_msg==='success' ? 'check-circle' : 'alert-circle' ?>" class="w-4 h-4"></i>
    <?= sanitizar($texto_msg) ?>
  </div>
  <?php endif; ?>

  <!-- Formulário -->
  <?php if (isset($_GET['novo']) || $editando): ?>
  <div class="card border-l-4 border-orange-400">
    <h2 class="font-semibold text-actsafe-text mb-4 flex items-center gap-2">
      <i data-lucide="<?= $editando ? 'pencil' : 'plus-circle' ?>" class="w-4 h-4 text-orange-500"></i>
      <?= $editando ? 'Editar Equipamento' : 'Novo Equipamento NR 12' ?>
    </h2>
    <form method="POST" action="nr12.php">
      <input type="hidden" name="acao_form" value="salvar">
      <input type="hidden" name="id" value="<?= $editando['id'] ?? 0 ?>">
      <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">

        <!-- Código: exibido somente leitura na edição, gerado automaticamente no cadastro -->
        <div>
          <label class="form-label">Código do Equipamento</label>
          <?php if ($editando): ?>
            <!-- Na edição: exibe o código atual, somente leitura -->
            <div class="form-input bg-gray-100 text-gray-500 cursor-not-allowed flex items-center gap-2">
              <i data-lucide="hash" class="w-4 h-4 text-gray-400"></i>
              <span class="font-bold text-actsafe-blue"><?= sanitizar($editando['cod']) ?></span>
              <span class="text-xs text-gray-400 ml-1">(gerado automaticamente)</span>
            </div>
          <?php else: ?>
            <!-- No cadastro: informa que será gerado automaticamente -->
            <div class="form-input bg-gray-50 text-gray-400 cursor-not-allowed flex items-center gap-2 border-dashed">
              <i data-lucide="hash" class="w-4 h-4 text-gray-300"></i>
              <span class="italic text-sm">Gerado automaticamente (EQ-0001, EQ-0002...)</span>
            </div>
          <?php endif; ?>
        </div>

        <div>
          <label class="form-label">Unidade Fabril *</label>
          <select name="unidade_id" class="form-input" required>
            <option value="">Selecione...</option>
            <?php foreach ($unidades as $u): ?>
            <option value="<?= $u['id'] ?>" <?= ($editando['unidade_id'] ?? 0) == $u['id'] ? 'selected' : '' ?>><?= sanitizar($u['codigo']) ?> — <?= sanitizar($u['nome']) ?></option>
            <?php endforeach; ?>
          </select>
        </div>

        <div>
          <label class="form-label">TAG</label>
          <input type="text" name="tag" class="form-input" placeholder="ex: AGLOM-01" value="<?= sanitizar($editando['tag'] ?? '') ?>">
        </div>

        <div class="sm:col-span-2">
          <label class="form-label">Nome do Equipamento *</label>
          <input type="text" name="nome" class="form-input" placeholder="ex: Aglomerador de Partículas" value="<?= sanitizar($editando['nome'] ?? '') ?>" required>
        </div>

        <div>
          <label class="form-label">Família</label>
          <input type="text" name="familia" class="form-input" placeholder="ex: Prensas Hidráulicas" value="<?= sanitizar($editando['familia'] ?? '') ?>">
        </div>

        <div>
          <label class="form-label">Categoria de Risco (NR 12)</label>
          <select name="cat_risco" class="form-input">
            <option value="">Selecione...</option>
            <?php foreach (['Cat 1','Cat 2','Cat 3','Cat 4'] as $c): ?>
            <option value="<?= $c ?>" <?= ($editando['cat_risco'] ?? '') === $c ? 'selected' : '' ?>><?= $c ?></option>
            <?php endforeach; ?>
          </select>
        </div>

        <div>
          <label class="form-label">Data de Início</label>
          <input type="date" name="data_inicio" class="form-input" value="<?= $editando['data_inicio'] ?? '' ?>">
        </div>

        <div>
          <label class="form-label">Previsão de Conclusão</label>
          <input type="date" name="data_prev_conclusao" class="form-input" value="<?= $editando['data_prev_conclusao'] ?? '' ?>">
        </div>

        <div class="sm:col-span-3">
          <label class="form-label">Observações</label>
          <textarea name="observacoes" class="form-input" rows="2"><?= sanitizar($editando['observacoes'] ?? '') ?></textarea>
        </div>
      </div>

      <!-- Checklist de Adequação -->
      <div class="mt-4 p-4 bg-orange-50 rounded-xl border border-orange-200">
        <p class="text-sm font-semibold text-orange-700 mb-3 flex items-center gap-2">
          <i data-lucide="check-square" class="w-4 h-4"></i> Checklist de Adequação NR 12
        </p>
        <div class="grid grid-cols-2 sm:grid-cols-5 gap-3">
          <?php
          $checks = [
            'proj_conceito' => 'Projeto / Conceito',
            'execucao'      => 'Execução',
            'procedimento'  => 'Procedimento',
            'validacao'     => 'Validação',
            'laudos'        => 'Laudos',
          ];
          foreach ($checks as $field => $label): ?>
          <label class="flex flex-col items-center gap-2 bg-white rounded-lg p-3 border border-orange-200 cursor-pointer hover:border-orange-400 transition-colors">
            <input type="checkbox" name="<?= $field ?>" value="1" <?= ($editando[$field] ?? 0) ? 'checked' : '' ?>
                   class="w-5 h-5 accent-orange-500">
            <span class="text-xs text-center text-gray-600"><?= $label ?></span>
          </label>
          <?php endforeach; ?>
        </div>
      </div>

      <div class="flex gap-2 mt-4">
        <button type="submit" class="btn-primary"><i data-lucide="save" class="w-4 h-4"></i> Salvar</button>
        <a href="nr12.php" class="btn-outline">Cancelar</a>
      </div>
    </form>
  </div>
  <?php endif; ?>

  <!-- Filtro por unidade + Botões de Importar/Exportar (SEMPRE VISÍVEIS) -->
  <div class="flex gap-2 flex-wrap items-center justify-between">
    <form method="GET" action="nr12.php" class="flex gap-2">
      <select name="unidade_id" class="form-input w-auto">
        <option value="">Todas as unidades</option>
        <?php foreach ($unidades as $u): ?>
        <option value="<?= $u['id'] ?>" <?= $filtro_unidade == $u['id'] ? 'selected' : '' ?>><?= sanitizar($u['codigo']) ?> — <?= sanitizar($u['nome']) ?></option>
        <?php endforeach; ?>
      </select>
      <button type="submit" class="btn-primary"><i data-lucide="filter" class="w-4 h-4"></i> Filtrar</button>
      <a href="nr12.php" class="btn-outline">Limpar</a>
    </form>
    
    <!-- Botões de Importar/Exportar (sempre visíveis, mesmo sem equipamentos) -->
    <div class="flex gap-2">
      <form method="POST" action="nr12_export.php" class="inline">
        <input type="hidden" name="unidade_id" value="<?= $filtro_unidade ?>">
        <button type="submit" class="btn-outline text-sm inline-flex items-center gap-2">
          <i data-lucide="download" class="w-4 h-4"></i> Exportar Excel
        </button>
      </form>
      <?php if (temPermissao('criar', $perfil)): ?>
      <button onclick="abrirImportarExcel()" class="btn-outline text-sm inline-flex items-center gap-2">
        <i data-lucide="upload" class="w-4 h-4"></i> Importar Excel
      </button>
      <?php endif; ?>
      <form method="POST" action="relatorio_filtros_avancados.php" target="_blank" class="inline">
        <input type="hidden" name="unidade_id" value="<?= $filtro_unidade ?>">
        <button type="submit" class="btn-outline text-sm inline-flex items-center gap-2">
          <i data-lucide="file-text" class="w-4 h-4"></i> Gerar Relatório PDF
        </button>
      </form>
    </div>
  </div>

  <!-- Tabela -->
  <?php if (empty($equipamentos)): ?>
  <div class="card border border-dashed border-gray-300 text-center py-14">
    <i data-lucide="cog" class="w-10 h-10 text-gray-300 mx-auto mb-3"></i>
    <p class="text-gray-500 text-sm">Nenhum equipamento cadastrado.</p>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="nr12.php?novo=1" class="btn-primary mt-3 inline-flex"><i data-lucide="plus" class="w-4 h-4"></i> Cadastrar primeiro</a>
    <?php endif; ?>
  </div>
  <?php else: ?>
  <div class="card p-0 overflow-hidden">
    <div class="overflow-x-auto">
      <table class="w-full text-sm">
        <thead class="bg-gray-50 border-b border-gray-200">
          <tr>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Código / TAG</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Equipamento</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden sm:table-cell">Unidade</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden md:table-cell">Cat. Risco</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Checklist</th>
            <th class="text-center px-4 py-3 font-semibold text-gray-600">QR Code</th>
            <?php if (temPermissao('editar', $perfil)): ?>
            <th class="text-center px-4 py-3 font-semibold text-gray-600">Ações</th>
            <?php endif; ?>
          </tr>
        </thead>
        <tbody class="divide-y divide-gray-100">
          <?php foreach ($equipamentos as $e):
            $check_total = 5;
            $check_ok = $e['proj_conceito'] + $e['execucao'] + $e['procedimento'] + $e['validacao'] + $e['laudos'];
            $check_pct = round(($check_ok / $check_total) * 100);
          ?>
          <tr class="table-row">
            <td class="px-4 py-3">
              <p class="font-bold text-actsafe-blue text-xs"><?= sanitizar($e['cod']) ?></p>
              <?php if ($e['tag']): ?><p class="text-xs text-gray-400"><?= sanitizar($e['tag']) ?></p><?php endif; ?>
            </td>
            <td class="px-4 py-3">
              <p class="font-medium text-actsafe-text"><?= sanitizar($e['nome']) ?></p>
              <?php if ($e['familia']): ?><p class="text-xs text-gray-400"><?= sanitizar($e['familia']) ?></p><?php endif; ?>
            </td>
            <td class="px-4 py-3 hidden sm:table-cell">
              <span class="bg-actsafe-blue/10 text-actsafe-blue text-xs font-bold px-2 py-0.5 rounded-md"><?= sanitizar($e['unidade_codigo']) ?></span>
            </td>
            <td class="px-4 py-3 text-gray-500 hidden md:table-cell"><?= sanitizar($e['cat_risco'] ?: '—') ?></td>
            <td class="px-4 py-3">
              <div class="flex items-center gap-2">
                <div class="w-16 bg-gray-100 rounded-full h-1.5">
                  <div class="h-1.5 rounded-full <?= $check_pct >= 80 ? 'bg-green-500' : ($check_pct >= 40 ? 'bg-yellow-400' : 'bg-red-400') ?>"
                       style="width:<?= $check_pct ?>%"></div>
                </div>
                <span class="text-xs text-gray-500"><?= $check_ok ?>/<?= $check_total ?></span>
              </div>
            </td>
            <?php
              // Buscar QR Code do equipamento
              $stmt_qr = $db->prepare("SELECT codigo_unico, url_publica FROM equipamento_qrcodes WHERE equipamento_id=?");
              $stmt_qr->execute([$e['id']]);
              $qr_data = $stmt_qr->fetch();
            ?>
            <td class="px-4 py-3 text-center">
              <?php if ($qr_data): ?>
                <button onclick="mostrarQR('<?= sanitizar($qr_data['url_publica']) ?>', '<?= sanitizar($e['nome']) ?>', '<?= sanitizar($qr_data['codigo_unico']) ?>')" 
                        class="inline-flex items-center gap-1 text-xs bg-gray-100 hover:bg-gray-200 text-gray-700 px-2 py-1 rounded" title="Ver QR Code">
                  <i data-lucide="qr-code" class="w-3.5 h-3.5"></i> QR
                </button>
              <?php else: ?>
                <a href="nr12.php?gerar_qr=<?= $e['id'] ?>" class="text-xs text-blue-500 hover:underline">Gerar</a>
              <?php endif; ?>
            </td>
            <?php if (temPermissao('editar', $perfil)): ?>
            <td class="px-4 py-3 text-center">
              <div class="flex items-center justify-center gap-2">
                <a href="nr12.php?editar=<?= $e['id'] ?>" class="text-actsafe-blue hover:text-actsafe-dark" title="Editar">
                  <i data-lucide="pencil" class="w-4 h-4"></i>
                </a>
                <button onclick="abrirDetalhesEquipamento(<?= $e['id'] ?>)" class="text-blue-500 hover:text-blue-700" title="Fotos e Documentos">
                  <i data-lucide="image" class="w-4 h-4"></i>
                </button>
                <?php if (temPermissao('excluir', $perfil)): ?>
                <form method="POST" action="nr12.php" onsubmit="return confirmarExclusao(this)" class="inline">
                  <input type="hidden" name="acao_form" value="excluir">
                  <input type="hidden" name="id" value="<?= $e['id'] ?>">
                  <button type="submit" class="text-red-400 hover:text-red-600" title="Excluir">
                    <i data-lucide="trash-2" class="w-4 h-4"></i>
                  </button>
                </form>
                <?php endif; ?>
              </div>
            </td>
            <?php endif; ?>
          </tr>
          <?php endforeach; ?>
        </tbody>
      </table>
    </div>
    <div class="px-4 py-2 bg-gray-50 border-t border-gray-100 text-xs text-gray-500">
      <?= count($equipamentos) ?> equipamento(s) encontrado(s)
    </div>
  </div>
  <?php endif; ?>
</div>

<!-- MODAL: QR CODE -->
<div id="modal-qrcode" class="hidden fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4">
  <div class="bg-white rounded-xl max-w-sm w-full p-6 text-center">
    <div class="flex items-center justify-between mb-4">
      <h2 class="text-lg font-bold text-actsafe-text" id="qr-titulo">QR Code</h2>
      <button onclick="fecharQR()" class="text-gray-400 hover:text-gray-600">
        <i data-lucide="x" class="w-5 h-5"></i>
      </button>
    </div>
    <div id="qrcode-container" class="flex justify-center mb-4"></div>
    <p class="text-xs text-gray-500 mb-1">Código: <span id="qr-codigo" class="font-mono font-bold"></span></p>
    <p class="text-xs text-gray-400 break-all" id="qr-url"></p>
    <div class="flex gap-2 mt-4 justify-center">
      <button onclick="imprimirQR()" class="btn-primary text-sm">
        <i data-lucide="printer" class="w-4 h-4"></i> Imprimir
      </button>
      <button onclick="fecharQR()" class="btn-outline text-sm">Fechar</button>
    </div>
  </div>
</div>

<!-- MODAL: DETALHES DO EQUIPAMENTO (FOTOS E DOCUMENTOS) -->
<div id="modal-detalhes" class="hidden fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4">
  <div class="bg-white rounded-xl max-w-3xl w-full max-h-[90vh] overflow-y-auto">
    <div class="sticky top-0 bg-white border-b border-gray-200 px-6 py-4 flex items-center justify-between">
      <h2 class="text-lg font-bold text-actsafe-text" id="modal-titulo">Detalhes do Equipamento</h2>
      <button onclick="fecharDetalhesEquipamento()" class="text-gray-400 hover:text-gray-600">
        <i data-lucide="x" class="w-5 h-5"></i>
      </button>
    </div>

    <div class="p-6 space-y-6">
      <!-- FOTOS -->
      <div>
        <h3 class="font-semibold text-actsafe-text mb-3 flex items-center gap-2">
          <i data-lucide="camera" class="w-4 h-4 text-blue-500"></i> Fotos do Equipamento
        </h3>
        <div id="fotos-container" class="space-y-3"></div>
        <form method="POST" enctype="multipart/form-data" class="mt-3 p-3 bg-gray-50 rounded-lg">
          <input type="hidden" name="acao_form" value="upload_foto">
          <input type="hidden" name="equipamento_id" id="form-equip-id">
          <div class="flex gap-2">
            <input type="file" name="foto" accept="image/*" capture="environment" class="form-input flex-1" required>
            <button type="submit" class="btn-primary"><i data-lucide="upload" class="w-4 h-4"></i> Upload</button>
          </div>
        </form>
      </div>

      <!-- DOCUMENTOS NR 12 -->
      <div>
        <h3 class="font-semibold text-actsafe-text mb-3 flex items-center gap-2">
          <i data-lucide="file-text" class="w-4 h-4 text-orange-500"></i> Documentos NR 12
        </h3>
        <div id="docs-container" class="space-y-2"></div>
        <form method="POST" enctype="multipart/form-data" class="mt-3 p-3 bg-gray-50 rounded-lg">
          <input type="hidden" name="acao_form" value="upload_doc">
          <input type="hidden" name="equipamento_id" id="form-equip-id-doc">
          <input type="hidden" name="unidade_id" id="form-unidade-id">
          <div class="grid grid-cols-2 gap-2 mb-2">
            <select name="categoria" class="form-input" required>
              <option value="">Categoria...</option>
              <option value="laudo_nr12">Laudo NR 12</option>
              <option value="procedimento">Procedimento</option>
              <option value="diagrama_unifilar">Diagrama Unifilar</option>
              <option value="outro">Outro</option>
            </select>
            <input type="text" name="nome" class="form-input" placeholder="Nome do documento" required>
          </div>
          <div class="flex gap-2">
            <input type="file" name="arquivo" class="form-input flex-1" accept=".pdf,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png" required>
            <button type="submit" class="btn-primary"><i data-lucide="upload" class="w-4 h-4"></i> Upload</button>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>

<!-- MODAL: IMPORTAR EXCEL -->
<div id="modal-importar-excel" class="hidden fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4">
  <div class="bg-white rounded-xl max-w-lg w-full p-6">
    <div class="flex items-center justify-between mb-4">
      <h2 class="text-lg font-bold text-actsafe-text flex items-center gap-2">
        <i data-lucide="upload" class="w-5 h-5 text-blue-500"></i> Importar Equipamentos
      </h2>
      <button onclick="fecharImportarExcel()" class="text-gray-400 hover:text-gray-600">
        <i data-lucide="x" class="w-5 h-5"></i>
      </button>
    </div>

    <form method="POST" action="nr12_import.php" enctype="multipart/form-data" onsubmit="return validarImportacao(this)">
      <div class="space-y-4">
        <div>
          <label class="form-label">Unidade Destino *</label>
          <select name="unidade_id" class="form-input" required>
            <option value="">Selecione...</option>
            <?php foreach ($unidades as $u): ?>
            <option value="<?= $u['id'] ?>" <?= $filtro_unidade == $u['id'] ? 'selected' : '' ?>>
              <?= sanitizar($u['codigo']) ?> — <?= sanitizar($u['nome']) ?>
            </option>
            <?php endforeach; ?>
          </select>
        </div>

        <div>
          <label class="form-label">Arquivo CSV ou XLSX *</label>
          <input type="file" name="arquivo_excel" accept=".csv,.xlsx" class="form-input" required>
          <p class="text-xs text-gray-500 mt-1">Máximo 5 MB. Formato: CSV ou XLSX</p>
        </div>

        <div>
          <label class="form-label">Ao encontrar equipamento existente:</label>
          <div class="space-y-2">
            <label class="flex items-center gap-2">
              <input type="radio" name="acao_duplicata" value="pular" checked class="w-4 h-4">
              <span class="text-sm">Pular (não atualizar)</span>
            </label>
            <label class="flex items-center gap-2">
              <input type="radio" name="acao_duplicata" value="atualizar" class="w-4 h-4">
              <span class="text-sm">Atualizar dados existentes</span>
            </label>
          </div>
        </div>

        <div class="p-3 bg-blue-50 border border-blue-200 rounded-lg text-xs text-blue-700">
          <p class="font-semibold mb-1">💡 Dica:</p>
          <p>Exporte a planilha atual, edite-a no Excel e importe novamente.</p>
        </div>
      </div>

      <div class="flex gap-2 mt-6">
        <button type="submit" class="btn-primary flex-1 inline-flex items-center justify-center gap-2">
          <i data-lucide="upload" class="w-4 h-4"></i> Importar
        </button>
        <button type="button" onclick="fecharImportarExcel()" class="btn-outline flex-1">
          Cancelar
        </button>
      </div>
    </form>
  </div>
</div>

<!-- Biblioteca QR Code -->
<script src="https://cdn.jsdelivr.net/npm/qrcodejs@1.0.0/qrcode.min.js"></script>
<script>
let qrInstance = null;

function mostrarQR(url, nome, codigo) {
  document.getElementById('qr-titulo').textContent = nome;
  document.getElementById('qr-codigo').textContent = codigo;
  document.getElementById('qr-url').textContent = url;
  const container = document.getElementById('qrcode-container');
  container.innerHTML = '';
  qrInstance = new QRCode(container, {
    text: url,
    width: 200,
    height: 200,
    colorDark: '#0F4C81',
    colorLight: '#ffffff',
    correctLevel: QRCode.CorrectLevel.H
  });
  document.getElementById('modal-qrcode').classList.remove('hidden');
  lucide.createIcons();
}

function fecharQR() {
  document.getElementById('modal-qrcode').classList.add('hidden');
  if (qrInstance) qrInstance = null;
}

function imprimirQR() {
  const canvas = document.querySelector('#qrcode-container canvas');
  if (!canvas) return;
  const link = document.createElement('a');
  link.href = canvas.toDataURL();
  link.download = 'qrcode_' + document.getElementById('qr-codigo').textContent + '.png';
  link.click();
}

function confirmarExclusao(form) {
  return confirm('Tem certeza que deseja excluir este equipamento?');
}

function abrirDetalhesEquipamento(equipId) {
  fetch('nr12_api.php?equipamento_id=' + equipId)
    .then(r => r.json())
    .then(data => {
      document.getElementById('modal-titulo').textContent = 'Detalhes: ' + data.equipamento.nome;
      document.getElementById('form-equip-id').value = equipId;
      document.getElementById('form-equip-id-doc').value = equipId;
      document.getElementById('form-unidade-id').value = data.equipamento.unidade_id;

      // Renderizar fotos
      let fotosHtml = '';
      if (data.fotos.length === 0) {
        fotosHtml = '<p class="text-sm text-gray-500 italic">Nenhuma foto adicionada</p>';
      } else {
        fotosHtml = data.fotos.map(f => `
          <div class="flex items-center justify-between p-2 bg-gray-50 rounded border border-gray-200">
            <div class="flex items-center gap-2 flex-1 min-w-0">
              <img src="${f.url}" alt="Foto" class="w-12 h-12 object-cover rounded">
              <div class="flex-1 min-w-0">
                <p class="text-sm font-medium text-gray-700 truncate">${f.descricao || 'Foto'}</p>
              </div>
            </div>
            <a href="nr12.php?acao_form=remover_foto&foto_id=${f.id}" onclick="return confirm('Remover?')" class="text-red-500 hover:text-red-700">
              <i data-lucide="trash-2" class="w-4 h-4"></i>
            </a>
          </div>
        `).join('');
      }
      document.getElementById('fotos-container').innerHTML = fotosHtml;

      // Renderizar documentos
      let docsHtml = '';
      if (data.documentos.length === 0) {
        docsHtml = '<p class="text-sm text-gray-500 italic">Nenhum documento adicionado</p>';
      } else {
        docsHtml = data.documentos.map(d => `
          <div class="flex items-center justify-between p-2 bg-gray-50 rounded border border-gray-200">
            <div class="flex-1 min-w-0">
              <p class="text-sm font-medium text-gray-700">${d.nome}</p>
              <p class="text-xs text-gray-500">${d.categoria} • ${d.tamanho_kb} KB</p>
            </div>
            <div class="flex gap-1 flex-shrink-0">
              <a href="${d.url}" target="_blank" class="text-blue-500 hover:text-blue-700" title="Download">
                <i data-lucide="download" class="w-4 h-4"></i>
              </a>
              <a href="nr12.php?acao_form=remover_doc&doc_id=${d.id}" onclick="return confirm('Remover?')" class="text-red-500 hover:text-red-700">
                <i data-lucide="trash-2" class="w-4 h-4"></i>
              </a>
            </div>
          </div>
        `).join('');
      }
      document.getElementById('docs-container').innerHTML = docsHtml;
      lucide.createIcons();
      document.getElementById('modal-detalhes').classList.remove('hidden');
    })
    .catch(e => alert('Erro ao carregar detalhes: ' + e.message));
}

function fecharDetalhesEquipamento() {
  document.getElementById('modal-detalhes').classList.add('hidden');
}

function abrirImportarExcel() {
  document.getElementById('modal-importar-excel').classList.remove('hidden');
  lucide.createIcons();
}

function fecharImportarExcel() {
  document.getElementById('modal-importar-excel').classList.add('hidden');
}

function validarImportacao(form) {
  const arquivo = form.querySelector('input[name="arquivo_excel"]');
  const unidade = form.querySelector('select[name="unidade_id"]');
  
  if (!unidade.value) {
    alert('Selecione uma unidade');
    return false;
  }
  
  if (!arquivo.files.length) {
    alert('Selecione um arquivo');
    return false;
  }
  
  const file = arquivo.files[0];
  const ext = file.name.split('.').pop().toLowerCase();
  
  if (ext !== 'csv' && ext !== 'xlsx') {
    alert('Arquivo deve ser CSV ou XLSX');
    return false;
  }
  
  if (file.size > 5 * 1024 * 1024) {
    alert('Arquivo muito grande (máximo 5 MB)');
    return false;
  }
  
  return true;
}
</script>

<?php require_once '../1_frontend/layout_footer.php'; ?>
