# Anotações gerenciais por caso (Etapa 93)

## Visão geral

A **Etapa 93** cria a **base de anotações gerenciais por caso** e **contexto executivo** persistido em memória local, para que a gestão registe contexto humano e observações estratégicas por ciclo. A camada é **manual/agregadora**: não substitui resumo executivo, alertas nem outros módulos automáticos.

| Conceito | Descrição |
|----------|-----------|
| **Nota gerencial** | **EventCycleManagerNote**: NoteId, CycleId, Title, Summary, NoteCategory, Importance, AuthorRole, CreatedAt, UpdatedAt, IsPinned, Notes. |
| **Categoria** | **EventCycleManagerNoteCategory**: ExecutiveContext, CommercialConcern, OperationalConcern, FollowUpIdea, ClientSignal, InternalObservation. |
| **Importância** | **EventCycleManagerNoteImportance**: Low, Medium, High, Critical. |
| **Autor** | **EventCycleManagerAuthorRole**: HotelSales, HotelAdmin, InternalAdmin. |
| **Estado** | **EventCycleManagerNotesState**: CycleId, Notes, PinnedNotes, TotalNotes, LastUpdatedAt, NotesSummary, TopPinnedItem. |
| **Store** | **ManagerNotesStore**: Add, Update, Remove, SetPinned, Get, GetByCycleId, GetAll (em memória). |
| **Controller** | **EventCycleManagerNotesController**: AddNote, UpdateNote, RemoveNote, SetNotePinned, GetNotesState(cycleId), GetGlobalNotesState(). |

## Diferença entre sinais automáticos e contexto manual

- **Sinais automáticos** — Resumo executivo, alertas, gargalos, priorização e filtros são calculados pelo sistema a partir de dados do ciclo (closure, métricas, SLA, etc.).
- **Contexto manual (notas gerenciais)** — O gestor escreve título, resumo, categoria, importância e notas livres. Servem para **contexto humano**, **preocupações comerciais/operacionais**, **ideias de follow-up**, **sinais do cliente** e **observações internas** que o sistema não deriva sozinho.

## Como ajuda o acompanhamento executivo

- Registar **por caso** o que é relevante para a decisão (ex.: "Cliente pediu flexibilidade na data").
- **Fixar** a nota mais importante do caso para ver rápido no dashboard e na strip.
- Consultar **resumo das notas** do caso sem abrir módulos automáticos.
- **Abrir notas** a partir da watchlist ou da fila da carteira (painel lista todas e permite adicionar por ciclo).

## UI

- **EventCycleManagerNotesStripView** — Total de notas, nota fixada principal (título + ciclo), timestamp.
- **EventCycleManagerNotesPanel** — Resumo global; total; última actualização; lista de todas as notas (ciclo, título, categoria, importância, fixada, resumo/notas, Fixar/Desfixar, Remover); secção "Adicionar nota ao caso" com ciclos da carteira e botão "Nova nota" (cria nota com título "Nova anotação" e categoria InternalObservation, importância Medium).
- **EventCycleDashboardPanel** — Quando há notas: linha "Notas gerenciais: N nota(s) | Fixada: [título] [ciclo] | timestamp".

## Ações

- **Adicionar nota** — AddNote(cycleId, title, summary, category, importance, authorRole, notes). No painel, "Nova nota" por ciclo cria uma nota padrão.
- **Editar** — UpdateNote(noteId, title, summary, category?, importance?, notes) (API disponível; edição completa na UI pode ser expandida).
- **Remover** — RemoveNote(noteId).
- **Fixar** — SetNotePinned(noteId, true/false).
- **Navegar para o caso** — Futuro: usar CycleId para abrir o ciclo no CRM.
- **Abrir notas a partir da watchlist/fila** — O painel lista todas as notas e permite adicionar por qualquer ciclo da carteira; a watchlist e a fila continuam a dar acesso ao mesmo painel de notas.

## Integração

- **EventCyclePortfolioPriorityState** — O painel usa a priorização para obter a lista de ciclos em "Adicionar nota ao caso".
- Sem dependência circular: notas não são lidas por priorização, closure nem resumo executivo; a integração é apenas para listar ciclos onde se pode adicionar nota.

## Limitações atuais

- **Sem persistência real** — Tudo em memória (ManagerNotesStore); ao recarregar perde-se.
- **Sem multiusuário real** — Não há utilizador nem partilha de notas.

## Garantias

- **Quest intacto** — Nenhum fluxo Quest nem runtime XR alterado.
- **Web Hotel e Produtor intactas** — Apenas novas secções e uma linha no dashboard.
- **Camada agregadora/manual** — Só consome a lista de ciclos (priorização) para a secção "Adicionar nota"; não altera resumo executivo nem outros módulos.
