Prevent double check-in and check-out: an example of domain logic via event-sourced aggregates #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch implements a feature (that will be specified later on, for the sake of the simplicity of the example) that prevents double check-in and checking out when not checked in.
To be kept in mind:
UserCheckedIn
andUserCheckedOut
are possible, since the business rule is only enforced once this patch is merged, hence past state may be inconsistent with new rules. This is exactly like in typical legal systems: laws are not retroactive.UserCheckedIn
andUserCheckedOut
must therefore be either ignored or handled gracefully, so that future interactions do not cause awkwardness (if somebody checked in twice, for example, they shouldn't be required to check out twice, but just once)