# Simulação de cenários do ciclo (Etapa 88)

## Visão geral

A **Etapa 88** cria a **base de simulação de cenários do ciclo** e **impacto previsto** das ações recomendadas/recuperação, para que a gestão avalie cenários como "estado atual", "com ação prioritária aplicada" e "com recuperação parcial" antes de agir. A camada é **agregadora**: consome closure, métricas, SLA, gargalos, plano de ações e plano de recuperação; não substitui esses módulos.

| Conceito | Descrição |
|----------|-----------|
| **Cenário simulado** | **EventCycleScenarioSimulation**: SimulationId, CycleId, ScenarioName, ScenarioType, BaseClosureStatus, SimulatedClosureStatus, BasePerformanceScore, SimulatedPerformanceScore, BaseDelayRiskLevel, SimulatedDelayRiskLevel, AssumedResolvedBottlenecks, AssumedCompletedActions, PredictedImpactSummary, GeneratedAt. |
| **Tipo de cenário** | **EventCycleScenarioType**: CurrentState, PriorityActionApplied, RecoveryPlanApplied, BestCaseShortTerm, RiskIfNoAction. |
| **Comparação** | **EventCycleScenarioComparisonState**: CycleId, Scenarios, RecommendedScenario, ComparisonSummary, BestImprovementDelta, LastSimulatedAt. |
| **Controller** | **EventCycleScenarioSimulationController**: RunSimulations(...), RunSimulationForCycle(...). |

## Cenários gerados

- **CurrentState** — Estado real atual: closure, score e risco de atraso sem alteração.
- **PriorityActionApplied** — Assume que a ação prioritária (plano de ações ou recuperação) foi aplicada: ganho de score (+10), melhoria de um nível no risco de atraso quando possível, closure "Em andamento" se estava bloqueado.
- **RecoveryPlanApplied** — Assume que a ação principal do plano de recuperação foi aplicada: ganho de score (+14), melhoria de risco, closure melhorado (bloqueado→Em andamento, em risco→Saudável).
- **BestCaseShortTerm** — Assume que os principais gargalos foram resolvidos: score +18, risco reduzido em até dois níveis, closure "Saudável".
- **RiskIfNoAction** — Cenário sem ação: score pode cair (-5), risco de atraso pode piorar um nível, closure em risco pode passar a "Bloqueado".

## Comparação e recomendação

- **RecommendedScenario** — Cenário (excluindo CurrentState e RiskIfNoAction) com maior ganho de score; em empate, o primeiro na ordem.
- **BestImprovementDelta** — Texto com o maior ganho estimado (ex.: "+12 score", "Risco High→Medium").

## Comparação entre cenário atual e cenário recuperado

O painel e o dashboard mostram lado a lado:
- Estado atual (score, risco, closure).
- Cenários hipotéticos (com ação prioritária, com recuperação, melhor caso, risco sem ação).
- Impacto previsto por cenário (PredictedImpactSummary).
- Cenário recomendado e maior ganho estimado.

Assim, a gestão compara o cenário atual com cenários alternativos antes de decidir.

## Como ajuda a tomada de decisão

- Ver **impacto previsto** de aplicar a ação prioritária ou o plano de recuperação.
- Comparar **ganho estimado** entre cenários (score, risco, closure).
- Identificar o **cenário recomendado** e o **maior ganho** de forma rápida no dashboard e na faixa.
- Avaliar o **risco se nada for feito** (RiskIfNoAction).

## UI

- **EventCycleScenarioSimulationStripView** — Primeiro ciclo: quantidade de cenários, cenário recomendado, melhor ganho, timestamp.
- **EventCycleScenarioSimulationPanel** — Por ciclo: resumo da comparação; cenário recomendado e maior ganho; ★ impacto previsto do recomendado; lista de cenários com Score base→simulado, Risco base→simulado, Closure base→simulado e texto de impacto.
- **EventCycleDashboardPanel** — Por ciclo: linha com cenário recomendado, impacto previsto, ganho e timestamp da última simulação.

## Ações

- **Gerar cenários** / **Recalcular** — Executa RunSimulations e atualiza a vista (não há persistência; cada execução gera cenários a partir do estado atual dos agregadores).
- **Comparar cenário com estado atual** — A lista de cenários já inclui "Estado atual" e os alternativos; a comparação é visual (score/risco/closure base vs simulado).
- **Navegar para ações/gargalos** — AssumedCompletedActions e AssumedResolvedBottlenecks identificam ações e gargalos; a navegação para secções pode ser feita futuramente via RelatedSectionKey dos módulos de ações/recuperação.

## Limitações atuais

- **Sem persistência real** — Simulações são calculadas on-demand; não há histórico de cenários guardado.
- **Sem automação real** — Nenhum workflow ou notificação dispara simulação.
- **Predição heurística** — Ganhos (ex.: +10, +14, +18) e melhoria de risco são fixos/heurísticos; não há modelo baseado em dados históricos reais nem ML.

## 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** — Só lê closure, métricas, SLA, gargalos, plano de ações e plano de recuperação; sem dependência circular.
