Skip to content

feat: add achievement showcase with pinning and stats#3580

Draft
AmarTrebinjac wants to merge 2 commits intomainfrom
eng-690-achievement-showcase
Draft

feat: add achievement showcase with pinning and stats#3580
AmarTrebinjac wants to merge 2 commits intomainfrom
eng-690-achievement-showcase

Conversation

@AmarTrebinjac
Copy link
Contributor

Summary

  • Add showcasedAchievements to UserFlags for storing up to 3 pinned achievements per user
  • Add showcasedAchievements GraphQL query (public, by userId) and updateShowcasedAchievements mutation (authenticated)
  • Add totalPoints field to UserAchievementStats
  • Deduplicate achievement IDs and parallelize validation queries for better performance

Test plan

  • Integration tests for showcased achievements query (empty, with data, unknown user)
  • Integration tests for update mutation (pin, unpin, validation, limit enforcement, deduplication)
  • Integration tests for totalPoints in achievement stats

Closes ENG-690


Created by Huginn 🐦‍⬛

AmarTrebinjac and others added 2 commits February 13, 2026 11:48
Add showcasedAchievements to UserFlags for storing up to 3 pinned
achievements per user. Add GraphQL query for public showcase data,
mutation for updating showcase selection, and totalPoints to
UserAchievementStats. Include tests for all new functionality.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Deduplicate achievementIds in updateShowcasedAchievements to prevent
storing duplicates. Combine sequential DB queries into Promise.all
for better performance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pulumi
Copy link

pulumi bot commented Feb 13, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at 4addd9a) was successful.

Resource Changes

    Name                                                       Type                           Operation
~   vpc-native-generic-referral-reminder-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-clickhouse-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-opportunities-cron                 kubernetes:batch/v1:CronJob    update
-   vpc-native-api-db-migration-d4579eff                       kubernetes:batch/v1:Job        delete
~   vpc-native-clean-gifted-plus-cron                          kubernetes:batch/v1:CronJob    update
~   vpc-native-update-highlighted-views-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tags-str-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-temporal-deployment                             kubernetes:apps/v1:Deployment  update
~   vpc-native-user-profile-updated-sync-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-deployment                                      kubernetes:apps/v1:Deployment  update
~   vpc-native-hourly-notification-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-bg-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-update-views-cron                               kubernetes:batch/v1:CronJob    update
+   vpc-native-api-clickhouse-migration-c1c6dc3c               kubernetes:batch/v1:Job        create
~   vpc-native-user-profile-analytics-history-clickhouse-cron  kubernetes:batch/v1:CronJob    update
~   vpc-native-user-posts-analytics-refresh-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-history-day-clickhouse-cron      kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-tag-view-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-ws-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-update-current-streak-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-user-companies-cron                kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tag-recommendations-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-validate-active-users-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-expire-super-agent-trial-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-stale-user-transactions-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-update-trending-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment                  kubernetes:apps/v1:Deployment  update
~   vpc-native-private-deployment                              kubernetes:apps/v1:Deployment  update
-   vpc-native-api-clickhouse-migration-d4579eff               kubernetes:batch/v1:Job        delete
+   vpc-native-api-db-migration-c1c6dc3c                       kubernetes:batch/v1:Job        create
~   vpc-native-clean-zombie-images-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-daily-digest-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-calculate-top-readers-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-generate-search-invites-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-clickhouse-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-public-threshold-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-sync-subscription-with-cio-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-check-analytics-report-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-users-cron                         kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-cron                        kubernetes:batch/v1:CronJob    update
... and 1 other changes

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