<?php
include '../config.php';
include '../configuracao/modelo.php'; // Garante que a função validaAcessoTela está carregada

session_start();
$numero_da_tela = 1; // ID gerado pelo banco

    if (!validaAcessoTela($mysqli, $_SESSION['id'], $numero_da_tela)) {
        echo "<script>alert('Sem permissão para o teste número $numero_da_tela!'); window.location.href='../lista/index.php';</script>";
        exit();
    }


?>

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Variáveis de controle para o modo de Alteração/Edição
$modo_edicao = false;
$codigo_editar = 0;
$tela_nome_sel = '';
$ativo_sel = 'S';
$enum_sel = '';

// --------------------------------------------------------
// AÇÃO 1: EXCLUIR TELA (GET)
// --------------------------------------------------------
if (isset($_GET['excluir'])) {
    $codigo_excluir = intval($_GET['excluir']);
    
    try {
        $stmt = $mysqli->prepare("DELETE FROM tela WHERE codigo = ?");
        $stmt->bind_param("i", $codigo_excluir);
        if ($stmt->execute()) {
            echo "<script>alert('Tela excluída com sucesso!'); window.location.href='cadastro_tela.php';</script>";
            exit();
        }
    } catch (Exception $e) {
        $erro = addslashes($e->getMessage());
        echo "<script>alert('Erro de Integridade: Esta tela possui vínculos ativos na tabela de permissões!\\n\\nDetalhe: $erro'); window.location.href='cadastro_tela.php';</script>";
        exit();
    }
}

// --------------------------------------------------------
// AÇÃO 2: CARREGAR DADOS PARA ALTERAÇÃO (GET)
// --------------------------------------------------------
if (isset($_GET['editar'])) {
    $codigo_editar = intval($_GET['editar']);
    $modo_edicao = true;
    
    $stmt = $mysqli->prepare("SELECT * FROM tela WHERE codigo = ?");
    $stmt->bind_param("i", $codigo_editar);
    $stmt->execute();
    $dados_tela = $stmt->get_result()->fetch_assoc();
    
    if ($dados_tela) {
        $tela_nome_sel = $dados_tela['tela_nome'];
        $ativo_sel = $dados_tela['ativo'];
        $enum_sel = $dados_tela['enumsistema'];
    }
}

