@battle-racing/br-common-lib
Version:
Common library for all Battle Racing Repositorios
81 lines (80 loc) • 4.15 kB
JavaScript
"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(),
});