# 2026-04-13 - Fundação do motor de dashboards dinâmicos

## Escopo
- criação da base SQL para dashboards dinâmicos por slug
- criação do módulo PSR de dashboards em `/src/Modules/Dashboards`
- definição inicial de ACL por grupo e widgets plugáveis

## Arquivos
- `sql/2026-04-13-create-dynamic-dashboards.sql`
- `src/Modules/Dashboards/Repositories/DashboardRepository.php`
- `src/Modules/Dashboards/Services/DashboardWidgetRegistry.php`
- `src/Modules/Dashboards/Services/DashboardAdminService.php`
- `src/Modules/Dashboards/Services/DashboardRuntimeService.php`
- `src/Modules/Dashboards/Http/DashboardAdminController.php`
- `src/Modules/Dashboards/Http/DynamicDashboardController.php`

## O que ficou estabelecido
- dashboards publicados resolvidos por `slug`
- versionamento de layout em `dashboard_versions`
- ACL em nível de dashboard e widget via `dashboard_acl`
- suporte a herança opcional por grupos descendentes
- catálogo inicial de widgets e data sources reutilizando os serviços já existentes de `Finance`, `Leads`, `Tickets`, `Tasks` e `Documents`

## Decisões de arquitetura
- não usar classes de `/includes`
- manter lógica nova em PSR dentro de `/src`
- não permitir SQL arbitrário no builder
- tratar widgets como composição de `tipo + data_source + config + ACL`

## Próximo passo recomendado
- criar a central admin de dashboards e o builder visual com drag and drop
- publicar o primeiro dashboard dinâmico real: `dashboard-financeiro`
