Estes cards são de algum framework? Verificou se eles emitem algum evento quando sao reposicionados entre colunas e linhas? Se emitem evento, quais dados retornam? Assim talvez vc poderia remapear o objeto. Isso porque imagino que a origem dos dados possa ser algo assim:
{ qualified:[{id:9,order:1,name:"Fulanox"},{id:3,order:2,name:"Fulanoy"},{id:1,order:3,name:"Fulanoz"}], contactmade:[{id:2,order:1,name:"Fulanoa"},{id:4,order:2,name:"Fulanob"},{id:5,order:3,name:"Fulanoc"}] }
Se mudar o id 9 para a coluna contactmade na posição 2
obj.qualified[0].newposition = 2 obj.contactmade.push(qualified[0]) obj.qualified[0].del = true
depois de marcar as mudanças percorra o objeto e remova os indices onde 'del==true', e reordene a coluna que recebeu novo objeto deixando-o na ordem igual a newposition e finalmente persista o objeto no banco de dados.
Em resumo, minha análise foi imaginando que a origem dos dados e um objeto json parecido com o exemplo acima(com todas as colunas) e que os cards emitem eventos com dados das posições, o que permite alterar o json em memoria e fazer um refresh com o objeto alterado.
Acredito que nao seja a solução mas espero contribua de alguma forma.
Boa sorte!