From 27bb9ddd8866e17e2e32ff871b17ddf13e8afd84 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 12 Nov 2025 05:46:28 +0000 Subject: [PATCH] completionId: cgen-71c1b410dd7846edbba192884cc90564 cgen-71c1b410dd7846edbba192884cc90564 --- api/achievements/activate.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/api/achievements/activate.ts b/api/achievements/activate.ts index 83347c98..0681d382 100644 --- a/api/achievements/activate.ts +++ b/api/achievements/activate.ts @@ -149,6 +149,14 @@ export default async function handler(req: VercelRequest, res: VercelResponse) { const awardedAchievementIds: string[] = []; let godModeAwarded = false; + // Create map of achievement string IDs to UUIDs + const achievementIdMap = new Map( + CORE_ACHIEVEMENTS.map((ach) => [ + ach.id, + generateDeterministicUUID(ach.id), + ]), + ); + if (targetUserId) { const progressStats = { level: 100, @@ -182,7 +190,9 @@ export default async function handler(req: VercelRequest, res: VercelResponse) { ); for (const achievement of CORE_ACHIEVEMENTS) { - if (existingIds.has(achievement.id)) { + const achievementUuid = achievementIdMap.get(achievement.id)!; + + if (existingIds.has(achievementUuid)) { if (achievement.id === "god-mode") { godModeAwarded = true; } @@ -194,7 +204,7 @@ export default async function handler(req: VercelRequest, res: VercelResponse) { .insert({ id: randomUUID(), user_id: targetUserId, - achievement_id: achievement.id, + achievement_id: achievementUuid, earned_at: nowIso, }); @@ -208,7 +218,7 @@ export default async function handler(req: VercelRequest, res: VercelResponse) { } } - if (!godModeAwarded && existingIds.has("god-mode")) { + if (!godModeAwarded && existingIds.has(achievementIdMap.get("god-mode")!)) { godModeAwarded = true; } }