Use our own sound delete method when deleting from Sound querysets
Currently when deleting sounds in moderation we use the .delete() method on a queryset, which means that we don’t use our own override delete method of the model. This means sounds are deleted completely from DB without creating DeletedSound objects. This should not be the case as we want to store DeletedSound objects and also the data files (as long as the sounds are not deleted because of being illegal). In this way we will store spam sounds and also sounds “not appropriate” for freesound (e.g. music). This could be useful in the future, for example to build a spam classifier.
A few months ago, I deleted about 50 game sounds in my moderation queue. The user later clarified that they are the developer and creator. I sure felt bad and could only encourage to re-upload. I don't think they did.
Situations like this would also greatly benefit from sounds not actually being deleted.
This would probably mean that sounds identified as illegal should ideally also be stored (but not be accessible) ideally for a year.