From d9d9e97025c70c3ba7ebb0c211c8b6bd0f20fc0d Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sun, 5 Oct 2025 00:08:33 +0000 Subject: [PATCH] Seed core achievements for target user cgen-7f0f1ffc78a545f9a60c8e000675ded8 --- api/achievements/activate.ts | 39 +++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/api/achievements/activate.ts b/api/achievements/activate.ts index ff7e054a..672e4533 100644 --- a/api/achievements/activate.ts +++ b/api/achievements/activate.ts @@ -140,7 +140,9 @@ export default async function handler( } } + const awardedAchievementIds: string[] = []; let godModeAwarded = false; + if (targetUserId) { const progressStats = { level: 100, @@ -159,35 +161,54 @@ export default async function handler( }) .eq("id", targetUserId); - const { data: existingGodMode } = await admin + const { data: existingRows, error: existingError } = await admin .from("user_achievements") - .select("id") - .eq("user_id", targetUserId) - .eq("achievement_id", "god-mode") - .maybeSingle(); + .select("achievement_id") + .eq("user_id", targetUserId); + + if (existingError) { + throw existingError; + } + + const existingIds = new Set((existingRows ?? []).map((row: any) => row.achievement_id)); + + for (const achievement of CORE_ACHIEVEMENTS) { + if (existingIds.has(achievement.id)) { + if (achievement.id === "god-mode") { + godModeAwarded = true; + } + continue; + } - if (!existingGodMode) { const { error: insertError } = await admin .from("user_achievements") .insert({ id: randomUUID(), user_id: targetUserId, - achievement_id: "god-mode", + achievement_id: achievement.id, earned_at: nowIso, }); - if (insertError) { + if (insertError && insertError.code !== "23505") { throw insertError; } + + awardedAchievementIds.push(achievement.id); + if (achievement.id === "god-mode") { + godModeAwarded = true; + } } - godModeAwarded = true; + if (!godModeAwarded && existingIds.has("god-mode")) { + godModeAwarded = true; + } } return res.json({ ok: true, achievementsSeeded: achievementResults.length, godModeAwarded, + awardedAchievementIds, targetUserId, }); } catch (error: any) {