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

// POST: Criar / Editar / Excluir
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $acao_form = $_POST['acao_form'] ?? '';

    if ($acao_form === 'salvar' && temPermissao('criar', $perfil)) {
        $id          = intval($_POST['id'] ?? 0);
        $unidade_id  = intval($_POST['unidade_id'] ?? 0);
        $tipo        = limpar($_POST['tipo'] ?? '');
        $titulo      = limpar($_POST['titulo'] ?? '');
        $descricao   = limpar($_POST['descricao'] ?? '');
        $responsavel = limpar($_POST['responsavel'] ?? '');
        $status      = limpar($_POST['status'] ?? 'pendente');
        $data_inicio = $_POST['data_inicio'] ?: null;
        $data_venc   = $_POST['data_vencimento'] ?: null;
        $recorrente  = isset($_POST['recorrente']) ? 1 : 0;
        $periodicidade = intval($_POST['periodicidade_meses'] ?? 0) ?: null;

        if ($unidade_id && $tipo && $titulo) {
            if ($id > 0 && temPermissao('editar', $perfil)) {
                $db->prepare("UPDATE acoes SET unidade_id=?,tipo=?,titulo=?,descricao=?,responsavel=?,status=?,data_inicio=?,data_vencimento=?,recorrente=?,periodicidade_meses=? WHERE id=? AND norma='NR10'")
                   ->execute([$unidade_id,$tipo,$titulo,$descricao,$responsavel,$status,$data_inicio,$data_venc,$recorrente,$periodicidade,$id]);
                header('Location: nr10.php?msg=success:A%C3%A7%C3%A3o+NR+10+atualizada!'); exit;
            } else {
                $db->prepare("INSERT INTO acoes (unidade_id,norma,tipo,titulo,descricao,responsavel,status,data_inicio,data_vencimento,recorrente,periodicidade_meses,criado_por) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)")
                   ->execute([$unidade_id,'NR10',$tipo,$titulo,$descricao,$responsavel,$status,$data_inicio,$data_venc,$recorrente,$periodicidade,$usuario['id']]);
                header('Location: nr10.php?msg=success:A%C3%A7%C3%A3o+NR+10+cadastrada!'); exit;
            }
        } else {
            header('Location: nr10.php?msg=error:Preencha+os+campos+obrigat%C3%B3rios.'); exit;
        }
    } elseif ($acao_form === 'excluir' && temPermissao('excluir', $perfil)) {
        $id = intval($_POST['id'] ?? 0);
        if ($id > 0) { $db->prepare("DELETE FROM acoes WHERE id=? AND norma='NR10'")->execute([$id]); }
        header('Location: nr10.php?msg=success:A%C3%A7%C3%A3o+removida!'); exit;
    }
}

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

// Filtros
$filtro_unidade = intval($_GET['unidade_id'] ?? 0);
$filtro_status  = sanitizar($_GET['status'] ?? '');
$filtro_tipo    = sanitizar($_GET['tipo'] ?? '');

$unidades = $db->query("SELECT id, codigo, nome FROM unidades WHERE ativo=1 ORDER BY nome")->fetchAll();

// Montar query com filtros
$where = ["a.norma = 'NR10'"];
$params = [];
if ($filtro_unidade) { $where[] = 'a.unidade_id = ?'; $params[] = $filtro_unidade; }
if ($filtro_status)  { $where[] = 'a.status = ?';     $params[] = $filtro_status; }
if ($filtro_tipo)    { $where[] = 'a.tipo = ?';       $params[] = $filtro_tipo; }
$sql = "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 " . implode(' AND ', $where) . " ORDER BY a.data_vencimento ASC, a.criado_em DESC";
$stmt = $db->prepare($sql);
$stmt->execute($params);
$acoes = $stmt->fetchAll();

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

