# App Android - Funcionalidades Implementadas

## ✅ Funcionalidades Completas

### 1. 📄 Geração de PDF com Layout NF-e
- **Serviço**: `PdfService.kt`
- Gera PDF profissional do pedido no formato de NF-e
- Inclui cabeçalho, dados da empresa, cliente, itens e totais
- Layout profissional e organizado

### 2. 📱 Envio por WhatsApp
- **Serviço**: `WhatsAppService.kt`
- Envia PDF do pedido diretamente pelo WhatsApp
- Envia mensagem de texto com resumo do pedido
- Verifica se WhatsApp está instalado

### 3. 🔍 Busca Automática por CNPJ
- **Serviço**: `CnpjService.kt`
- Integração com BrasilAPI
- Busca automática de dados da empresa
- Preenche: razão social, nome fantasia, endereço, cidade, estado, CEP, telefone, email

### 4. 📮 Busca Automática por CEP
- **Serviço**: `CepService.kt`
- Integração com ViaCEP
- Busca automática de endereço
- Preenche: logradouro, complemento, bairro, cidade, estado

### 5. 🎯 Metas e Objetivos
- **Entidade**: `Goal.kt`
- **Repositório**: `GoalRepository.kt`
- **DAO**: `GoalDao.kt`
- Tipos: vendas, clientes, pedidos
- Períodos: diário, semanal, mensal, anual
- Acompanhamento de progresso (valor_meta vs valor_atual)

### 6. 📊 Relatórios de Vendas e Comissões
- **Entidade**: `Commission.kt`
- **Repositório**: `CommissionRepository.kt`
- **DAO**: `CommissionDao.kt`
- Relatório de comissões por vendedor
- Resumo de comissões (total, paga, pendente)
- Filtro por período

### 7. 📍 Captura de Coordenadas Geográficas
- **Serviço**: `LocationService.kt`
- Captura GPS automático
- Armazena latitude e longitude no cadastro do cliente
- Suporte para GPS e rede
- Verificação de permissões

### 8. 🗺️ Funcionalidade de Rotas
- **Serviço**: `RouteService.kt`
- Abre Google Maps com rota para cliente
- Rota otimizada para múltiplos clientes
- Cálculo de distância (Haversine)
- Fallback para navegador web

### 9. ✅ Sistema de Check-in/Check-out
- **Entidade**: `CheckIn.kt`
- **Serviço**: `CheckInService.kt`
- **Repositório**: `CheckInRepository.kt`
- **DAO**: `CheckInDao.kt`
- Check-in no endereço do cliente com GPS
- Check-out com registro de saída
- Histórico de visitas
- Sincronização com servidor

## 🔌 API Endpoints (Backend)

### Metas
- `GET /api/mobile/goals?vendedor_id={id}` - Lista metas

### Comissões
- `GET /api/mobile/commissions?vendedor_id={id}&start_date={timestamp}&end_date={timestamp}` - Lista comissões
- `GET /api/mobile/commissions/summary?vendedor_id={id}` - Resumo de comissões

### Check-ins
- `POST /api/mobile/checkins` - Cria check-in/check-out
- `GET /api/mobile/checkins?client_id={id}` - Lista check-ins

## 📦 Dependências Necessárias

### Android (build.gradle)
```gradle
dependencies {
    // Room
    implementation "androidx.room:room-runtime:2.4.3"
    implementation "androidx.room:room-ktx:2.4.3"
    kapt "androidx.room:room-compiler:2.4.3"
    
    // PDF
    implementation "com.itextpdf:itext7-core:7.2.5"
    
    // Retrofit
    implementation "com.squareup.retrofit2:retrofit:2.9.0"
    implementation "com.squareup.retrofit2:converter-gson:2.9.0"
    implementation "com.squareup.okhttp3:logging-interceptor:4.10.0"
    
    // Coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
    
    // Location
    implementation "com.google.android.gms:play-services-location:21.0.1"
    
    // Maps (opcional, para rotas)
    implementation "com.google.android.gms:play-services-maps:18.1.0"
}
```

## 🔐 Permissões Necessárias (AndroidManifest.xml)

```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```

## 📱 Próximos Passos (UI)

1. **Tela de Cadastro de Cliente**
   - Campo CNPJ com busca automática
   - Campo CEP com busca automática
   - Captura de GPS ao salvar

2. **Tela de Pedido**
   - Botão "Gerar PDF"
   - Botão "Enviar por WhatsApp"
   - Visualização do pedido

3. **Tela de Metas**
   - Lista de metas ativas
   - Gráficos de progresso
   - Filtros por tipo e período

4. **Tela de Relatórios**
   - Relatório de vendas
   - Relatório de comissões
   - Gráficos e estatísticas

5. **Tela de Cliente**
   - Botão "Rota" (abre Google Maps)
   - Botão "Check-in"
   - Botão "Check-out"
   - Histórico de visitas

6. **Tela de Rotas**
   - Lista de clientes do dia
   - Rota otimizada
   - Mapa com localizações

## 🎨 Exemplo de Uso

### Buscar CNPJ
```kotlin
val cnpjService = CnpjService()
val client = cnpjService.searchCnpj("12345678000190")
// Preenche automaticamente os campos do formulário
```

### Buscar CEP
```kotlin
val cepService = CepService()
val address = cepService.searchCep("12345678")
// Preenche endereço, cidade, estado
```

### Gerar PDF
```kotlin
val pdfService = PdfService(context)
val pdfFile = pdfService.generateOrderPdf(order, client, items, products)
```

### Enviar por WhatsApp
```kotlin
val whatsAppService = WhatsAppService(context)
whatsAppService.sendOrderPdf(client.telefone, pdfFile)
```

### Check-in
```kotlin
val checkInService = CheckInService(context, checkInRepository, locationService)
val checkIn = checkInService.checkIn(clientId, client.endereco)
```

### Abrir Rota
```kotlin
val routeService = RouteService(context)
routeService.openRouteToClient(client)
```

