<?php
require_once '../5_config/config.php';
$usuario = verificarAuth();
$db = getDB();
$perfil = $usuario['perfil'];
$msg = '';

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)) {
                $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]);
                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]);
                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) { $db->prepare("DELETE FROM equipamentos WHERE id=?")->execute([$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 -->
  <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>

  <!-- 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>
            <?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 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>
                <?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>

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