feat: Prevent duplicate climbs based on selected holds #609
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.
Summary
holds_hashcolumn with index for O(1) duplicate lookup instead of expensive JOINsChanges
Database
holds_hashcolumn toboard_climbstable(board_type, layout_id, holds_hash)for efficient lookupsBackend
generateHoldsHash()utility that produces deterministic hashes from framessaveClimbto check for duplicates before insertingisDuplicate,existingClimbUuid, andexistingClimbNameif duplicate foundFrontend
Scripts
backfill-holds-hash.tsscript to populate hash for existing climbsTest plan
npm run build:web→ passesnpm run db:migrate🤖 Generated with Claude Code