# App Android - GestorEasy Mobile

## 📱 Visão Geral

App Android para força de vendas, representantes comerciais e equipes externas. Inspirado em apps como PedidoOK, Demander, Meus Pedidos e SuasVendas.

## 🎯 Funcionalidades Principais

### 1. **Trabalho Offline**
- Funciona completamente offline
- Armazena dados localmente (SQLite via Room)
- Sincronização automática quando há conexão
- Sincronização manual sob demanda

### 2. **Gestão de Produtos**
- Catálogo completo de produtos
- Busca rápida
- Filtros por categoria
- Visualização de imagens
- Informações de estoque e preço

### 3. **Gestão de Clientes**
- Lista de clientes
- Busca por nome, CPF/CNPJ
- Visualização de histórico
- Cadastro rápido de novos clientes

### 4. **Criação de Pedidos**
- Interface intuitiva para criação de pedidos
- Seleção de produtos com busca
- Cálculo automático de totais
- Aplicação de descontos
- Salvar como rascunho
- Enviar pedido quando online

### 5. **Sincronização**
- **Automática**: A cada 15 minutos (configurável)
- **Manual**: Botão "Sincronizar" na interface
- **Incremental**: Apenas dados alterados desde última sincronização
- **Bidirecional**: Envia pedidos criados offline e recebe atualizações

## 🏗️ Arquitetura

### Tecnologias
- **Kotlin**: Linguagem principal
- **Room**: Banco de dados local
- **Retrofit**: Cliente HTTP
- **Coroutines**: Programação assíncrona
- **Material Design**: UI moderna

### Estrutura
```
mobile/android/app/src/main/java/com/gestoreasy/
├── MobileApp.kt              # Application class
├── database/
│   ├── AppDatabase.kt        # Database Room
│   ├── entities/            # Entidades do banco
│   └── dao/                  # Data Access Objects
├── network/
│   ├── ApiClient.kt         # Cliente Retrofit
│   └── GestorEasyAPI.kt     # Interface da API
├── repository/               # Repositórios
├── sync/
│   └── SyncManager.kt       # Gerenciador de sincronização
└── ui/                       # Activities e Fragments
```

## 📊 Banco de Dados Local

### Tabelas
- `products`: Catálogo de produtos
- `clients`: Cadastro de clientes
- `orders`: Pedidos criados
- `order_items`: Itens dos pedidos
- `sync_logs`: Logs de sincronização
- `pending_sync`: Dados pendentes de sincronização

## 🔄 Fluxo de Sincronização

1. **App detecta conexão**
2. **Envia pedidos pendentes** (criados offline)
3. **Baixa produtos atualizados** (desde última sync)
4. **Baixa clientes atualizados**
5. **Baixa pedidos do servidor**
6. **Atualiza timestamps de sincronização**

## 🔌 API Endpoints

### Backend (PHP)
- `GET /api/mobile/products?last_sync={timestamp}`
- `GET /api/mobile/clients?last_sync={timestamp}`
- `GET /api/mobile/orders?last_sync={timestamp}`
- `POST /api/mobile/orders`
- `PUT /api/mobile/orders/{id}`
- `POST /api/mobile/sync`

## 📦 Instalação

### Requisitos
- Android Studio Arctic Fox ou superior
- Android SDK 24+ (Android 7.0)
- Kotlin 1.6+

### Build
```bash
cd mobile/android
./gradlew assembleDebug
```

## 🚀 Próximos Passos

1. Criar Activities e Fragments para UI
2. Implementar tela de login
3. Implementar tela de lista de produtos
4. Implementar tela de criação de pedidos
5. Implementar tela de sincronização
6. Adicionar notificações push
7. Implementar busca avançada
8. Adicionar relatórios offline

