Skip to content

Conversation

@rebelchris
Copy link
Contributor

Summary

  • Add UserHotTakeUpvote entity and migration for tracking upvotes
  • Add upvotes column to UserHotTake entity with proper increment/decrement
  • Implement voteHotTake function with transaction support
  • Add GraphORM config for upvoted field resolution
  • Add HotTake to UserVoteEntity enum

Test plan

  • Run migration: pnpm run db:migrate:latest
  • Test upvoting a hot take via GraphQL mutation
  • Test removing upvote (vote with 0)
  • Verify downvote returns error
  • Verify upvotes count increments/decrements correctly
  • Run tests: NODE_ENV=test npx jest __tests__/userHotTake.ts --testEnvironment=node --runInBand

⚠️ Note: The migration file needs manual cleanup - remove schema drift and keep only the hot take upvote changes.

🤖 Generated with Claude Code

github-actions bot and others added 3 commits January 22, 2026 19:08
- Add UserHotTakeUpvote entity to track user upvotes
- Add upvotes column to UserHotTake entity
- Extend vote mutation to support hot_take entity
- Add upvotes and upvoted fields to GraphQL schema
- Implement voteHotTake function with upvote/remove support
- Add GraphORM mappings for upvoted field
- Add comprehensive test coverage for upvote functionality
- Hot takes only support upvotes, not downvotes

Closes #3485

Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com>
…ssue-3485-20260122-1858

# Conflicts:
#	src/graphorm/index.ts
The upvotes column on UserHotTake was not being updated when users voted.
Now uses a transaction to atomically:
- Check if upvote already exists
- Insert/delete the upvote record
- Increment/decrement the upvotes count

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

pulumi bot commented Jan 23, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at 003f966) was successful.

Resource Changes

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

rebelchris and others added 8 commits January 23, 2026 11:03
Rename UserHotTake entity to HotTake for content, create new UserHotTake
join table with vote column (like UserPost). Add postgres triggers for
automatic upvote count maintenance. Rename GraphQL types and resolvers
from UserHotTake to HotTake for consistency.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update test queries/mutations to use new names (hotTakes, addHotTake, etc.)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rebelchris rebelchris merged commit 5c7865d into main Jan 23, 2026
10 checks passed
@rebelchris rebelchris deleted the claude/issue-3485-20260122-1858 branch January 23, 2026 12:24
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.

2 participants