Task #19323 — Atualizar componente de steps do fluxo de venda para step Upsell condicional
Task pai: Feature: Upsell
Status do refinamento: concluído
Requisitos EARS: task-19323-update-componente-step-fluxo-venda-requisitos.md
Pesquisas técnicas: AS-IS NewSellStepper · Obx vs AppGetBuilder
ADRs: ADR-010 — Controller dedicado UpsellRecommendationController
Resumo
Atualizar o componente NewSellStepper existente no zzapp (Flutter/Dart) para suportar um novo step condicional 'Recomendar' no fluxo de venda. O step é exibido entre Cliente e Conferir quando: (1) feature flag upsell está ativa, (2) loja possui upsell habilitado via codeStore, (3) itens do carrinho são exclusivamente estoque loja (saleEcommerce == false). A atualização introduz um novo controller dedicado (UpsellRecommendationController) e implementa reatividade via AppGetBuilder (padrão oficial do projeto), mantendo o stepper como StatelessWidget.
- O step 'Recomendar' aparece entre Cliente e Conferir com número 3; Conferir vira 4 quando upsell ativo
- As 3 condições (feature flag, loja habilitada, estoque loja) são avaliadas com AND — todas devem ser true
- A visibilidade do step é reavaliada reativamente após adição do primeiro item ao cart e após mudanças nos itens
- Se feature flag mudar em runtime enquanto usuário está na tela de recomendação, o step é mantido
- O UpsellRecommendationController é um lazySingleton que se auto-reseta via listener no OpenSalesController.activeCartDTO
- O NewSellStepper permanece StatelessWidget e usa
AppGetBuilderpara reagir aoUpsellRecommendationController— os call sites não precisam de wrapper reativo - SteppSell ganha valor recomendar; StepperModel ganha factory recomendaStepperModel; conferenciaStepperModel ganha parâmetro number opcional (default 3)
- Navegação para a tela de recomendação e a própria tela estão fora do escopo desta task
- Feature flags enableUpsellRecommendation e enableUpsellRecommendationByCodeStore são dependência da task 07
Referencia visual

Arquivos desta pasta
| Arquivo | Descrição |
|---|---|
task-19323-update-componente-step-fluxo-venda.md | Este arquivo — sumário e índice da task |
task-19323-update-componente-step-fluxo-venda-requisitos.md | Documento de requisitos em formato EARS (pt-BR): histórias de usuário, critérios de aceitação e casos de borda |