# 📦 Guia de Instalação - Novas Funcionalidades

## ✅ Pré-requisitos

- PHP 7.0 ou superior
- SQLite3 habilitado
- Permissões de escrita no diretório do painel

## 📋 Checklist de Instalação

### 1. Backup (IMPORTANTE!)
```bash
cp -r /seu/painel/atual /seu/painel/backup_$(date +%Y%m%d_%H%M%S)
```

### 2. Atualizar Arquivos

#### Arquivos para SUBSTITUIR:
- `includes/table.php` - Atualizar com novas tabelas

#### Arquivos NOVOS para ADICIONAR:
- `mac_tracking.php` - Painel de rastreamento de Macs
- `main_enhanced.php` - Gerenciador melhorado de DNS e M3U
- `api/api_tracking.php` - API com rastreamento
- `NOVAS_FUNCIONALIDADES.md` - Documentação
- `GUIA_INSTALACAO.md` - Este arquivo

### 3. Permissões de Arquivos

```bash
chmod 644 mac_tracking.php
chmod 644 main_enhanced.php
chmod 644 api/api_tracking.php
chmod 755 includes/
chmod 644 includes/table.php
```

### 4. Verificar Banco de Dados

O banco de dados será criado automaticamente na primeira requisição. Se houver problemas:

```bash
# Dar permissão de escrita ao diretório da API
chmod 755 api/
chmod 666 api/.db.db (se existir)
```

### 5. Testar Instalação

#### Teste 1: Verificar painel de rastreamento
```
http://seu-servidor.com/mac_tracking.php
```

#### Teste 2: Verificar gerenciador DNS/M3U
```
http://seu-servidor.com/main_enhanced.php
```

#### Teste 3: Testar API com rastreamento
```
http://seu-servidor.com/api/api_tracking.php?mac=AA:BB:CC:DD:EE:FF&device_name=TestMac&app_version=1.0
```

Esperado: Resposta JSON com campos adicionais `tracking` e contagem de M3U.

---

## 🔄 Migração de Dados Existentes

Se você já possui dados no painel antigo:

### DNS Existentes
Nenhuma ação necessária. A tabela `dns` continua igual.

### Adicionar Novas Funcionalidades
1. Acesse `main_enhanced.php` em vez de `main.php`
2. Todos os DNS anteriores serão importados automaticamente
3. Adicione novos M3U conforme necessário

### Dados de Rastreamento
Começam do zero. Dados anteriores não são migrados.

---

## 🛠️ Configuração Recomendada

### Na Página Admin (admin.php)

Recomenda-se adicionar um novo campo para controlar rastreamento:

```php
// Adicione na tabela de configurações
{
    "id": 50,
    "preffile": "MacTracking",
    "preftype": "string",
    "prefname": "Enable Mac Tracking",
    "mods": "enable"  // "enable" ou "disable"
}
```

### No Menu de Navegação

Adicione links para as novas funcionalidades no header:

```html
<li class="nav-item">
    <a class="nav-link" href="mac_tracking.php">
        <i class="fa fa-mobile"></i> Rastreamento Macs
    </a>
</li>
<li class="nav-item">
    <a class="nav-link" href="main_enhanced.php">
        <i class="fa fa-list"></i> DNS & M3U
    </a>
</li>
```

---

## 📊 Estrutura de Pastas Após Instalação

```
/seu-painel/
├── includes/
│   ├── header.php
│   ├── footer.php
│   ├── functions.php
│   ├── database.php
│   └── table.php          ← ATUALIZADO
├── api/
│   ├── api.php            (original)
│   ├── api_tracking.php   ← NOVO
│   └── index.php
├── admin.php
├── user.php
├── main.php               (original)
├── main_enhanced.php      ← NOVO
├── mac_tracking.php       ← NOVO
├── GUIA_INSTALACAO.md     ← NOVO
├── NOVAS_FUNCIONALIDADES.md ← NOVO
└── settings/
    └── superuser.json
```

