87 lines
3.8 KiB
Markdown
87 lines
3.8 KiB
Markdown
# Backlog de Features — Comparador de Notas
|
||
|
||
> Features avaliadas em 03/03/2026. Organizadas por categoria e esforço estimado.
|
||
|
||
|
||
## Média Prioridade
|
||
|
||
### F-03 — Preview de Colunas Antes da Análise (Isso já existe?)
|
||
|
||
**Problema:** Erros de mapeamento de colunas (índice errado, encoding incorreto) só são descobertos depois da importação, que pode falhar silenciosamente com "0 notas válidas".
|
||
|
||
**Solução:** Na tela de configuração de colunas, exibir uma tabela das primeiras 5 linhas mostrando como os campos serão interpretados, com highlight em células que falhariam o parse.
|
||
|
||
**Escopo técnico:**
|
||
- Função `pre_visualizar(caminho, layout, n_linhas: usize) -> Vec<LinhaPreview>`
|
||
- `LinhaPreview`: `{ numero: Result<u64>, serie: Result<String>, valor: Result<Decimal>, ... }`
|
||
- Widget de tabela em `configuracao_colunas.rs`
|
||
- Atualizar preview ao mudar qualquer campo de configuração (via `changed()`)
|
||
|
||
**Esforço estimado:** Alto (4–6h)
|
||
**Impacto:** Alto — reduz drasticamente "por que não importou nada?"
|
||
|
||
**Observações:**
|
||
Verificar se já existe no codigo, pois na tela de configuração do Layout ele exibe as 5 primeiras linhas do arquivo.
|
||
|
||
---
|
||
|
||
### F-06 — Auto-detecção de Delimitador CSV (Util)
|
||
|
||
**Problema:** O usuário precisa saber antecipadamente qual delimitador o arquivo usa (`,`, `;`, `\t`). Arquivos gerados por diferentes sistemas variam.
|
||
|
||
**Solução:** Ao selecionar o arquivo CSV, amostrar as primeiras 5 linhas e contar ocorrências de cada delimitador candidato. Sugerir o mais frequente como padrão, mantendo a ComboBox editável.
|
||
|
||
**Escopo técnico:**
|
||
- Função `detectar_delimitador(primeiras_linhas: &[&str]) -> char`
|
||
- Chamar na transição para `ConfigurandoColunas` quando `TipoArquivo::Csv`
|
||
- Pré-selecionar na ComboBox sem impedir mudança manual
|
||
|
||
**Esforço estimado:** Médio (2h)
|
||
**Impacto:** Baixo-Médio — reduz um passo de configuração na maioria dos casos
|
||
|
||
---
|
||
|
||
## Baixa Prioridade
|
||
|
||
### F-07 — Auto-detecção de Encoding CSV (Util)
|
||
|
||
**Problema:** Arquivos gerados por sistemas legados brasileiros frequentemente usam `windows-1252`, mas o padrão selecionado é `utf-8`. O usuário descobre o problema somente ao ver caracteres estranhos nos dados.
|
||
|
||
**Solução:** Tentar ler as primeiras linhas em `utf-8`; se houver erro de decodificação, sugerir automaticamente `windows-1252` com aviso visual na tela de configuração.
|
||
|
||
**Escopo técnico:**
|
||
- Função `detectar_encoding(caminho: &Path) -> String`
|
||
- Usar `encoding_rs` (já dependência) para tentar decode e verificar `had_errors`
|
||
- Aviso na tela de configuração: "Encoding detectado: windows-1252"
|
||
|
||
**Esforço estimado:** Médio (2h)
|
||
**Impacto:** Baixo — problema raro, mas confuso quando ocorre
|
||
|
||
---
|
||
|
||
### F-09 — Paginação Automática de Faltantes no PDF (Util)
|
||
|
||
**Problema:** PDFs com muitos faltantes (ex: 5.000 números) geram um único bloco de texto muito longo, difícil de ler e imprimir.
|
||
|
||
**Solução:** No `pdf_generator.rs`, ao adicionar a lista de faltantes, agrupar em intervalos contíguos (usando a função `agrupar_contiguos` já implementada) e formatar como `100–104 (5 notas)`. Reduz drasticamente o tamanho do PDF e melhora legibilidade.
|
||
|
||
**Escopo técnico:**
|
||
- Importar `agrupar_contiguos` em `pdf_generator.rs`
|
||
- Substituir o `join(", ")` atual pelo formato de intervalos
|
||
- Sem novas dependências
|
||
|
||
**Esforço estimado:** Baixo (30min)
|
||
**Impacto:** Baixo-Médio — melhora legibilidade de PDFs com muitos faltantes
|
||
|
||
> **Nota:** Esta feature é especialmente fácil porque a lógica de agrupamento já existe — é só aplicar no PDF.
|
||
|
||
---
|
||
|
||
## Resumo
|
||
|
||
| ID | Feature | Esforço | Impacto | Prioridade | Status |
|
||
|---|---|---|---|---|---|
|
||
| F-03 | Preview de colunas antes da análise | Alto | Alto | Média |
|
||
| F-07 | Auto-detecção de delimitador CSV | Médio | Baixo-Médio | Média |
|
||
| F-08 | Auto-detecção de encoding CSV | Médio | Baixo | Baixa |
|