US 197021 — zzapp - Data de expiração opcional para vitrines
Metadados
| Campo | Valor |
|---|---|
| Tipo | User Story |
| Título | zzapp - Data de expiração opcional para vitrines |
| Estado | Active |
| Iteração | ZZAPPS\Vendas |
| Área | ZZAPPS\Vendas |
| Atribuído a | Julia Tavella Dapper |
| Prioridade | 2 |
| Criado em | 2026-06-22 |
| Última alteração | 2026-07-09 |
| Revis ões | 20 |
| Parent | Feature 196064 |
| Spike relacionada | Spike 198299 |
Descrição
Problema: As vitrines expiram em 30 dias, gerando retrabalho para vendedores que precisam recriar vitrines com os mesmos produtos, especialmente aquelas usadas como catálogo recorrente ou divulgação contínua.
Contexto: A expiração foi concebida para manter o catálogo atualizado e evitar vitrines com produtos descontinuados ou sem estoque. Porém, na prática, gera fricção para vendedores que usam as vitrines de forma contínua, o retrabalho de recriação foi citado espontaneamente em múltiplas respostas da última pesquisa feita com usuários.
Objetivo: Reduzir o retrabalho de recriação de vitrines, tornando a expiração mais flexível sem comprometer a integridade do catálogo exibido.
Indicadores de sucesso
- Redução na taxa de vitrines recriadas com produtos idênticos
- Aumento na frequência de uso de vitrines por vendedores que hoje usam raramente
- Crescimento de pedidos gerados a partir de vitrines
Dependências e Observações
- Parent: Feature 196064 — "zzapp - Notificações de expiração e renovação de vitrines"
- Spike técnica: 198299 — avaliou viabilidade e produziu plano de implementação
- Requisitos EARS: 197021-requisitos.md
- Design PR1 (API): 197021-design-showcase-api.md
- Design PR2 (zzapp): 197021-design-zzapp.md
- Escopo de menu: Minhas vitrines + Vitrine por histórico. Vitrine da marca (zzportal) fora do escopo.
- Decisão técnica D1: "Sem expiração" =
DateTime.MaxValueno Elasticsearch;nullna API/UI. - Decisão técnica D4: Default na UI; clear → never (sem re-default no server).
Critérios de Aceite
Dinâmica de uso
Durante a criação ou edição de uma vitrine, o vendedor poderá optar por definir uma data de expiração ou manter a vitrine sem prazo de expiração. Por default, a vitrine é criada com a regra de expiração atual (+ 30 dias), porém, o usuário pode remover esta data se entender necessário.
- Menu vitrines:
- Vitrines criadas pelo histórico de compras
- Minhas vitrines
- Atenção: Vitrines da marca não se enquadram neste critério, pois são construídas no zzportal.
CA-1 · Data de expiração opcional
O campo Data de expiração deve deixar de ser obrigatório na criação e edição de vitrines pelo vendedor.
CA-2 · Criação de vitrines sem expiração
Quando nenhuma data de expiração for informada, a regra de expiração atual (+ 30 dias) é mantida, porém, o usuário pode remover/editar esta data se entender necessário, respeitando o máximo 30 dias.
CA-3 · Edição da expiração
O vendedor deve poder adicionar, alterar ou remover a data de expiração de uma vitrine já existente, respeitando as permissões do fluxo.
CA-4 · Identificação da vigência
Vitrines sem data de expiração devem ser identificadas na listagem e nos detalhes com a informação "Sem data de expiração", em substituição à data.
CA-5 · Compatibilidade com regras existentes
A alteração não deve impactar as demais regras das vitrines, incluindo atualização automática de estoque, preços, disponibilidade dos produtos e compartilhamento dos links.
Tarefas Filhas
| # | ID | Título | Atribuído a | Tipo | Estado |
|---|---|---|---|---|---|
| — | — | Nenhuma task filha cadastrada no Azure DevOps | — | — | — |
Code Reviews
| Review | Escopo | Data | Status |
|---|---|---|---|
| — | — | — | — |
Serviços e Repos Impactados
Conforme plano da Spike 198299:
| Repo | Precisa alterar? | Módulos |
|---|---|---|
coezzion-service-showcase | Sim | Domain, Commands Store + Recommend, Validators Recommend, mapeamento DTO, unit tests |
coezzion_vendas_app | Sim | lib/screens/show_case/** (minhas + recommend), models create/update/list, date field clearable |
coezzion-portal | Não | Referência UX apenas |
coezzion-showcase-web | Não | — |
coezzion-service-jobs | Não | Product jobs permanecem (CA-5) |