feat: Add ability to soft delete fees #2233
Merged
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.
Context
We already utilize the
discard
gem for soft deletion in other models within our application. However, the fees model currently lacks this functionality. Additionally, there is a need to ensure that fees associated with invoices are protected from deletion to maintain data integrity.Description
This PR extends the use of the
discard
gem to the fees model, enabling the soft deletion of fees. Furthermore, a validation is added to ensure that only fees not attached to any invoice can be deleted. If a deletion attempt is made on a fee associated with an invoice, the system will respond with a405 Method Not Allowed
status and an error codeinvoiced_fee
. This ensures that while fees can be logically removed from active use, those associated with invoices remain intact, preserving the integrity of invoice-related data.