Agreed — I don’t know that I’d recommend including deleted_at in the constraint at all. If you need those fields’ values to become “available” again after deletion, I’d add a delete method on the specific model that reassigns them — appends a timestamp or ‘deleted’ if they’re a string, and then calls super so it goes through the soft deletion logic.

Senior Software Engineer | www.adriennedomingus.com

Senior Software Engineer | www.adriennedomingus.com