soft-delete.txt
Add soft delete to <the record>: <paste the model and the delete code>

- A deleted_at timestamp rather than removing the row.
- Every existing query excludes deleted records. Show me every query
  that needs changing — missing one is the whole risk here.
- A way to restore, and a way to permanently purge after <n> days.
- Unique constraints still work: a deleted record must not block
  reusing its email or slug. Say how you handled that.

Then tell me what this costs — where deleted rows will accumulate and
slow things down, and what I do about it.

The unique-constraint problem catches everyone. Someone deletes an account, tries to sign up again with the same email, and is told it's taken.