award badges

This commit is contained in:
yohlo
2025-10-01 13:42:09 -05:00
parent 654041b6b6
commit 6224404aa9
7 changed files with 173 additions and 1 deletions

View File

@@ -351,6 +351,32 @@ export function createBadgesService(pb: PocketBase) {
);
},
async awardManualBadge(playerId: string, badgeId: string): Promise<BadgeProgress> {
// Get or create badge progress record
const existingProgress = await pb.collection("badge_progress").getFirstListItem(
`player = "${playerId}" && badge = "${badgeId}"`,
{ expand: 'badge' }
).catch(() => null);
if (existingProgress) {
// Update existing progress to mark as earned
const updated = await pb.collection("badge_progress").update(existingProgress.id, {
progress: 1,
earned: true,
}, { expand: 'badge' });
return transformBadgeProgress(updated);
}
// Create new progress record
const created = await pb.collection("badge_progress").create({
badge: badgeId,
player: playerId,
progress: 1,
earned: true,
}, { expand: 'badge' });
return transformBadgeProgress(created);
},
async migrateBadgeProgress(): Promise<{
success: boolean;
playersProcessed: number;