feat: user deletion functionality #2212
Open
+439
−19
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.
Description
Implements account deletion functionality as requested in #603. This adds a comprehensive soft-delete system that allows users to permanently delete their accounts while preserving system integrity.
Closes #603
Key Features:
deletedAt
timestamp to maintain referential integrity[deleted]
+ hashTechnical Implementation:
deletedAt
field to User model with database migrationdeleteAccount
GraphQL mutation with proper validation[deleted]
for anonymized usersDecisions Made:
Screenshots
Additional Context
Several implementation decisions were made that weren't explicitly defined in the original issue:
The authentication flow required updates in multiple places (NextAuth callbacks, SSR Apollo client, etc.) to properly handle deleted accounts across the application.
Checklist
Are your changes backwards compatible? Please answer below:
Yes, fully backwards compatible. Existing users are unaffected, and the
deletedAt
field is nullable. No breaking changes to existing APIs or database schema.On a scale of 1-10 how well and how have you QA'd this change and any features it might affect? Please answer below:
7/10 - Tested core deletion flow, authentication rejection, UI display, and balance handling. Would benefit from additional testing of edge cases around zap distribution and the daily earnings collection job in production environment.
For frontend changes: Tested on mobile, light and dark mode? Please answer below:
Yes - The settings UI changes had mobile and dark mode testing. The
[deleted]
user display in comments/posts already worked.Did you introduce any new environment variables? If so, call them out explicitly here:
No new environment variables introduced. Uses existing
USER_ID.sn
constant for system donations.