UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

81 lines (80 loc) 4.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.gameTurnQueueItemSchema = exports.gameTurnSchema = exports.gameTurnTaskSchema = exports.gameTurnTaskStatusSchema = exports.gameTurnTaskTypeSchema = exports.gameTurnCheckSchema = exports.gameTurnStatusSchema = exports.createPurchaseInputSchema = exports.purchaseSchema = exports.purchaseItemSchema = exports.purchaseStatusSchema = exports.gameTicketSchema = exports.ticketSummarySchema = exports.ticketTypeSchema = exports.ticketUserTypeSchema = exports.gameTicketStatusSchema = void 0; const zod_1 = require("zod"); const Ticketing_const_1 = require("./Ticketing.const"); const game_1 = require("../game"); exports.gameTicketStatusSchema = zod_1.z.enum(Ticketing_const_1.GAME_TICKET_STATUS); exports.ticketUserTypeSchema = zod_1.z.enum(Ticketing_const_1.TICKET_USER_TYPE); exports.ticketTypeSchema = zod_1.z.enum(Ticketing_const_1.TICKET_TYPE); exports.ticketSummarySchema = zod_1.z.record(exports.ticketTypeSchema, zod_1.z.number()); exports.gameTicketSchema = zod_1.z.object({ id: zod_1.z.uuidv4(), purchaseId: zod_1.z.string(), sessionId: zod_1.z.string().optional().nullable(), gameTurnId: zod_1.z.string().optional().nullable(), playerId: zod_1.z.uuidv4().optional().nullable(), status: exports.gameTicketStatusSchema, type: exports.ticketTypeSchema.default(Ticketing_const_1.TICKET_TYPE.RACE), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), completedAt: zod_1.z.date().optional(), }); exports.purchaseStatusSchema = zod_1.z.enum(Ticketing_const_1.PURCHASE_STATUS); exports.purchaseItemSchema = zod_1.z.object({ ticketType: game_1.gameTypeSchema, quantity: zod_1.z.number().int().positive(), priceCents: zod_1.z.number().int().nonnegative(), }); exports.purchaseSchema = zod_1.z.object({ id: zod_1.z.uuidv4(), purchaseNumber: zod_1.z.number(), // Buyer can be null for Guest/On-Site purchases buyerUserId: zod_1.z.string().optional().nullable(), guestName: zod_1.z.string().optional().nullable(), guestContact: zod_1.z.string().optional().nullable(), items: zod_1.z.array(exports.purchaseItemSchema), totalAmountCents: zod_1.z.number().min(0), status: exports.purchaseStatusSchema.default(Ticketing_const_1.PURCHASE_STATUS.PENDING), // Deprecated fields (kept for backward compatibility if needed, or remove if safe) totalTickets: zod_1.z.number().optional(), ticketType: exports.ticketTypeSchema.optional(), paymentData: zod_1.z.any().optional(), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), }); exports.createPurchaseInputSchema = zod_1.z.object({ buyerUserId: zod_1.z.string().optional(), guestName: zod_1.z.string().optional(), guestContact: zod_1.z.string().optional(), items: zod_1.z.array(exports.purchaseItemSchema).min(1), }); exports.gameTurnStatusSchema = zod_1.z.enum(Ticketing_const_1.GAME_TURN_STATUS); exports.gameTurnCheckSchema = zod_1.z.enum(Ticketing_const_1.GAME_TURN_CHECK); exports.gameTurnTaskTypeSchema = zod_1.z.enum(Ticketing_const_1.GAME_TURN_TASK_TYPE); exports.gameTurnTaskStatusSchema = zod_1.z.enum(Ticketing_const_1.GAME_TURN_TASK_STATUS); exports.gameTurnTaskSchema = zod_1.z.object({ id: zod_1.z.string(), type: exports.gameTurnTaskTypeSchema, status: exports.gameTurnTaskStatusSchema, label: zod_1.z.string(), metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(), completedAt: zod_1.z.date().optional(), }); exports.gameTurnSchema = zod_1.z.object({ id: zod_1.z.string(), purchaseId: zod_1.z.string(), sessionId: zod_1.z.string().optional(), leaderPlayerId: zod_1.z.string(), gameTickets: zod_1.z.array(zod_1.z.string()), playerIds: zod_1.z.array(zod_1.z.string()), status: exports.gameTurnStatusSchema, tasks: zod_1.z.array(exports.gameTurnTaskSchema), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), startedAt: zod_1.z.date().optional(), completedAt: zod_1.z.date().optional(), }); exports.gameTurnQueueItemSchema = exports.gameTurnSchema.extend({ position: zod_1.z.number(), });