Roadmap do Projeto SaaS FTTELECOM

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.

1. Progresso Atual

Área Tarefa Status Percentual (%)
Projeto de BaseEstrutura inicial do projeto criada (diretórios app/, config/, routes/, database/ etc.)✔️ Concluído100%
Criação de composer.json, .env.example e arquivos de boot (artisan, bootstrap/app.php, public/index.php)✔️ Concluído100%
Configurações básicas (config/app.php, config/database.php, etc.)✔️ Concluído100%
Multi‑tenancyImplementação do trait HasTenantScope✔️ Concluído100%
Criação do TenantMiddleware (ajustado para usar usuário autenticado)✔️ Concluído100%
Criação do TenantServiceProvider e registro no app.php✔️ Concluído100%
Criação de migrations e modelos para tenants, users, calls, call_legs e recordings✔️ Concluído100%
Autenticação e RBACConfiguração do Sanctum para autenticação✔️ Concluído100%
Controladores de autenticação (AuthController) com registro de tenant e login✔️ Concluído100%
Instalação e configuração básica do spatie/laravel-permission com migrations customizadas✔️ Concluído100%
PersistênciaMigrations para chamadas, pernas e gravações com tenant_id✔️ Concluído100%
AmbienteCriação do banco fttelecom e execução de migrate --seed✔️ Concluído100%
Ajuste do Apache para servir a aplicação via public/✔️ Concluído100%
Integração AsteriskServiços/Jobs de integração ARI/AMI e processamento de eventos🚧 A fazer0%
WebRTC e WebSocketsConfiguração do Laravel Reverb/Echo, canais e broadcast🚧 A fazer0%
GravaçõesIntegração com S3/MinIO para gravações, policies de ciclo de vida🚧 A fazer0%
Billing e PlanosImplementação de módulos de planos, métricas de uso e integração Stripe🚧 A fazer0%
ObservabilidadeHealth checks, métricas Prometheus/Grafana, logs estruturados🚧 A fazer0%
DevOpsPipelines CI/CD (tests, build, deploy), infraestrutura como código🚧 A fazer0%
TestesTestes unitários, integração com Asterisk (mock), testes de carga🚧 A fazer0%

Lenda: ✔️ Concluído | 🚧 A fazer

2. Diagrama de Arquitetura

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
    

3. Roteiro Detalhado (Próximas Etapas)

  1. Integração com Asterisk
  2. Comunicação em Tempo Real
  3. WebRTC e Gravações
  4. Billing e Gestão de Planos
  5. Observabilidade e Resiliência
  6. Testes
  7. DevOps e Infraestrutura

4. Conclusão

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.