[DÚVIDA] Como fazer a ordenação de leads dentro de um pipeline de vendas
Introdução
Olá pessoal, atualmente estou trabalhando em um novo módulo do sistema da empresa onde trabalho. Esse novo módulo envolve a criação de funis de vendas, onde os executivos da empresa podem cadastrar leads e gerenciar em que etapa da prospecção e venda eles estão.
Como pode ser observado na imagem abaixo, dentro de um pipeline existem diversas colunas, que como foi dito anteriormente, servem para gerenciar as etapas de prospecção e venda dos leads. Dentro de cada coluna, há diversos cards, que representam os negócios (deals, leads) daquele vendedor.
Dúvida
Agora vem a minha dúvida: como fazer a ordenação desses leads dentro das colunas de maneira eficiente, sem precisar fazer alterações em massa no banco? Quero que seja possível para o usuário arrastar leads para outras colunas e organizar na ordem que desejar, podendo, por exemplo, colocar um certo lead abaixo de outros. Alguém tem alguma solução performática para esse problema?
Uma das soluções que me apresentaram foi adicionar um atributo order
(float) no banco e, sempre que a ordem de um card for alterada, calcular a média do order
dos cards acima e abaixo. No entanto, não sei se essa é uma boa ideia.