# GestorEasy - App Android

App Android para força de vendas do sistema ERP GestorEasy.

## 📱 Características

- ✅ **Trabalho Offline Completo** - Funciona sem internet
- ✅ **Sincronização Automática** - Sincroniza a cada 15 minutos
- ✅ **Sincronização Manual** - Botão para forçar atualização
- ✅ **PDF Profissional** - Geração de cópias de pedido com layout NF-e
- ✅ **Integração WhatsApp** - Envio de pedidos por WhatsApp
- ✅ **Busca Automática** - CNPJ (BrasilAPI) e CEP (ViaCEP)
- ✅ **GPS e Rotas** - Captura de coordenadas e navegação
- ✅ **Check-in/Check-out** - Registro de visitas aos clientes
- ✅ **Metas e Objetivos** - Acompanhamento de metas de vendas
- ✅ **Relatórios** - Vendas, comissões e relatórios detalhados
- ✅ **Animações Suaves** - UX moderna e fluida
- ✅ **Modo Escuro** - Suporte completo a tema escuro

## 🚀 Requisitos

- Android Studio Hedgehog | 2023.1.1 ou superior
- JDK 8 ou superior
- Android SDK 24 (mínimo) - 34 (target)
- Kotlin 1.9+

## 📦 Instalação

1. Clone o repositório:
```bash
git clone <repository-url>
cd gestoreasy-v3/mobile/android
```

2. Abra o projeto no Android Studio

3. Configure a URL da API:
   - Edite `app/src/main/java/com/gestoreasy/network/ApiClient.kt`
   - Altere `BASE_URL` para a URL do seu servidor

4. Configure Google Maps (opcional):
   - Adicione sua API key em `app/src/main/AndroidManifest.xml`
   - Substitua `YOUR_GOOGLE_MAPS_API_KEY`

5. Sincronize e compile:
```bash
./gradlew build
```

## 🔧 Configuração

### URL da API

Edite `ApiClient.kt`:
```kotlin
private const val BASE_URL = "https://seu-servidor.com.br/"
```

Ou configure via SharedPreferences após o login.

### Google Maps API

1. Obtenha uma API key no [Google Cloud Console](https://console.cloud.google.com/)
2. Adicione em `AndroidManifest.xml`:
```xml
<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="SUA_API_KEY_AQUI"/>
```

### Permissões

O app solicita automaticamente:
- **Localização** - Para GPS e rotas
- **Internet** - Para sincronização
- **Armazenamento** - Para salvar PDFs

## 🏗️ Estrutura do Projeto

```
app/src/main/java/com/gestoreasy/
├── database/          # Room Database
│   ├── entities/      # Entidades
│   ├── dao/           # Data Access Objects
│   └── AppDatabase.kt
├── network/           # Retrofit API
│   ├── ApiClient.kt
│   └── GestorEasyAPI.kt
├── repository/        # Repositórios
├── services/          # Serviços (PDF, WhatsApp, etc)
├── sync/              # Sincronização
├── ui/                # Activities e Fragments
│   ├── adapters/      # RecyclerView Adapters
│   ├── animations/    # Utilitários de animação
│   └── widgets/       # Widgets customizados
└── utils/             # Utilitários
```

## 🧪 Testes

### Testes Unitários
```bash
./gradlew test
```

### Testes Instrumentados
```bash
./gradlew connectedAndroidTest
```

## 📦 Build

### Debug
```bash
./gradlew assembleDebug
```

### Release
```bash
./gradlew assembleRelease
```

O APK será gerado em: `app/build/outputs/apk/release/`

## 🔐 Assinatura de Release

1. Gere um keystore:
```bash
keytool -genkey -v -keystore gestoreasy-release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias gestoreasy
```

2. Configure em `app/build.gradle`:
```gradle
android {
    signingConfigs {
        release {
            storeFile file('gestoreasy-release.jks')
            storePassword 'sua-senha'
            keyAlias 'gestoreasy'
            keyPassword 'sua-senha'
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}
```

## 📱 Funcionalidades Detalhadas

### Sincronização
- **Automática**: A cada 15 minutos quando online
- **Manual**: Botão de sincronização
- **Incremental**: Apenas dados alterados
- **Offline**: Dados salvos localmente

### PDF de Pedidos
- Layout profissional similar a NF-e
- Inclui todos os dados do pedido
- Pode ser compartilhado ou salvo

### Integração WhatsApp
- Envio de PDF de pedidos
- Envio de mensagens
- Verificação de instalação

### Busca Automática
- **CNPJ**: Busca dados da empresa (BrasilAPI)
- **CEP**: Busca endereço completo (ViaCEP)

### GPS e Rotas
- Captura automática de coordenadas
- Navegação para cliente individual
- Rota otimizada para múltiplos clientes

### Check-in/Check-out
- Registro de visitas com GPS
- Histórico completo
- Sincronização com servidor

## 🐛 Troubleshooting

### Erro de conexão
- Verifique a URL da API
- Verifique conexão com internet
- Verifique token de autenticação

### Erro de GPS
- Verifique permissões de localização
- Verifique se GPS está ativado
- Verifique configurações de privacidade

### Erro de sincronização
- Verifique conexão
- Verifique token válido
- Verifique logs em `SyncLog`

## 📚 Documentação

- [Funcionalidades](docs/APP_ANDROID_FUNCIONALIDADES.md)
- [Configuração](docs/APP_ANDROID_CONFIGURACAO.md)
- [Compatibilidade](docs/APP_ANDROID_COMPATIBILIDADE.md)
- [Próximos Passos](docs/APP_ANDROID_PROXIMOS_PASSOS.md)
- [Implementações Finais](docs/APP_ANDROID_IMPLEMENTACOES_FINAIS.md)

## 🤝 Contribuindo

1. Faça um fork do projeto
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request

## 📄 Licença

Este projeto é proprietário do GestorEasy.

## 👥 Suporte

Para suporte, entre em contato:
- Email: suporte@gestoreasy.com.br
- Documentação: [docs/](docs/)

---

**Desenvolvido com ❤️ para força de vendas**

