Skip to content

Add badge-to-user relationship and assign badge on achievement unlock#103

Merged
phertyameen merged 1 commit intomainfrom
feat/achievementUnlock
Jul 6, 2025
Merged

Add badge-to-user relationship and assign badge on achievement unlock#103
phertyameen merged 1 commit intomainfrom
feat/achievementUnlock

Conversation

@phertyameen
Copy link
Copy Markdown
Member

Closes issue #95
This PR enhances the achievement system with support for badge assignment:

Features Added
Established entity relationship:

User.badge: @manytoone(() => Badge) with optional onDelete: 'SET NULL'

Badge.users: @onetomany(() => User, user => user.badge)

Integrated badge assignment into unlocker logic:

When a user unlocks "Mind Master", their badge is automatically updated if the badge exists.

Seeder added for Achievement entities (Mind Master, Top 100)

Achievement unlocking:

Checks for completion thresholds

Assigns achievements accordingly

Optionally assigns badge (e.g., “Mind Master” badge)

Notes
Badges must be pre-seeded or exist in the DB; unlocker checks by title.

Cascade is not used from User → Badge to prevent accidental mutation of shared badge data.

This lays the foundation for displaying earned badges on user profiles or leaderboards.

@phertyameen phertyameen merged commit c014865 into main Jul 6, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant