# Sistema White Label - Checkout Pro 2025

## 📋 Visão Geral

O sistema White Label permite personalização completa de cores, logos e branding do sistema sem modificar o código-fonte. Todas as configurações são armazenadas no banco de dados e aplicadas dinamicamente.

---

## 🗄️ Estrutura do Banco de Dados

### Tabela `system_settings`

Armazena todas as configurações de customização:

| Campo | Tipo | Descrição |
|-------|------|-----------|
| `id` | INT(11) | Chave primária |
| `setting_key` | VARCHAR(100) | Chave única da configuração |
| `setting_value` | TEXT | Valor da configuração |
| `setting_type` | VARCHAR(50) | Tipo (color, image, text) |
| `created_at` | TIMESTAMP | Data de criação |
| `updated_at` | TIMESTAMP | Data de atualização |

---

## 🎨 Configurações de Cores

### Cores Principais

- `color_primary` - Cor primária (botões, links, destaques)
- `color_secondary` - Cor secundária
- `color_button_hover` - Cor de hover dos botões

### Cores da Interface

- `color_sidebar_bg` - Fundo da sidebar
- `color_sidebar_text` - Texto da sidebar
- `color_header_bg` - Fundo do header
- `color_header_text` - Texto do header
- `color_footer_bg` - Fundo do footer
- `color_card_bg` - Fundo dos cards
- `color_border` - Cor das bordas

### Cores de Texto

- `color_text_primary` - Texto primário
- `color_text_secondary` - Texto secundário
- `color_text_muted` - Texto muted

### Cores de Status

- `color_success` - Sucesso
- `color_error` - Erro
- `color_warning` - Aviso
- `color_info` - Informação
- `color_table_header` - Cabeçalho de tabelas

---

## 🖼️ Configurações de Logos

### Logos Disponíveis

- `logo_sidebar_admin` - Logo na sidebar do painel admin
- `logo_sidebar_user` - Logo na sidebar do painel do usuário
- `logo_header` - Logo no cabeçalho
- `logo_favicon` - Favicon (ícone da aba)
- `logo_login` - Logo na página de login
- `logo_email` - Logo nos emails

### Localização dos Arquivos

Os logos são armazenados em: `/public/uploads/branding/`

**Permissões necessárias**: 755 (leitura e escrita para o servidor web)

**Formatos permitidos**: JPG, JPEG, PNG, GIF, SVG, WEBP, ICO

---

## 🔧 Funções Helper

### `getSystemSetting($key, $default = null)`

Obtém uma configuração do sistema.

```php
$cor_primaria = getSystemSetting('color_primary', '#009846');
```

### `setSystemSetting($key, $value, $type = 'text')`

Define uma configuração do sistema.

```php
setSystemSetting('color_primary', '#FF0000', 'color');
```

### `getAllSystemSettings()`

Obtém todas as configurações do sistema.

```php
$settings = getAllSystemSettings();
```

### `clearSettingsCache()`

Limpa o cache de configurações da sessão.

```php
clearSettingsCache();
```

### `getDynamicCSS()`

Gera CSS dinâmico baseado nas configurações.

```php
echo getDynamicCSS();
```

---

## 📍 Acesso ao Painel de Customização

### Admin

Acesse: `/admin/customizacao` ou `dashboard/index.php?page=customizacao`

### Funcionalidades

1. **Tab Cores**: Personalizar todas as cores do sistema
2. **Tab Branding**: Fazer upload de logos e imagens

---

## 👥 Gerenciamento de Usuários Aprimorado

### Informações Exibidas

- ID do usuário
- Nome completo
- Email
- WhatsApp (com link direto)
- Tipo (Admin/Usuário)
- Status (Ativo/Bloqueado)
- Saldo disponível
- Saques pendentes
- Total de transações (como produtor e afiliado)
- Total de produtos
- Último login
- Data de cadastro

### Funcionalidades do Admin

- ✅ Visualizar todos os usuários
- ✅ Editar informações do usuário
- ✅ Bloquear/Desbloquear usuários
- ✅ Mudar senha do usuário
- ✅ Excluir usuários (com confirmação)
- ✅ Ver saques pendentes
- ✅ Exportar dados (futuro)

---

## 🚀 Como Usar

### 1. Executar Migração

Execute a migração SQL:

```sql
-- Executar arquivo
config/sql_migrations/2025_11_white_label_system.sql
```

### 2. Acessar Painel de Customização

1. Faça login como admin
2. Acesse: `/admin/customizacao`
3. Personalize cores e logos

### 3. Aplicar Mudanças

As mudanças são aplicadas automaticamente após salvar. O cache é limpo automaticamente.

---

## 📁 Estrutura de Arquivos

```
dashboard/
├── pages/
│   ├── customizacao.php      # Painel de customização
│   └── usuarios.php          # Gerenciamento de usuários (melhorado)
├── includes/
│   └── load_settings.php     # Carrega configurações e CSS dinâmico
backend/
└── settings_helper.php        # Funções helper de configurações
config/
└── sql_migrations/
    └── 2025_11_white_label_system.sql
public/
└── uploads/
    └── branding/             # Logos e imagens de branding
```

---

## 🔒 Segurança

- ✅ Validação de tipos de arquivo no upload
- ✅ Sanitização de inputs
- ✅ Prepared statements em todas as queries
- ✅ Proteção de arquivos sensíveis via .htaccess
- ✅ Cache de sessão para performance

---

## ⚡ Performance

- Cache de configurações na sessão
- CSS dinâmico gerado uma vez por requisição
- Índices no banco de dados para busca rápida

---

## 🐛 Troubleshooting

### Logos não aparecem

1. Verifique se a pasta `/public/uploads/branding/` existe
2. Verifique permissões (755)
3. Verifique se o caminho no banco está correto

### Cores não aplicam

1. Limpe o cache do navegador
2. Verifique se `clearSettingsCache()` foi chamado após salvar
3. Verifique se o CSS dinâmico está sendo carregado

### Erro ao fazer upload

1. Verifique permissões da pasta de uploads
2. Verifique tamanho máximo do arquivo (PHP)
3. Verifique formato do arquivo (deve ser imagem)

---

## 📝 Notas Importantes

- ⚠️ **Não modifique diretamente o banco de dados** - Use o painel de customização
- ⚠️ **Faça backup antes de alterar configurações** - Especialmente logos
- ⚠️ **Teste em diferentes navegadores** - Para garantir compatibilidade
- ⚠️ **Mantenha proporções das imagens** - Para melhor visualização

---

**Última atualização**: 2025-01-XX
**Versão do Sistema**: Checkout Pro 2025 v2.0


