# 🆕 Novas Funcionalidades do Painel Gerenciador

## 📱 1. Rastreamento de Clientes Mac

### Descrição
Monitore todos os dispositivos Mac que acessam sua API. O sistema registra automaticamente:
- Endereço MAC do dispositivo
- Nome do dispositivo
- Versão do aplicativo
- Hora de primeiro acesso e último acesso
- Total de acessos
- Endereço IP
- Status do dispositivo (Ativo/Inativo)

### Localização
**Arquivo:** `mac_tracking.php`
**Menu:** Painel Admin > Rastreamento de Macs

### Como Usar
1. Acesse o painel administrativo
2. Clique em "Rastreamento de Macs"
3. Visualize todos os dispositivos registrados
4. Exporte dados em CSV (botão "Exportar CSV")
5. Limpe histórico quando necessário (com confirmação)

### Integração com API
Quando um cliente Mac acessa a API, adicione os seguintes parâmetros na URL:

```
/api/api_tracking.php?mac=XX:XX:XX:XX:XX:XX&device_name=MacBook&app_version=1.0
```

**Parâmetros:**
- `mac`: Endereço MAC do dispositivo (obrigatório)
- `device_name`: Nome do dispositivo (opcional, padrão: "Unknown Device")
- `app_version`: Versão do aplicativo (opcional, padrão: "Unknown")

**Exemplo de requisição:**
```
http://seu-servidor.com/api/api_tracking.php?mac=A1:B2:C3:D4:E5:F6&device_name=MacBook%20Pro&app_version=2.1
```

---

## 📺 2. Gerenciador de Listas M3U

### Descrição
Importe e gerencie listas de reprodução M3U (playlist) diretamente do painel. Cada lista M3U pode ser:
- Associada a um DNS específico
- Contada automaticamente (número de canais)
- Ativada/desativada
- Exportada para clientes

### Localização
**Arquivo:** `main_enhanced.php`
**Menu:** Painel Admin > Gerenciador DNS (seção M3U)

### Como Usar

#### Importar Lista M3U
1. Clique em "Adicionar Lista M3U"
2. Preencha os campos:
   - **Título da Lista:** Nome para identificação (ex: "Canais Premium")
   - **DNS Associado:** Selecione o DNS que será usado com esta lista
   - **URL da Lista M3U:** URL completa do arquivo M3U (ex: http://exemplo.com/canais.m3u)
3. Clique em "Importar Lista M3U"

#### Gerenciar Listas
- **Visualizar:** Tabela mostra todas as listas importadas
- **Informações:** Título, DNS, URL, número de canais, data de importação e status
- **Deletar:** Remova listas quando não forem mais necessárias

### Características Automáticas
- **Contagem de Canais:** O sistema tenta contar o número de canais (#EXTINF) na lista
- **Validação de URL:** URL é validada antes de importação
- **Timestamp:** Data/hora de importação é registrada automaticamente
- **Status:** Cada lista pode ter status "ativo" ou "inativo"

---

## 🔄 3. Atualização em Massa de DNS

### Descrição
Altere múltiplos servidores DNS simultaneamente em uma única operação. Ideal para:
- Atualizar todos os servidores para um novo DNS
- Corrigir URLs em massa
- Manutenção rápida de vários servidores

### Localização
**Arquivo:** `main_enhanced.php`
**Menu:** Painel Admin > Gerenciador DNS

### Como Usar

1. **Acessar Função:**
   - No painel DNS, clique no botão "Atualizar em Massa" (aparece apenas se houver 2+ DNS)

2. **Selecionar DNS:**
   - Marque os DNS que deseja atualizar
   - Use "Selecionar Tudo" para marcar todos rapidamente

3. **Novo DNS/URL:**
   - Insira o novo DNS ou URL que será aplicado aos servidores selecionados

4. **Confirmar:**
   - Clique em "Atualizar em Massa"
   - Confirme a operação (não pode ser desfeita)

5. **Resultado:**
   - Você será redirecionado com confirmação de sucesso

### Exemplos de Uso

**Cenário 1:** Migrar para novo servidor
```
DNS Selecionados: DNS1, DNS2, DNS3
Novo URL: http://novo-servidor.com
Resultado: Todos os três servidores apontarão para novo-servidor.com
```

**Cenário 2:** Atualizar porta
```
DNS Selecionados: Todos
Novo URL: http://servidor.com:8080
Resultado: Todos os servidores usarão a porta 8080
```

---

## 🔗 Integração entre Funcionalidades

### Fluxo de Funcionamento

```
Cliente Mac
    ↓
[Abre Aplicativo]
    ↓
[Faz Requisição para API com MAC]
    ↓
api_tracking.php
    ↓
[Registra no mac_tracking]
[Retorna DNS + M3U Lists]
    ↓
[Cliente Recebe DNSs e Listas M3U]
    ↓
[Conecta aos servidores]
```

### Estrutura de Banco de Dados

#### Tabela: mac_tracking
```sql
id (INTEGER PRIMARY KEY)
mac_address (TEXT UNIQUE)
device_name (TEXT)
app_version (TEXT)
last_access (TIMESTAMP)
access_count (INTEGER)
first_access (TIMESTAMP)
ip_address (TEXT)
status (TEXT)
```

#### Tabela: m3u_lists
```sql
id (INTEGER PRIMARY KEY)
title (TEXT)
url (TEXT)
dns_id (INTEGER) -- Referência à tabela DNS
import_date (TIMESTAMP)
status (TEXT)
playlist_count (INTEGER)
```

---

## 📊 Resposta da API Melhorada

A API agora retorna também:

```json
{
  "uuid": "...",
  "portals": [
    {
      "id": 1,
      "name": "DNS Primário",
      "url": "http://servidor.com",
      "type": "dns"
    },
    {
      "id": 2,
      "name": "Canais Premium",
      "url": "http://lista.m3u",
      "type": "m3u",
      "playlist_count": 150,
      "dns_id": 1
    }
  ],
  "total_items": 2,
  "dns_count": 1,
  "m3u_count": 1,
  "tracking": {
    "status": "registered",
    "message": "Dispositivo Mac registrado com sucesso",
    "timestamp": "2024-08-06 12:30:45"
  }
}
```

---

## 🔒 Segurança

- ✅ Validação de URLs
- ✅ Sanitização de entrada
- ✅ Confirmação para operações destrutivas
- ✅ Rastreamento de acessos
- ✅ Logging automático de timestamp

---

## 📝 Notas Importantes

1. **Backup:** Faça backup do banco de dados antes de atualizar em massa
2. **Validação:** Sempre valide URLs antes de importar
3. **Permissões:** Apenas administradores podem acessar estas funcionalidades
4. **Performance:** Com muitas listas M3U, a resposta da API pode aumentar

---

## 🆘 Troubleshooting

### Problema: M3U não importa
**Solução:** Verifique se a URL é válida e acessível

### Problema: Contagem de canais incorreta
**Solução:** Verifique se o arquivo M3U segue o formato padrão

### Problema: Mac não aparece no rastreamento
**Solução:** Verifique se a requisição inclui o parâmetro `mac` com valor válido

---

## 📞 Suporte
Para dúvidas ou problemas, entre em contato através dos canais de suporte configurados no painel.

**Versão:** 1.0
**Data:** Agosto 2026
**Compatibilidade:** PHP 7.0+, SQLite3
