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

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

    if ($acao_form === 'salvar') {
        $id     = intval($_POST['id'] ?? 0);
        $codigo = limpar($_POST['codigo'] ?? '');
        $nome   = limpar($_POST['nome'] ?? '');
        $cidade = limpar($_POST['cidade'] ?? '');
        $estado = limpar($_POST['estado'] ?? '');
        $gestor = limpar($_POST['gestor'] ?? '');

        if ($codigo && $nome && $cidade && $estado) {
            if ($id > 0 && temPermissao('editar', $perfil)) {
                $db->prepare("UPDATE unidades SET codigo=?,nome=?,cidade=?,estado=?,gestor=? WHERE id=?")
                   ->execute([$codigo,$nome,$cidade,$estado,$gestor,$id]);
                header('Location: unidades.php?msg=success:Unidade+atualizada!'); exit;
            } else {
                $db->prepare("INSERT INTO unidades (codigo,nome,cidade,estado,gestor) VALUES (?,?,?,?,?)")
                   ->execute([$codigo,$nome,$cidade,$estado,$gestor]);
                header('Location: unidades.php?msg=success:Unidade+cadastrada!'); exit;
            }
        } else {
            header('Location: unidades.php?msg=error:Preencha+todos+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 unidades WHERE id=?")->execute([$id]); }
        header('Location: unidades.php?msg=success:Unidade+removida!'); exit;
    }
}

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

// Buscar unidades
$busca = sanitizar($_GET['busca'] ?? '');
if ($busca) {
    $stmt = $db->prepare("SELECT * FROM unidades WHERE (nome LIKE ? OR codigo LIKE ? OR cidade LIKE ?) ORDER BY nome");
    $stmt->execute(["%$busca%","%$busca%","%$busca%"]);
} else {
    $stmt = $db->query("SELECT * FROM unidades ORDER BY nome");
}
$unidades = $stmt->fetchAll();

// Editar: carregar dados
$editando = null;
if (isset($_GET['editar'])) {
    $stmt = $db->prepare("SELECT * FROM unidades WHERE id=?");
    $stmt->execute([intval($_GET['editar'])]);
    $editando = $stmt->fetch();
}

$estados = ['AC','AL','AP','AM','BA','CE','DF','ES','GO','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SC','SP','SE','TO'];
$pagina_titulo = 'Unidades Fabris';
require_once '../1_frontend/layout.php';
?>

<div class="space-y-5">
  <!-- Header -->
  <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="building-2" class="w-6 h-6 text-actsafe-blue"></i> Unidades Fabris
      </h1>
      <p class="text-sm text-gray-500 mt-0.5">Cadastro e gestão das plantas industriais monitoradas</p>
    </div>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="unidades.php?novo=1" class="btn-primary">
      <i data-lucide="plus" class="w-4 h-4"></i> Nova Unidade
    </a>
    <?php endif; ?>
  </div>

  <!-- Mensagem de feedback -->
  <?php if ($msg): [$tipo,$texto] = explode(':', $msg, 2); ?>
  <div class="flex items-center gap-2 px-4 py-3 rounded-lg text-sm font-medium
    <?= $tipo==='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==='success' ? 'check-circle' : 'alert-circle' ?>" class="w-4 h-4"></i>
    <?= sanitizar($texto) ?>
  </div>
  <?php endif; ?>

  <!-- Formulário de Cadastro/Edição -->
  <?php if (isset($_GET['novo']) || $editando): ?>
  <div class="card border-l-4 border-actsafe-blue">
    <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-actsafe-blue"></i>
      <?= $editando ? 'Editar Unidade' : 'Nova Unidade' ?>
    </h2>
    <form method="POST" action="unidades.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">Código *</label>
          <input type="text" name="codigo" class="form-input" placeholder="ex: UN01" maxlength="20"
                 value="<?= sanitizar($editando['codigo'] ?? '') ?>" required>
        </div>
        <div class="sm:col-span-2">
          <label class="form-label">Nome da Unidade *</label>
          <input type="text" name="nome" class="form-input" placeholder="ex: Planta São Paulo"
                 value="<?= sanitizar($editando['nome'] ?? '') ?>" required>
        </div>
        <div>
          <label class="form-label">Cidade *</label>
          <input type="text" name="cidade" class="form-input" placeholder="ex: São Paulo"
                 value="<?= sanitizar($editando['cidade'] ?? '') ?>" required>
        </div>
        <div>
          <label class="form-label">Estado *</label>
          <select name="estado" class="form-input" required>
            <option value="">Selecione...</option>
            <?php foreach ($estados as $uf): ?>
            <option value="<?= $uf ?>" <?= ($editando['estado'] ?? '') === $uf ? 'selected' : '' ?>><?= $uf ?></option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label class="form-label">Gestor Responsável</label>
          <input type="text" name="gestor" class="form-input" placeholder="Nome do gestor"
                 value="<?= sanitizar($editando['gestor'] ?? '') ?>">
        </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> <?= $editando ? 'Salvar Alterações' : 'Cadastrar Unidade' ?>
        </button>
        <a href="unidades.php" class="btn-outline">Cancelar</a>
      </div>
    </form>
  </div>
  <?php endif; ?>

  <!-- Busca -->
  <form method="GET" action="unidades.php" class="flex gap-2">
    <div class="relative flex-1 max-w-sm">
      <i data-lucide="search" class="w-4 h-4 text-gray-400 absolute left-3 top-1/2 -translate-y-1/2"></i>
      <input type="text" name="busca" class="form-input pl-9" placeholder="Buscar por nome, código ou cidade..."
             value="<?= sanitizar($busca) ?>">
    </div>
    <button type="submit" class="btn-primary">Buscar</button>
    <?php if ($busca): ?><a href="unidades.php" class="btn-outline">Limpar</a><?php endif; ?>
  </form>

  <!-- Tabela de Unidades -->
  <?php if (empty($unidades)): ?>
  <div class="card border border-dashed border-gray-300 text-center py-14">
    <i data-lucide="building-2" class="w-10 h-10 text-gray-300 mx-auto mb-3"></i>
    <p class="text-gray-500 text-sm">Nenhuma unidade cadastrada ainda.</p>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="unidades.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">Código</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Nome</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden sm:table-cell">Cidade / UF</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden md:table-cell">Gestor</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 ($unidades as $u): ?>
          <tr class="table-row">
            <td class="px-4 py-3">
              <span class="bg-actsafe-blue/10 text-actsafe-blue text-xs font-bold px-2 py-0.5 rounded-md"><?= sanitizar($u['codigo']) ?></span>
            </td>
            <td class="px-4 py-3 font-medium text-actsafe-text"><?= sanitizar($u['nome']) ?></td>
            <td class="px-4 py-3 text-gray-500 hidden sm:table-cell"><?= sanitizar($u['cidade']) ?> / <?= sanitizar($u['estado']) ?></td>
            <td class="px-4 py-3 text-gray-500 hidden md:table-cell"><?= sanitizar($u['gestor'] ?: '—') ?></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="unidades.php?editar=<?= $u['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="unidades.php" onsubmit="return confirmarExclusao(this)" class="inline">
                  <input type="hidden" name="acao_form" value="excluir">
                  <input type="hidden" name="id" value="<?= $u['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($unidades) ?> unidade(s) encontrada(s)
    </div>
  </div>
  <?php endif; ?>
</div>

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