Skip to main content

Matriz de impacto — Spike 198299

Data: 2026-07-09
Decisões: grill-decisions.md


Resumo

RepoImpacto implementação USPrioridade
coezzion-service-showcaseAlto — contrato e persistência Store/RecommendP0
coezzion_vendas_appAlto — UI e payloads Minhas + HistóricoP0
coezzion-portalNenhum (referência)
coezzion-showcase-webNenhum
coezzion-service-jobsNenhum para expiração de vendedor

1. coezzion-service-showcase

Módulo / arquivoTipo de mudança
ShowCaseModel.SetDateExpirationNull não pode mais significar +31 quando CA pede “sem prazo”; alinhar a MaxValue ou helper novo
CreateShowCaseByAppCommand / UpdateDateTime? — redefinir semântica de null
ShowCaseCommandHandlerUsar normalização never-expire
Create/UpdateShowCaseRecommendCommandDateTimeDateTime?
Create/UpdateShowCaseRecommendValidatorRemover NotEmpty; manter futura se presente; adicionar max (D8)
ShowCaseRecommendCommandHandlerRemover SetDates() no create (D-API-11); DateCreated explícito + normalizer
Query/DTO mappers Store + RecommendMaxValue → null (copiar padrão Brand)
Unit tests validators/handlers RecommendAtualizar casos empty/null/never
Brand handlersNão alterar (exceto se extrair helper compartilhado de MaxValue)
Product listeners / orderNão alterar

2. coezzion_vendas_app

ÁreaMudança
Minhas — check products / search controllerDate field clearable; null no create body
Minhas — detailSempre exibir campo; permitir clear; update com null
Minhas — list + ShowCaseResponseItemNullable + nullExpirationLabel
UpdateShowCaseRequestdateExpiration nullable
Recommend — check/detail controllersRemover hard-required; clearable; max no edit
Recommend — listJá tem label; validar com API null
ZZDateFormField / usoSuportar clear se ainda não
Testes modelsCobrir null serialization

3. coezzion-portal

Sem mudança de CA. Referência de placeholder “Sem data de expiração” e clearable.


4. coezzion-showcase-web

Sem mudança. Acesso público depende apenas da API retornar vitrine ativa (MaxValue permanece ativo).


5. coezzion-service-jobs

JobAção
UpdateStatusShowCasesBrandNenhuma (só marca)
RemoveShowCasesBrandTempNenhuma
ShowCaseProductJob / NoStoreNenhuma — regressão CA-5 se quebrados

6. Ordem sugerida de PRs

PR1 showcase-api (Store + Recommend + tests)


PR2 zzapp (UI Minhas + Recommend) — pode iniciar em paralelo com contrato acordado


QA checklist manual (ver resultado-inicial-sp.md)

Contrato de integração a travar antes do merge do app:

  • dateExpiration: null no create/update = sem expiração (não default +31).
  • Response dateExpiration: null = exibir “Sem data de expiração”.