$tipos = ['inspecao'=>'Inspeção','manutencao'=>'Manutenção','treinamento'=>'Treinamento','adequacao'=>'Adequação','laudo'=>'Laudo','documento'=>'Documento'];
$status_list = ['pendente'=>'Pendente','em_andamento'=>'Em Andamento','concluida'=>'Concluída','atrasada'=>'Atrasada'];
$pagina_titulo = 'NR 10 — Elétrica';
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="zap" class="w-6 h-6 text-yellow-500"></i> NR 10 — Segurança Elétrica
      </h1>
      <p class="text-sm text-gray-500 mt-0.5">Gestão de ações de conformidade com a NR 10</p>
    </div>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="nr10.php?novo=1" class="btn-primary">
      <i data-lucide="plus" class="w-4 h-4"></i> Nova Ação
    </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-yellow-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-yellow-500"></i>
      <?= $editando ? 'Editar Ação NR 10' : 'Nova Ação NR 10' ?>
    </h2>
    <form method="POST" action="nr10.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">
        <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">Tipo de Ação *</label>
          <select name="tipo" class="form-input" required>
            <option value="">Selecione...</option>
            <?php foreach ($tipos as $v => $l): ?>
            <option value="<?= $v ?>" <?= ($editando['tipo'] ?? '') === $v ? 'selected' : '' ?>><?= $l ?></option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label class="form-label">Status</label>
          <select name="status" class="form-input">
            <?php foreach ($status_list as $v => $l): ?>
            <option value="<?= $v ?>" <?= ($editando['status'] ?? 'pendente') === $v ? 'selected' : '' ?>><?= $l ?></option>
            <?php endforeach; ?>
          </select>
        </div>
        <div class="sm:col-span-2">
          <label class="form-label">Título da Ação *</label>
          <input type="text" name="titulo" class="form-input" placeholder="ex: Laudo de Aterramento — Planta SP"
                 value="<?= sanitizar($editando['titulo'] ?? '') ?>" required>
        </div>
        <div>
          <label class="form-label">Responsável</label>
          <input type="text" name="responsavel" class="form-input" placeholder="Nome do responsável"
                 value="<?= sanitizar($editando['responsavel'] ?? '') ?>">
        </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">Data de Vencimento</label>
          <input type="date" name="data_vencimento" class="form-input" value="<?= $editando['data_vencimento'] ?? '' ?>">
        </div>
        <div class="sm:col-span-3">
          <label class="form-label">Descrição</label>
          <textarea name="descricao" class="form-input" rows="2" placeholder="Detalhes da ação..."><?= sanitizar($editando['descricao'] ?? '') ?></textarea>
        </div>
        <div class="flex items-center gap-2">
          <input type="checkbox" name="recorrente" id="recorrente" value="1" <?= ($editando['recorrente'] ?? 0) ? 'checked' : '' ?>>
          <label for="recorrente" class="form-label mb-0 cursor-pointer">Ação recorrente</label>
        </div>
        <div>
          <label class="form-label">Periodicidade (meses)</label>
          <input type="number" name="periodicidade_meses" class="form-input" min="1" max="120"
                 value="<?= $editando['periodicidade_meses'] ?? '' ?>" placeholder="ex: 12">
        </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="nr10.php" class="btn-outline">Cancelar</a>
      </div>
    </form>
  </div>
  <?php endif; ?>

  <!-- Filtros -->
  <form method="GET" action="nr10.php" class="flex flex-wrap 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>
    <select name="status" class="form-input w-auto">
      <option value="">Todos os status</option>
      <?php foreach ($status_list as $v => $l): ?>
      <option value="<?= $v ?>" <?= $filtro_status === $v ? 'selected' : '' ?>><?= $l ?></option>
      <?php endforeach; ?>
    </select>
    <select name="tipo" class="form-input w-auto">
      <option value="">Todos os tipos</option>
      <?php foreach ($tipos as $v => $l): ?>
      <option value="<?= $v ?>" <?= $filtro_tipo === $v ? 'selected' : '' ?>><?= $l ?></option>
      <?php endforeach; ?>
    </select>
    <button type="submit" class="btn-primary"><i data-lucide="filter" class="w-4 h-4"></i> Filtrar</button>
    <a href="nr10.php" class="btn-outline">Limpar</a>
  </form>

  <!-- Tabela -->
  <?php if (empty($acoes)): ?>
  <div class="card border border-dashed border-gray-300 text-center py-14">
    <i data-lucide="zap" class="w-10 h-10 text-gray-300 mx-auto mb-3"></i>
    <p class="text-gray-500 text-sm">Nenhuma ação NR 10 registrada.</p>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="nr10.php?novo=1" class="btn-primary mt-3 inline-flex"><i data-lucide="plus" class="w-4 h-4"></i> Cadastrar primeira</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">Título</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">Tipo</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden lg:table-cell">Vencimento</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Status</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 ($acoes as $a): ?>
          <tr class="table-row">
            <td class="px-4 py-3">
              <p class="font-medium text-actsafe-text"><?= sanitizar($a['titulo']) ?></p>
              <?php if ($a['responsavel']): ?>
              <p class="text-xs text-gray-400"><?= sanitizar($a['responsavel']) ?></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($a['unidade_codigo']) ?></span>
            </td>
            <td class="px-4 py-3 text-gray-500 hidden md:table-cell"><?= $tipos[$a['tipo']] ?? $a['tipo'] ?></td>
            <td class="px-4 py-3 hidden lg:table-cell">
              <?php $sv = statusVencimento($a['data_vencimento']); ?>
              <span class="<?= $sv==='vencido' ? 'text-red-600 font-semibold' : ($sv==='vencendo' ? 'text-yellow-600 font-semibold' : 'text-gray-500') ?>">
                <?= formatarData($a['data_vencimento']) ?>
              </span>
            </td>
            <td class="px-4 py-3">
              <span class="badge-status badge-<?= $a['status'] ?>"><?= $status_list[$a['status']] ?? $a['status'] ?></span>
            </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="nr10.php?editar=<?= $a['id'] ?>" class="text-actsafe-blue hover:text-actsafe-dark" title="Editar">
                  <i data-lucide="pencil" class="w-4 h-4"></i>
                </a>
                <a href="rti_gerar.php?acao_id=<?= $a['id'] ?>" class="text-green-600 hover:text-green-800" title="Gerar RTI">
                  <i data-lucide="file-image" class="w-4 h-4"></i>
                </a>
                <?php if (temPermissao('excluir', $perfil)): ?>
                <form method="POST" action="nr10.php" onsubmit="return confirmarExclusao(this)" class="inline">
                  <input type="hidden" name="acao_form" value="excluir">
                  <input type="hidden" name="id" value="<?= $a['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($acoes) ?> ação(ões) encontrada(s)
    </div>
  </div>
  <?php endif; ?>
</div>

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