# App Android - Interface do Usuário

## 📱 Activities Criadas

### 1. ClientFormActivity
**Localização**: `ui/client/ClientFormActivity.kt`

**Funcionalidades**:
- Cadastro/edição de cliente
- Busca automática por CNPJ (BrasilAPI)
- Busca automática por CEP (ViaCEP)
- Captura de coordenadas GPS
- Preenchimento automático de campos

**Layout**: `activity_client_form.xml`

### 2. OrderDetailActivity
**Localização**: `ui/order/OrderDetailActivity.kt`

**Funcionalidades**:
- Visualização completa do pedido
- Geração de PDF com layout NF-e
- Envio por WhatsApp
- Compartilhamento do pedido
- Lista de itens do pedido

**Layout**: `activity_order_detail.xml`

### 3. GoalsActivity
**Localização**: `ui/goals/GoalsActivity.kt`

**Funcionalidades**:
- Lista de metas e objetivos
- Progresso visual (ProgressBar)
- Filtros por tipo e período
- Sincronização com servidor

**Layout**: `activity_goals.xml`

**Adapter**: `GoalsAdapter` - RecyclerView adapter para lista de metas

### 4. ReportsActivity
**Localização**: `ui/reports/ReportsActivity.kt`

**Funcionalidades**:
- Relatório de vendas
- Relatório de comissões
- Resumo de comissões (total, paga, pendente)
- Filtros por período (hoje, semana, mês, ano)
- Gráficos e estatísticas

**Layout**: `activity_reports.xml`

### 5. ClientDetailActivity
**Localização**: `ui/client/ClientDetailActivity.kt`

**Funcionalidades**:
- Detalhes completos do cliente
- Botão "Rota" (abre Google Maps)
- Botão "Check-in" (com GPS)
- Botão "Check-out" (com GPS)
- Histórico de visitas

**Layout**: `activity_client_detail.xml`

### 6. RoutesActivity
**Localização**: `ui/routes/RoutesActivity.kt`

**Funcionalidades**:
- Lista de clientes
- Seleção múltipla de clientes
- Criação de rota otimizada
- Integração com Google Maps

**Layout**: `activity_routes.xml`

## 🎨 Componentes de UI Necessários

### Layouts XML (a criar)

1. **activity_client_form.xml**
   - EditText para nome, CNPJ, email, telefone
   - EditText para endereço, cidade, estado, CEP
   - Button para buscar CNPJ
   - Button para buscar CEP
   - Button para capturar localização
   - Button para salvar

2. **activity_order_detail.xml**
   - TextView para número do pedido
   - TextView para dados do cliente
   - RecyclerView para itens do pedido
   - TextView para totais
   - Button "Gerar PDF"
   - Button "Enviar WhatsApp"
   - Button "Compartilhar"

3. **activity_goals.xml**
   - RecyclerView para lista de metas
   - Filtros (Spinner ou Tabs)
   - ProgressBar para cada meta

4. **activity_reports.xml**
   - CardView para resumo
   - TextView para totais
   - RecyclerView para lista de comissões
   - Buttons para filtros de período

5. **activity_client_detail.xml**
   - TextView para dados do cliente
   - Button "Rota"
   - Button "Check-in"
   - Button "Check-out"
   - Button "Histórico de Visitas"

6. **activity_routes.xml**
   - RecyclerView para lista de clientes (com CheckBox)
   - Button "Criar Rota Otimizada"
   - Button "Limpar Seleção"

7. **item_goal.xml**
   - TextView para título
   - TextView para tipo
   - ProgressBar para progresso
   - TextView para valores

## 🔄 Fluxos de Navegação

### Cadastro de Cliente
1. Usuário abre `ClientFormActivity`
2. Digita CNPJ → Busca automática → Preenche campos
3. Digita CEP → Busca automática → Preenche endereço
4. Clica "Capturar Localização" → Obtém GPS
5. Clica "Salvar" → Salva no banco local e sincroniza

### Visualização de Pedido
1. Usuário abre `OrderDetailActivity`
2. Visualiza dados do pedido
3. Clica "Gerar PDF" → Gera e abre PDF
4. Clica "Enviar WhatsApp" → Abre WhatsApp com PDF
5. Clica "Compartilhar" → Abre menu de compartilhamento

### Metas e Objetivos
1. Usuário abre `GoalsActivity`
2. Visualiza lista de metas ativas
3. Vê progresso de cada meta
4. Clica em uma meta → Abre detalhes

### Relatórios
1. Usuário abre `ReportsActivity`
2. Visualiza resumo de comissões
3. Seleciona período (hoje, semana, mês, ano)
4. Visualiza lista de comissões filtradas

### Cliente - Rotas e Check-in
1. Usuário abre `ClientDetailActivity`
2. Visualiza dados do cliente
3. Clica "Rota" → Abre Google Maps com rota
4. Clica "Check-in" → Registra entrada com GPS
5. Clica "Check-out" → Registra saída com GPS
6. Clica "Histórico" → Visualiza visitas anteriores

### Rotas Otimizadas
1. Usuário abre `RoutesActivity`
2. Seleciona múltiplos clientes
3. Clica "Criar Rota Otimizada" → Abre Google Maps com rota

## 📦 Dependências Adicionais

```gradle
dependencies {
    // RecyclerView
    implementation "androidx.recyclerview:recyclerview:1.3.0"
    
    // Material Design
    implementation "com.google.android.material:material:1.9.0"
    
    // CardView
    implementation "androidx.cardview:cardview:1.0.0"
    
    // ViewBinding (opcional, mas recomendado)
    buildFeatures {
        viewBinding true
    }
}
```

## 🎯 Próximos Passos

1. Criar layouts XML para todas as Activities
2. Implementar ViewBinding para facilitar acesso às views
3. Adicionar animações e transições
4. Implementar tema Material Design
5. Adicionar ícones e imagens
6. Testar em dispositivos reais
7. Otimizar performance
8. Adicionar tratamento de erros mais robusto

## 📝 Notas de Implementação

- Todas as Activities usam `lifecycleScope` para operações assíncronas
- Tratamento de erros com Toast messages
- Suporte offline (dados do banco local)
- Sincronização automática quando online
- Integração com serviços externos (WhatsApp, Google Maps, APIs)

