Code Review v2 - develop vs feat/194760_upsell_v1
Data: 2026-06-10 Projeto: coezzion_vendas_app (Flutter/Dart, GetX) Autor da análise: opencode
1. Escopo Analisado
- Comparação:
git diff develop...feat/194760_upsell_v1(merge-base) - Commits da feature (6):
| Commit | Mensagem |
|---|---|
d72d3ca3 | feat(#194760): adiciona feature flags de upsell no remote config |
796fdba6 | feat(#194760): adiciona step recomendar no stepper de venda |
952e4b12 | feat(#194760): implementa tela e lógica de recomendação upsell |
73952f3c | refactor(#194760): migração de ícones/refactor bottom bar |
ed58687c | fix(#194760): ajuste de referências de ícone |
ba14bece | feat(#194760): integra recomendados no checkout |
2. Resumo do Diff
| Métrica | Valor |
|---|---|
| Arquivos alterados | 42 |
| Linhas adicionadas | 4.086 |
| Linhas removidas | 142 |
| Tamanho do diff | 172 KB, 4.997 linhas |
| Commits na feature | 6 |
Distribuição:
- lib/ (34 arquivos): 10 novos, 24 modificados
- test/ (8 arquivos): 7 novos, 1 modificado
- 1 modificação no pubspec.yaml
Principais blocos:
| Área | Status | Descrição |
|---|---|---|
upsell_recommendation_controller.dart | Novo (222 linhas) | Controller principal do fluxo de upsell |
upsell_recommendation_screen.dart | Novo (142 linhas) | Tela de recomendação |
upsell_recommendation_card.dart | Novo (240 linhas) | Card de produto recomendado |
upsell_bottom_bar.dart | Novo (244 linhas) | Bottom bar com máquina de estados |
upsell_size_selection_modal.dart | Novo (136 linhas) | Modal de seleção de tamanho |
check_sell_recommended.dart | Novo (359 linhas) | Seção de recomendados no checkout |
cart_controller.dart | Modificado (+75 linhas) | AddRecommendedProducts + discount logic |
cart_dto.dart | Modificado (+22 linhas) | Campo recommendedItems com serialização |
new_sell_stepper.dart | Modificado (+84 linhas) | Nova etapa SteppSell.recomendar |
stepper.dart / stepp_sell.dart | Modificados | Step enum + model |
firebase_remote_config_service.dart | Modificado (+14 linhas) | Feature flag upsell |
upsell_navigation_helper.dart | Novo (43 linhas) | Helper de navegação |
zz_error_state.dart | Novo (59 linhas) | Widget de erro reutilizável |
zz_empty_state_new.dart | Modificado (+32 linhas) | Factory withIcon |
3. Cobertura de Testes
3.1 Global
Comando executado em ambas as branches:
flutter test --coverage
| Branch | LF | LH | Cobertura (%) | Δ vs develop |
|---|---|---|---|---|
develop | 45.088 | 2.423 | 5,37% | — |
feat/194760_upsell_v1 | 45.713 | 2.792 | 6,11% | +0,74 p.p. |
- Ganho relativo de cobertura: +13,78%
- Arquivos de teste executados: 33 (feat) vs 26 (develop) → +7 novos arquivos de teste
3.2 Cobertura por Arquivo (arquivos do diff)
| Arquivo | LF | LH | Cobertura | Δ Cobertura | Status |
|---|---|---|---|---|---|
upsell_recommendation_controller.dart | 92 | 68 | 73,91% | N/A | 🟢 |
cart_controller.dart | 339 | 78 | 23,01% | +18,02 p.p. | 🟡 |
cart_dto.dart | 216 | 164 | 75,93% | +3,38 p.p. | 🟢 |
upsell_recommendation_item.dart | 55 | 36 | 65,45% | N/A | 🟢 |
stepper.dart | 9 | 5 | 55,56% | +55,56 p.p. | 🟢 |
get_it.dart | 332 | 252 | 75,90% | +0,79 p.p. | 🟢 |
new_sell_stepper.dart | 70 | 2 | 2,86% | +2,86 p.p. | 🔴 |
new_sell.dart | 39 | 1 | 2,56% | +2,56 p.p. | 🔴 |
check_sell_screen.dart | 91 | 1 | 1,10% | +1,10 p.p. | 🔴 |
zz_empty_state_new.dart | 16 | 1 | 6,25% | +6,25 p.p. | 🔴 |
check_address_customer_screen.dart | 98 | 1 | 1,02% | +1,02 p.p. | 🔴 |
upsell_bottom_bar.dart | 70 | 3 | 4,29% | N/A | 🔴 |
upsell_recommendation_screen.dart | 51 | 0 | 0,00% | N/A | 🔴 |
upsell_recommendation_card.dart | — | — | medido via widget test | N/A | 🟡 |
upsell_size_selection_modal.dart | — | — | medido via widget test | N/A |