93d0f2b208313ec76a5d173fbb0dc0c4389e6ec9
addMovement() negates quantity internally for OUT (delta = -quantity)
and applies it directly for IN. Nothing stopped a negative quantity
from being submitted, so e.g. { type: 'OUT', quantity: -5 } would
compute delta = -(-5) = +5 - silently ADDING stock while being
recorded in the audit trail as a removal. The inverse held for IN.
ADJUSTMENT is the one type that must stay allowed to be negative,
since that's the only way to correct a stock count downward, so this
is a service-level guard (BadRequestException) rather than a DTO
validator - class-validator's @ValidateIf skips every validator on a
property when its condition is false, including @IsNumber, so it
can't express "always a number, but only sometimes positive" cleanly;
verified this empirically before choosing the service-level approach.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Description
ApiCore - Imkereidokumentationssoftware
https://apicore.encry.de/
7.6 MiB
0 Stars
1 Watchers
0 Forks
Languages
TypeScript
98.5%
JavaScript
0.8%
Python
0.3%
CSS
0.2%
PLpgSQL
0.1%