---

## 🔗 Integrando com seu Aplicativo Mac

### Para Clientes
Instrua seus clientes a usar a URL da API com rastreamento:

```
Antiga: http://seu-servidor.com/api/api.php
Nova:   http://seu-servidor.com/api/api_tracking.php?mac=XX:XX:XX:XX:XX:XX
```

### Obter MAC Address em Mac
```bash
# No terminal do Mac
networksetup -listallhardwareports | grep -A1 "en0"

# Ou mais simples:
ifconfig en0 | grep ether
```

### Exemplo de Requisição (cURL)
```bash
curl "http://seu-servidor.com/api/api_tracking.php?mac=A1:B2:C3:D4:E5:F6&device_name=MacBook%20Pro&app_version=1.0"
```

### Exemplo em PHP
```php
<?php
$mac_address = shell_exec("ifconfig en0 | grep ether | awk '{print $2}'");
$mac_address = trim($mac_address);
$device_name = "MacBook";
$app_version = "1.0";

$url = "http://seu-servidor.com/api/api_tracking.php?" . 
       "mac=" . urlencode($mac_address) .
       "&device_name=" . urlencode($device_name) .
       "&app_version=" . urlencode($app_version);

$response = file_get_contents($url);
$data = json_decode($response, true);

// Usar $data['portals'] para DNS
// Usar $data['m3u_count'] para saber quantas listas M3U existem
?>
```

---

## 🐛 Verificação de Erros

### Se encontrar erro "Table already exists"
Isso é normal e esperado. O sistema reconhece que as tabelas já existem.

### Se M3U não aparecer na API
Verifique:
1. Se há M3U importadas no painel (`main_enhanced.php`)
2. Se o status da M3U é "active"
3. Se o DNS associado existe

### Se Mac não aparece no rastreamento
Verifique:
1. Se a requisição inclui o parâmetro `mac`
2. Se o formato do MAC é válido (XX:XX:XX:XX:XX:XX)
3. Se há permissão de escrita no diretório da API

---

## 📈 Performance

### Recomendações
- Limpe o histórico de rastreamento mensalmente se tiver muitos clientes
- Exporte dados antes de limpar para manter histórico
- Mantenha M3U URLs válidas e acessíveis

### Otimizações Possíveis
Para grandes volumes, considere:
1. Usar banco de dados MySQL em vez de SQLite
2. Implementar paginação no painel de rastreamento
3. Arquivar dados antigos

---

## 🆘 Suporte ao Usuário

### Perguntas Frequentes

**P: Posso continuar usando `main.php` ao invés de `main_enhanced.php`?**
R: Sim, mas perderá acesso aos recursos de M3U e atualização em massa.

**P: Os dados antigos de DNS serão mantidos?**
R: Sim, todos os DNS existentes são preservados.

**P: É possível desativar o rastreamento?**
R: Sim, não use o parâmetro `mac` na URL da API. Ou implemente verificação de configuração.

**P: Qual é o limite de dispositivos rastreáveis?**
R: Sem limite técnico, mas recomenda-se limpar periodicamente para performance.

---

## ✅ Verificação Final

Antes de colocar em produção, teste:

- [ ] Página de rastreamento abre sem erros
- [ ] Painel de DNS/M3U funciona
- [ ] API retorna dados corretos
- [ ] MAC é registrado ao acessar a API
- [ ] M3U aparecem na resposta da API
- [ ] Atualização em massa de DNS funciona
- [ ] Exportação de CSV funciona

---

## 📞 Próximos Passos

1. **Documentação do Cliente:** Prepare instruções para clientes Mac
2. **Testes:** Faça testes com alguns clientes piloto
3. **Monitoramento:** Acompanhe o painel de rastreamento
4. **Feedback:** Colete feedback para futuras melhorias

---

**Versão:** 1.0  
**Data:** Agosto 2026  
**Suporte:** Verifique NOVAS_FUNCIONALIDADES.md para documentação completa
