# INT-024-01 — SuperappOmniController e presenter

| Campo | Valor |
|---|---|
| **status** | feita |
| **spec** | [`docs/specs/integracao/024-superapp-omni.md`](../specs/integracao/024-superapp-omni.md) §§2–3, §5 |
| **depende de** | [INT-023-02](INT-023-02-validador-boletos-front-reads-cms.md) (feita) |
| **primo** | hero do `014`; QR da Home como o App do `023`; badges do Layout `003` |

## Objetivo

`GET /superapp-omni` devolve o DTO desta tela + QR da Home + logo/badges do Layout. O React ainda pode ignorar nesta task.

## Fazer

1. `SuperappOmniController` invokable no lugar da closure. Nome de rota igual.
2. `SuperappOmniPresenter::make()` — hero; recursos; por que; comece (homem desta tela + QR Home + logo/badges Layout); WhatsApp. **Sem** FAQ / Blog / Agentes / dobra App.
3. Testes em `tests/Feature/Integracao/`.

## Testes (PHPUnit)

- Seeder: eyebrow; 3 titleLines; 3 subtitleLines; CTA `#comece`; 3+3 recursos + mockup; 4 por que; Comece label + homem; WhatsApp `#`.
- Página + Home + Layout: QR da Home; logo e 2 stores do Layout; store sem `url`.
- `superapp-omni/x.webp` no hero → `/storage/superapp-omni/x.webp`.
- Sem seed: `GET /superapp-omni` 200, coleções vazias.
- Sem keys `faq`, `noticias`, `agentes`, `app`.

## Fora

Ligar as seções React (task 02). Filament. Validador.
