Refactor: Padronização da coluna 'Tipo' para garantir integridade dos dados
Problema
Atualmente, o campo Tipo no formulário de "Novo Item" aceita entrada de texto livre (String). Isso gera uma inconsistência crítica no banco de dados, permitindo que usuários cadastrem o mesmo tipo de diversas formas (ex: "Uno", "arduino uno", "UNO", "Unno"). Essa falta de padrão impossibilita a criação de filtros precisos, relatórios de estoque confiáveis e quebra a escalabilidade do sistema.
Sugestão
Substituir o campo de texto livre por uma entrada controlada, utilizando um ENUM no backend e um componente de Autocomplete/Select no frontend.
- Integridade: Garante que apenas valores pré-definidos entrem no banco.
- UX: Facilita a escolha do usuário com sugestões automáticas enquanto ele digita.
- Performance: Melhora a eficiência de buscas e indexação no banco de dados.
Implementação Proposta
- Backend: Criação de um
enum TipoItem e anotação @Enumerated(EnumType.STRING) na entidade Item.
- Database: Nova migration do Flyway para ajustar a coluna na tabela
item.
- Frontend: Integração de um componente de busca para seleção dos tipos.
Nota: Estou aberto a novas ideias sobre como implementar essa trava (seja via ENUM ou outros), mas o foco principal é a correção para a padronização dos dados.
Refactor: Padronização da coluna 'Tipo' para garantir integridade dos dados
Problema
Atualmente, o campo Tipo no formulário de "Novo Item" aceita entrada de texto livre (
String). Isso gera uma inconsistência crítica no banco de dados, permitindo que usuários cadastrem o mesmo tipo de diversas formas (ex: "Uno", "arduino uno", "UNO", "Unno"). Essa falta de padrão impossibilita a criação de filtros precisos, relatórios de estoque confiáveis e quebra a escalabilidade do sistema.Sugestão
Substituir o campo de texto livre por uma entrada controlada, utilizando um ENUM no backend e um componente de Autocomplete/Select no frontend.
Implementação Proposta
enum TipoIteme anotação@Enumerated(EnumType.STRING)na entidadeItem.item.