// --------------------------------------------------------
// AÇÃO 3: SALVAR OU ALTERAR TELA (POST)
// --------------------------------------------------------
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $tela_name = $_POST['tela_nome'];
    $ativo = $_POST['ativo'];
    $data_atual = date('Y-m-d');
    
    try {
        if (isset($_POST['modo_edicao_ativo']) && $_POST['modo_edicao_ativo'] == '1') {
            // --- MODO ALTERAR ---
            $codigo_original = intval($_POST['codigo_original']);
            $enumsistema_edit = $_POST['enumsistema']; // Mantém o enum no modo edição
            
            $stmt_update = $mysqli->prepare("
                UPDATE tela 
                SET ativo = ?, enumsistema = ?, tela_nome = ? 
                WHERE codigo = ?
            ");
            $stmt_update->bind_param("sssi", $ativo, $enumsistema_edit, $tela_name, $codigo_original);
            if ($stmt_update->execute()) {
                echo "<script>alert('Tela alterada com sucesso!'); window.location.href='cadastro_tela.php';</script>";
                exit();
            }
            
        } else {
            // --- MODO SALVAR (AUTOMÁTICO) ---
            // 1. GERAÇÃO AUTOMÁTICA DO ENUM SISTEMA (Gera Geral)
            // Remove acentos, caracteres especiais, espaços e converte para UPPERCASE com prefixo TELA_
            $string_limpa = preg_replace('/[^a-zA-Z0-9]/', '_', iconv('UTF-8', 'ASCII//TRANSLIT', $tela_name));
            $string_limpa = strtoupper(trim(preg_replace('/_+/', '_', $string_limpa), '_'));
            $enumsistema_auto = "TELA_" . $string_limpa;
            
            // 2. VERIFICAÇÃO PREVENTIVA: Evita duplicidade do Enum gerado automaticamente
            $stmt_check = $mysqli->prepare("SELECT codigo FROM tela WHERE enumsistema = ?");
            $stmt_check->bind_param("s", $enumsistema_auto);
            $stmt_check->execute();
            
            if ($stmt_check->get_result()->num_rows > 0) {
                echo "<script>alert('Atenção: A automação gerou o Enum [$enumsistema_auto], mas ele já existe no banco para outra tela!'); window.history.back();</script>";
                exit();
            }
            $stmt_check->close();
            
            // 3. INSERÇÃO: O campo 'codigo' não é enviado (AUTO_INCREMENT do banco)
            $stmt_insert = $mysqli->prepare("
                INSERT INTO tela (ativo, enumsistema, data, tela_nome) 
                VALUES (?, ?, ?, ?)
            ");
            $stmt_insert->bind_param("ssss", $ativo, $enumsistema_auto, $data_atual, $tela_name);
            if ($stmt_insert->execute()) {
                echo "<script>alert('Nova tela salva! Enum Gerado: $enumsistema_auto'); window.location.href='cadastro_tela.php';</script>";
                exit();
            }
        }
    } catch (Exception $e) {
        $erro = addslashes($e->getMessage());
        echo "<script>alert('Erro no Banco de Dados: $erro'); window.history.back();</script>";
    }
}

// Busca a lista atualizada de todas as telas cadastradas
$lista_telas = $mysqli->query("SELECT * FROM tela ORDER BY codigo ASC");
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Gerenciar Telas - Automação Total</title>
</head>
<body style="padding: 20px; font-family: sans-serif; background: #f4f6f9; color: #333;">

<div style="max-width: 850px; margin: auto;">

    <h2>🖥️ Painel Unificado: Gerenciamento de Telas Automatizado</h2>
    <hr>

    <div style="background: #fff; padding: 20px; border: 1px solid #ddd; border-radius: 6px; margin-bottom: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);">
        <h3 style="margin-top: 0; color: #28a745;">
            <?php echo $modo_edicao ? "📝 Alterar Tela (Código: $codigo_editar)" : "✨ Cadastrar Nova Tela (Código e Enum Automáticos)"; ?>
        </h3>
        
        <form method="POST">
            <?php if ($modo_edicao): ?>
                <input type="hidden" name="modo_edicao_ativo" value="1">
                <input type="hidden" name="codigo_original" value="<?php echo $codigo_editar; ?>">
            <?php endif; ?>

            <div style="display: flex; gap: 15px; flex-wrap: wrap; margin-bottom: 15px;">
                <div style="flex: 2; min-width: 300px;">
                    <label style="display:block; margin-bottom:5px; font-weight:bold;">Nome da Tela / Descrição:</label>
                    <input type="text" name="tela_nome" value="<?php echo htmlspecialchars($tela_nome_sel); ?>" required 
                           placeholder="Ex: Cadastro de Pecas Mecanicas"
                           style="width:100%; padding:8px; border:1px solid #ccc; border-radius:4px; box-sizing: border-box;">
                    <?php if (!$modo_edicao): ?>
                        <small style="color: #666; font-style: italic;">O sistema gerará a tag identificadora (Enum) com base neste nome.</small>
                    <?php endif; ?>
                </div>

                <?php if ($modo_edicao): ?>
                    <div style="flex: 1; min-width: 200px;">
                        <label style="display:block; margin-bottom:5px; font-weight:bold;">Enum Sistema:</label>
                        <input type="text" name="enumsistema" value="<?php echo htmlspecialchars($enum_sel); ?>" required 
                               style="width:100%; padding:8px; border:1px solid #ccc; border-radius:4px; box-sizing: border-box; font-family: monospace; background: #e9ecef;">
                    </div>
                <?php endif; ?>

                <div style="width: 140px;">
                    <label style="display:block; margin-bottom:5px; font-weight:bold;">Status:</label>
                    <select name="ativo" style="width:100%; padding:8px; border:1px solid #ccc; border-radius:4px;">
                        <option value="S" <?php echo ($ativo_sel == 'S') ? 'selected' : ''; ?>>Ativo (S)</option>
                        <option value="N" <?php echo ($ativo_sel == 'N') ? 'selected' : ''; ?>>Inativo (N)</option>
                    </select>
                </div>
            </div>

            <div>
                <button type="submit" style="padding: 10px 20px; background: #28a745; color: white; border: none; border-radius: 4px; cursor: pointer; font-weight: bold;">
                    <?php echo $modo_edicao ? "Alterar Dados" : "Salvar Nova Tela"; ?>
                </button>

                <?php if ($modo_edicao): ?>
                    <a href="cadastro_tela.php" style="margin-left: 15px; color: #666; text-decoration: none; font-size: 14px;">❌ Cancelar Alteração</a>
                <?php endif; ?>
            </div>
        </form>
    </div>

    <h3>📋 Telas Registradas no Banco de Dados</h3>
    <table border="1" style="width: 100%; border-collapse: collapse; background: white; border: 1px solid #ddd;">
        <thead>
            <tr style="background: #e9ecef; text-align: left;">
                <th style="padding: 10px; width: 110px; text-align: center;">Código (Banco)</th>
                <th style="padding: 10px;">Nome / Descrição da Tela</th>
                <th style="padding: 10px; width: 80px; text-align: center;">Status</th>
                <th style="padding: 10px;">Enum Sistema (Automação)</th>
                <th style="padding: 10px; width: 100px;">Data Criação</th>
                <th style="padding: 10px; width: 160px; text-align: center;">Ações</th>
            </tr>
        </thead>
        <tbody>
            <?php if ($lista_telas->num_rows == 0): ?>
                <tr>
                    <td colspan="6" style="padding: 15px; text-align: center; color: #888;">Nenhuma tela mapeada até o momento.</td>
                </tr>
            <?php endif; ?>
            
            <?php while($t = $lista_telas->fetch_assoc()): ?>
                <tr style="border-bottom: 1px solid #eee;">
                    <td style="padding: 10px; font-weight: bold; font-family: monospace; font-size: 14px; text-align: center; background: #f8f9fa;">
                        <?php echo $t['codigo']; ?>
                    </td>
                    <td style="padding: 10px; font-weight: bold; color: #333;"><?php echo htmlspecialchars($t['tela_nome'] ?? ''); ?></td>
                    <td style="padding: 10px; text-align: center;">
                        <span style="padding: 3px 8px; border-radius: 12px; font-size: 12px; font-weight: bold; 
                                     background: <?php echo $t['ativo'] == 'S' ? '#d4edda; color: #155724;' : '#f8d7da; color: #721c24;'; ?>">
                            <?php echo $t['ativo']; ?>
                        </span>
                    </td>
                    <td style="padding: 10px; font-family: monospace; font-size: 13px; color: #0056b3; font-weight: bold;">
                        <?php echo htmlspecialchars($t['enumsistema']); ?>
                    </td>
                    <td style="padding: 10px; font-size: 13px;"><?php echo date('d/m/Y', strtotime($t['data'])); ?></td>
                    <td style="padding: 10px; text-align: center;">
                        <a href="cadastro_tela.php?editar=<?php echo $t['codigo']; ?>" 
                           style="color: #0056b3; text-decoration: none; margin-right: 15px; font-weight: bold;">✏️ Alterar</a>
                        
                        <a href="javascript:if(confirm('Tem certeza que deseja remover a tela [<?php echo htmlspecialchars($t['tela_nome']); ?>]?')) { window.location.href='cadastro_tela.php?excluir=<?php echo $t['codigo']; ?>'; }" 
                           style="color: #dc3545; text-decoration: none; font-weight: bold;">🗑️ Excluir</a>
                    </td>
                </tr>
            <?php endwhile; ?>
        </tbody>
    </table>

    <div style="margin-top: 30px; display: flex; gap: 20px;">
        <a href="vincular_tela.php" style="color: #0056b3; font-weight: bold; text-decoration: none;">🔑 Vincular Operários às Telas</a>
        <a href="index.php" style="color: #666; text-decoration: none;">← Voltar à Lista de Operadores</a>
    </div>

</div>

</body>
</html>