SOS-RS / backend

Auxílio RS: Projetos de Resposta a Emergências por Chuvas e Alagamentos
https://sos-rs.com
MIT License
713 stars 306 forks source link

hotfix: Correção da Atualização Inconsistente de Prioridade em Shelter Supplies #72

Closed fagundesjg closed 4 months ago

fagundesjg commented 4 months ago

Este Pull Request aborda uma inconsistência no mecanismo de atualização para shelter_supplies em lote a partir do endpoint PUT shelter/supplies//many e seus correspondentes shelters.

As atualizações no shelter_supply.priority deste endpoint não estavam refletiam no shelter.priority_sum, que é crucial para a ordenação dos abrigos por prioridade decrescente. Este descuido poderia levar a ordenações incorretas e agora foi corrigido.

Alterações

  1. Atualizado o método ShelterSupplyService.updateMany para garantir que qualquer alteração em shelter_supply.priority também acione uma atualização no shelter.priority_sum correspondente.
  2. Adicionada uma transação para garantir que as atualizações em shelter_supplies e shelters sejam atômicas, evitando atualizações parciais.

Por que isso é importante?

O shelter.priority_sum é um campo derivado usado para ordenar os abrigos com base na prioridade agregada de seus suprimentos. Garantir que este campo seja atualizado precisamente é crucial para manter a integridade dos nossos algoritmos de ordenação e, por extensão, a funcionalidade do sistema que depende dessas ordenações.

Como testar

Modifique a priority de uma ou mais entradas em shelter_supplies. Verifique que o shelter.priority_sum correspondente é atualizado corretamente. Confira a ordenação dos abrigos para garantir que eles refletem as prioridades atualizadas.