gcrk
The only question left for me is if we want to allow reverts of changes or not. If yes, we need some additional mechanics to actually make Changes revertable. However, I am not sure if thats required.
In my opinion, reverting a change should be treated as another change. We could think of this a bit like git revert commits, where we log all changes in sequence.
- User A suggests a change to Album A
- Admin A approves the suggestion and the change is applied to Album A
- User B takes issue to the change and submits a new change that reverts the change made to Album A
- Admin A looks at the change and decides to apply it, thereby returning Album A to the point it was at before
In this workflow, all history is kept in a simple append-only format that can be easily followed, and reasons can be left for each approval.