From 25f61d456cec554aa59180501524e326e5bc25ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20F=C3=B6rtsch?= Date: Fri, 13 Mar 2026 11:23:10 +0100 Subject: [PATCH] add completedBingoCard schema, request_new_bingo_card WS message --- packages/shared/src/game-types.ts | 10 ++++++++++ packages/shared/src/ws-messages.ts | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/packages/shared/src/game-types.ts b/packages/shared/src/game-types.ts index 6de2ddd..9c72450 100644 --- a/packages/shared/src/game-types.ts +++ b/packages/shared/src/game-types.ts @@ -87,6 +87,15 @@ export const bingoCardSchema = z.object({ export type BingoCard = z.infer +export const completedBingoCardSchema = z.object({ + playerId: z.string(), + displayName: z.string(), + card: bingoCardSchema, + completedAt: z.string(), +}) + +export type CompletedBingoCard = z.infer + // ─── Quiz ──────────────────────────────────────────────────────── export const quizQuestionSchema = z.object({ @@ -134,6 +143,7 @@ export const gameStateSchema = z.object({ playerId: z.string(), displayName: z.string(), })), + completedBingoCards: z.array(completedBingoCardSchema), // Quiz currentQuizQuestion: quizQuestionSchema.nullable(), myQuizBuzzStatus: z.enum(["can_buzz", "already_buzzed", "excluded", "waiting"]).nullable(), diff --git a/packages/shared/src/ws-messages.ts b/packages/shared/src/ws-messages.ts index 3f3497f..9d88237 100644 --- a/packages/shared/src/ws-messages.ts +++ b/packages/shared/src/ws-messages.ts @@ -54,6 +54,10 @@ export const tapBingoSquareMessage = z.object({ tropeId: z.string(), }) +export const requestNewBingoCardMessage = z.object({ + type: z.literal("request_new_bingo_card"), +}) + export const submitActualResultsMessage = z.object({ type: z.literal("submit_actual_results"), winner: z.string(), @@ -90,6 +94,7 @@ export const clientMessage = z.discriminatedUnion("type", [ closeJuryVoteMessage, submitJuryVoteMessage, tapBingoSquareMessage, + requestNewBingoCardMessage, submitActualResultsMessage, startQuizQuestionMessage, buzzMessage,