O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas. Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# PROMPT 09 — Mapeamento 1:1 e pré-visualização
|
|
|
|
Use o MASTER CONTEXT.
|
|
|
|
## Objetivo
|
|
|
|
Implementar a etapa central do produto: mapear colunas fonte para colunas modelo e revisar o resultado antes de processar.
|
|
|
|
## Interface de mapeamento
|
|
|
|
- mostrar metadados da fonte selecionada e do modelo;
|
|
- apresentar colunas fonte e destino claramente;
|
|
- permitir `Select` como interação básica obrigatória;
|
|
- adicionar drag-and-drop com `@dnd-kit` somente como melhoria, mantendo alternativa completa por teclado/select;
|
|
- marcar colunas obrigatórias do modelo;
|
|
- impedir mapeamento duplicado em ambos os sentidos;
|
|
- permitir deixar colunas não obrigatórias sem mapeamento;
|
|
- botão de continuar desabilitado enquanto obrigatórias faltarem;
|
|
- mensagem textual indicando exatamente o que falta.
|
|
|
|
## Persistência
|
|
|
|
- mapping pertence à operação/fonte atual;
|
|
- salvar de forma suficiente para retomar a jornada da operação, mas não convertê-lo em template reutilizável;
|
|
- invalidar/recalcular quando fonte/modelo/header/aba mudar.
|
|
|
|
## Preview
|
|
|
|
Antes do processamento:
|
|
- gerar amostra da estrutura resultante;
|
|
- respeitar ordem/colunas do modelo;
|
|
- não modificar o modelo persistido;
|
|
- deixar claro que é prévia;
|
|
- permitir voltar ao mapeamento sem perder estado válido;
|
|
- permitir confirmar processamento.
|
|
|
|
## Acessibilidade
|
|
|
|
- drag via teclado ou alternativa equivalente;
|
|
- labels explícitos;
|
|
- foco previsível;
|
|
- estados não dependem só de cor.
|
|
|
|
## Testes
|
|
|
|
- 1:1;
|
|
- obrigatórias;
|
|
- conflito;
|
|
- desmapear/remapear;
|
|
- troca de fonte;
|
|
- troca de aba/header;
|
|
- preview com ordem do modelo;
|
|
- navegação por teclado.
|
|
|
|
## Entrega
|
|
|
|
Documente o algoritmo de validação de mapping e o contrato do preview.
|