# INT-020-01 — AtendimentoController e presenter

| Campo | Valor |
|---|---|
| **status** | feita |
| **spec** | [`docs/specs/integracao/020-atendimento.md`](../specs/integracao/020-atendimento.md) §§2–3, §5 |
| **depende de** | [INT-019-02](INT-019-02-seguranca-front-reads-cms.md) (feita) |
| **primo** | hero slim do `019`; App do `011`; Portal do `017` |

## Objetivo

`GET /atendimento` devolve o DTO da landing (página + App da Home). O React ainda pode ignorar nesta task.

## Fazer

1. `AtendimentoController` invokable no lugar da closure. Nome de rota igual.
2. `AtendimentoPresenter::make()` — hero com FAQ; equipe; ligue; `app` da Home; imprensa; portal `/negocia-omni`. **Sem** FAQ accordion / WhatsApp faixa / Blog / Agentes.
3. Testes em `tests/Feature/Integracao/`.

## Testes (PHPUnit)

- Seeder: eyebrow; title; `faqHref` `/faq`; sem subtitleLines; equipe; Ligue 2 cards + WhatsApp; ouvidoria; imprensa; portal `/negocia-omni`.
- Página + Home: `app.heading`.
- `atendimento/x.webp` no hero → `/storage/atendimento/x.webp`.
- Sem seed: `GET /atendimento` 200, coleções vazias.
- Sem keys `faq`, `whatsapp`, `noticias`, `agentes`.

## Fora

Ligar as seções React (task 02). Filament. Segurança. FAQ `/faq`.
