# CMS-003-03 — Layout revisão 2 (megamenu, footer, canais)

| Campo | Valor |
|---|---|
| **status** | feita |
| **spec** | [`docs/specs/cms/003-layout.md`](../specs/cms/003-layout.md) Revisão 2 + §§4.2, 4.3, 4.5, 4.7 |
| **depende de** | [CMS-003-02](CMS-003-02-manage-layout-page.md) |
| **primo** | não há |

## Objetivo

O seeder e o Sistema → Layout passam a gravar o shell da `master`: megamenus de A Omni/Atendimento, filhos do menu do rodapé, gatilho `#area-cliente` e campos de canal (`whatsappId`, `tel:`, seta, `sideLink`). Sem key nova. Sem `db:seed` no banco de dev.

## Fazer

1. `LayoutSettingsSeeder`: NAV de A Omni e Atendimento **com** mega (copy/ícones/hover da spec R2.1); `layout_client_area.href` = `#area-cliente`; `FOOTER_MENU` com `children` (R2.2); `FOOTER_CHANNELS` = `CANAIS` da `master` (R2.3).
2. `LayoutFormState`: hidratar/desidratar `children` no menu do footer; nas linhas de canal, `whatsappId`, `showArrow` e `sideLink`. Upload vazio continua sem zerar mídia.
3. `ManageLayoutPage`: repeater de filhos no menu do footer; campos novos nas linhas de canal. Helper da Área do cliente menciona `#area-cliente`.
4. Sem tela nova. Sem ligar conteúdo do modal (`004`/`005`).

## Testes

- Seeder: A Omni tem mega com Instituto Omni; Atendimento tem FAQ; Para empresas **sem** mega; footer “Para você” contém Crediário Omni; `4004 3500` tem `whatsappId` `4004-3500`; client area `#area-cliente`.
- Round-trip do form state preserva filhos e `whatsappId`.
- Save do heading do app **não** apaga filhos do footer nem `whatsappId`.

## Fora

`db:seed` / `migrate:fresh` no banco de dev. Aprofundar `004`/`005`/`006`. Backend do lead.
