Voltar ao PlanoACT-5.3.2
Corrigir QuantidadeCarros-- com UPDATE atomico (race condition critica)
2a Pass. MedioMediaEsforco: MComplexidade: MediaParalelizavel
Modulos Impactados
OfertasAceiteResultApplier.csRegistrarOfertaService.cs
Passos de Implementacao
- 1Substituir `rota.QuantidadeCarros--; await _rotaManager.UpdateAsync(...)` por SQL: `UPDATE AppRotas SET QuantidadeCarros = QuantidadeCarros - 1 WHERE Id = ? AND QuantidadeCarros > 0`
- 2Verificar o numero de linhas afetadas — se 0, o aceite deve ser revertido (contador ja zerado por outro ciclo)
- 3Alternativamente: adicionar `ConcurrencyStamp` na entidade `Rota` e usar optimistic concurrency do EF Core
Decremento em memoria sem UPDATE atomico pode causar over-accept de fretes
Aceite de mais fretes do que o permitido pelas regras de rota