# 🚚 Módulo de Rotas - ERP SAAS PraFrota ## šŸ“ Arquivos da Documentação ### šŸ“‹ Documentação Principal - **`ROUTES_MODULE_DOCUMENTATION.md`** - Documentação tĆ©cnica completa do módulo - Estrutura de dados (interfaces TypeScript) - Fluxos operacionais - Integração com app mobile - EspecificaƧƵes de UI/UX - Aspectos tĆ©cnicos e integraƧƵes ### šŸ“Š Dados Mockados - **`ROUTES_MOCK_DATA_COMPLETE.json`** - 500 rotas mockadas (765KB) - Dados realistas baseados nas especificaƧƵes - Coordenadas reais das regiƵes (RJ, SP, MG, ES) - Placas de veĆ­culos extraĆ­das do sistema real - Distribuição correta por tipo, status e regiĆ£o ### šŸ”„ Sistema de Fallback - **`FALLBACK_IMPLEMENTATION_GUIDE.md`** - Guia completo de implementação - Sistema de fallback automĆ”tico para dados mockados - Indicadores visuais de conectividade - Monitoramento de backend em tempo real - **`FALLBACK_SIMPLE_EXAMPLE.ts`** - Exemplo simplificado para implementação rĆ”pida - Service com fallback automĆ”tico - Exemplo de component e template - InstruƧƵes de configuração ### šŸ› ļø Scripts e Dados de Origem - **`generate_routes_data.py`** - Script Python para gerar dados mockados - ConfigurĆ”vel para diferentes quantidades - Baseado em dados reais do CSV - Distribuição estatĆ­stica correta - **`mercado-lives_export.csv`** - Dados reais de placas de veĆ­culos - Fonte dos dados para geração das rotas - Placas reais do sistema PraFrota ## šŸ“ Localização dos Arquivos Todos os arquivos estĆ£o organizados em: ``` /projects/idt_app/docs/router/ ā”œā”€ā”€ ROUTES_MODULE_DOCUMENTATION.md ā”œā”€ā”€ ROUTES_MOCK_DATA_COMPLETE.json ā”œā”€ā”€ ROUTES_MOCK_DATA.json ā”œā”€ā”€ ROUTES_README.md ā”œā”€ā”€ generate_routes_data.py └── mercado-lives_export.csv ``` ## šŸŽÆ Como Usar ### 1. Para Desenvolvedores Frontend #### šŸ”„ Implementação com Fallback (Recomendado) ```typescript // Service com fallback automĆ”tico @Injectable({ providedIn: 'root' }) export class RoutesService { private mockRoutes = require('./docs/router/ROUTES_MOCK_DATA_COMPLETE.json').routes; getRoutes(): Observable { return this.http.get('/api/routes').pipe( catchError(() => { console.warn('Backend offline, usando dados mockados'); return of({ data: this.mockRoutes, source: 'fallback' }); }) ); } } ``` #### šŸ“Š Importação Direta dos Dados ```typescript // Importar interface principal interface Route { id: string; routeNumber: string; type: 'firstMile' | 'lineHaul' | 'lastMile'; // ... outros campos (ver documentação) } // Usar dados mockados import routesData from './docs/router/ROUTES_MOCK_DATA_COMPLETE.json'; const routes: Route[] = routesData.routes; ``` ### 2. Para Backend/API ```json // Estrutura de resposta da API { "data": [...], // Array de rotas "pagination": { "total": 500, "page": 1, "limit": 50 }, "filters": { "type": ["firstMile", "lineHaul", "lastMile"], "status": ["pending", "inProgress", "completed", "delayed", "cancelled"] } } ``` ### 3. Para Testes ```javascript // Usar dados mockados em testes describe('Routes Module', () => { const mockRoutes = require('./docs/router/ROUTES_MOCK_DATA_COMPLETE.json').routes; it('should handle different route types', () => { const firstMileRoutes = mockRoutes.filter(r => r.type === 'firstMile'); expect(firstMileRoutes.length).toBe(300); }); }); ``` ### 4. Para Regenerar Dados ```bash # Navegar para a pasta cd /Users/ceogrouppra/projects/front/web/angular/projects/idt_app/docs/router # Executar script de geração python3 generate_routes_data.py # Arquivo gerado: ROUTES_MOCK_DATA_COMPLETE.json ``` ## šŸ“ˆ EstatĆ­sticas dos Dados Mockados ### Distribuição por Tipo: - **First Mile**: 300 rotas (60%) - Coleta em centros de distribuição - **Line Haul**: 126 rotas (25%) - Transporte entre cidades - **Last Mile**: 74 rotas (15%) - Entrega final (marketplaces) ### Distribuição por Status: - **Em Progresso**: 203 rotas (40%) - **Completadas**: 162 rotas (32%) - **Atrasadas**: 58 rotas (12%) - **Pendentes**: 49 rotas (10%) - **Canceladas**: 28 rotas (6%) ### Distribuição por RegiĆ£o: - **SĆ£o Paulo**: 187 rotas (37%) - **Rio de Janeiro**: 150 rotas (30%) - **Minas Gerais**: 120 rotas (24%) - **Vitória/ES**: 43 rotas (9%) ## šŸš€ Próximos Passos ### Implementação Frontend: 1. **Criar componente Routes** seguindo padrĆ£o `BaseDomainComponent` 2. **Implementar filtros avanƧados** conforme especificação 3. **Adicionar visualização em mapa** para tracking 4. **Desenvolver sistema de abas** para detalhes da rota ### Implementação Backend: 1. **Criar endpoints REST** para CRUD de rotas 2. **Implementar filtros e paginação** server-side 3. **Integrar com APIs externas** (geocoding, routing) 4. **Desenvolver sistema de notificaƧƵes** push ### Integração Mobile: 1. **Sincronização bidirecional** web ↔ mobile 2. **Implementar eventos de rota** (inĆ­cio, paradas, fim) 3. **Sistema de evidĆŖncias** (fotos, assinaturas) 4. **Modo offline** para Ć”reas sem cobertura ## šŸ”§ Configuração do Ambiente ### DependĆŖncias Frontend: ```bash npm install @angular/google-maps npm install leaflet @types/leaflet npm install date-fns ``` ### VariĆ”veis de Ambiente: ```typescript // environment.ts export const environment = { googleMapsApiKey: 'YOUR_GOOGLE_MAPS_API_KEY', routingApiUrl: 'https://api.routing.service.com', geocodingApiUrl: 'https://api.geocoding.service.com' }; ``` ## šŸ“± Sidebar do Sistema O módulo "Rotas" deve ser adicionado ao sidebar com: - **Label**: "Rotas" - **ƍcone**: `fa-route` - **Posição**: Após "VeĆ­culos" e "Motoristas" - **PermissƵes**: Baseadas no perfil do usuĆ”rio ## šŸŽØ PadrƵes de UI ### Badges de Status: - 🟔 **Pending**: `badge-warning` - šŸ”µ **InProgress**: `badge-primary` - 🟢 **Completed**: `badge-success` - šŸ”“ **Delayed**: `badge-danger` - ⚫ **Cancelled**: `badge-secondary` ### Badges de Tipo: - 🟢 **First Mile**: `badge-success` - 🟠 **Line Haul**: `badge-warning` - šŸ”µ **Last Mile**: `badge-info` ## šŸ” Campos de Busca Recomendados ### Filtros Principais: - PerĆ­odo (data inĆ­cio/fim) - Status da rota - Tipo de rota - Motorista - VeĆ­culo (placa) - Cliente/Embarcador - Cidade origem/destino ### Ordenação: - Data criação (mais recente primeiro) - Status (em progresso primeiro) - Valor (maior primeiro) - DistĆ¢ncia ## šŸ“ž Contato e Suporte Para dĆŗvidas sobre a implementação do módulo de Rotas: - **Documentação**: Consulte `router/ROUTES_MODULE_DOCUMENTATION.md` - **Dados de Teste**: Use `router/ROUTES_MOCK_DATA_COMPLETE.json` - **Geração de Dados**: Execute `cd router && python3 generate_routes_data.py` --- **VersĆ£o**: 1.0 **Última Atualização**: 28/12/2024 **Localização**: `/projects/idt_app/docs/router/` **Autor**: ERP SAAS PraFrota Team