Este documento compila o estado atual do desenvolvimento do SaaS multi‑tenant FTTELECOM e descreve o roteiro detalhado das próximas etapas, de acordo com o roteiro detalhado e as melhores práticas descritas anteriormente. A meta é construir uma plataforma escalável em Laravel 11 com integração completa a Asterisk, billing e demais componentes.
| Área | Tarefa | Status | Percentual (%) |
|---|---|---|---|
| Projeto de Base | Estrutura inicial do projeto criada (diretórios app/, config/, routes/, database/ etc.) | ✔️ Concluído | 100% |
Criação de composer.json, .env.example e arquivos de boot (artisan, bootstrap/app.php, public/index.php) | ✔️ Concluído | 100% | |
Configurações básicas (config/app.php, config/database.php, etc.) | ✔️ Concluído | 100% | |
| Multi‑tenancy | Implementação do trait HasTenantScope | ✔️ Concluído | 100% |
Criação do TenantMiddleware (ajustado para usar usuário autenticado) | ✔️ Concluído | 100% | |
Criação do TenantServiceProvider e registro no app.php | ✔️ Concluído | 100% | |
Criação de migrations e modelos para tenants, users, calls, call_legs e recordings | ✔️ Concluído | 100% | |
| Autenticação e RBAC | Configuração do Sanctum para autenticação | ✔️ Concluído | 100% |
Controladores de autenticação (AuthController) com registro de tenant e login | ✔️ Concluído | 100% | |
Instalação e configuração básica do spatie/laravel-permission com migrations customizadas | ✔️ Concluído | 100% | |
| Persistência | Migrations para chamadas, pernas e gravações com tenant_id | ✔️ Concluído | 100% |
| Ambiente | Criação do banco fttelecom e execução de migrate --seed | ✔️ Concluído | 100% |
Ajuste do Apache para servir a aplicação via public/ | ✔️ Concluído | 100% | |
| Integração Asterisk | Serviços/Jobs de integração ARI/AMI e processamento de eventos | 🚧 A fazer | 0% |
| WebRTC e WebSockets | Configuração do Laravel Reverb/Echo, canais e broadcast | 🚧 A fazer | 0% |
| Gravações | Integração com S3/MinIO para gravações, policies de ciclo de vida | 🚧 A fazer | 0% |
| Billing e Planos | Implementação de módulos de planos, métricas de uso e integração Stripe | 🚧 A fazer | 0% |
| Observabilidade | Health checks, métricas Prometheus/Grafana, logs estruturados | 🚧 A fazer | 0% |
| DevOps | Pipelines CI/CD (tests, build, deploy), infraestrutura como código | 🚧 A fazer | 0% |
| Testes | Testes unitários, integração com Asterisk (mock), testes de carga | 🚧 A fazer | 0% |
Lenda: ✔️ Concluído | 🚧 A fazer
A seguir apresentamos um diagrama de alto nível representando os principais componentes do sistema e o fluxo de dados. Para maior clareza, a integração com Asterisk, broker de mensagens e storage externo são mostrados de forma simplificada.
flowchart LR
subgraph Frontend
A[Frontend Web/Mobile]
end
subgraph API
B[Laravel API]
B --> B2{Middleware\nAuth + Tenant}
B2 --> B3[Controladores (Auth, Calls, Tenants)]
B3 --> B4[Models c/ HasTenantScope]
end
subgraph Persistência
D1[(Database MySQL/PostgreSQL)]
D2[(S3/MinIO)]
end
subgraph Telefonia
E1[(SIP Proxy\nKamailio/OpenSIPS)]
E2[(Asterisk Cluster)]
end
subgraph Mensageria
F[(Broker\nRedis/RabbitMQ)]
end
A -- HTTP/HTTPS --> B
B4 <---> D1
B3 -- Jobs/Events --> F
F -- Eventos de Chamada --> B3
B3 -- API ARI/AMI --> E2
E1 -- SIP/WebRTC --> E2
E2 -- Mídia --> D2
A -- WebSockets/WebRTC --> B
calls e call_legs.spatie/laravel-feature-flags./health) e expor métricas via Prometheus.O projeto já possui uma base sólida com multi‑tenancy, autenticação, RBAC básico, persistência de chamadas e estrutura de bancos de dados. O próximo passo é evoluir para a integração com Asterisk e os serviços de telefonia, adicionar comunicação em tempo real, billing e observabilidade, conforme o roteiro acima. Este roadmap deve ser revisado e ajustado à medida que as etapas forem concluídas e novas necessidades surgirem.