feat(codes): mark a code dead once the owner confirms it in game

Game8 still lists Y1INABQB6DEX, 2BJ64QRZ7RT8 and PLDXIB886Y1S as active
Genshin codes after the game refused them. CODE_CHECKS records the
owner's in-game check; build-codes stamps the matching code confirmedDead,
and the Codes tab shows it expired: "Confirmed expired in game, 2026-10-20."

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas Winther
2026-10-20 03:34:52 +02:00
co-authored by Claude Opus 5.5
parent 7569aa6395
commit b8e8d44816
12 changed files with 178 additions and 12 deletions
+9
View File
@@ -12,6 +12,15 @@ export const RedeemCodeSchema = z.object({
.regex(/^\d{4}-\d{2}-\d{2}$/)
.nullable()
.optional(),
/**
* The day the repository owner tried the code in game and it no longer
* worked (`codeChecks.ts`). Only ever "dead": the source still supplies the
* code, its reward and its link.
*/
confirmedDead: z
.string()
.regex(/^\d{4}-\d{2}-\d{2}$/)
.optional(),
firstObservedAt: z.string().datetime(),
sourceUrl: z.string().url(),
});