UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

64 lines (63 loc) 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bulkCreateGameTurnSchema = exports.assignSessionTicketsInputSchema = exports.createGameTurnInputSchema = exports.updateSessionStatusSchema = exports.addExistingPlayersSchema = exports.joinSessionSchema = exports.createSessionInputSchema = exports.gameSessionWithPlayersSchema = exports.gameSessionSchema = exports.sessionTicketSchema = exports.sessionStatusSchema = void 0; const zod_1 = require("zod"); const Session_const_1 = require("./Session.const"); const Game_schema_1 = require("../game/Game.schema"); const Player_schema_1 = require("../player/Player.schema"); const Ticketing_schema_1 = require("../ticketing/Ticketing.schema"); exports.sessionStatusSchema = zod_1.z.enum(Session_const_1.SESSION_STATUS); exports.sessionTicketSchema = zod_1.z.object({ quantity: zod_1.z.number().int().positive(), type: Game_schema_1.gameTypeSchema, }); exports.gameSessionSchema = zod_1.z.object({ id: zod_1.z.uuidv4(), code: zod_1.z.string().length(6), // 6-char alphanumeric contactPhone: zod_1.z.string().optional(), userId: zod_1.z.string().optional().nullable(), tickets: zod_1.z.array(Ticketing_schema_1.gameTicketSchema).optional(), playerIds: zod_1.z.array(zod_1.z.uuidv4()), linkedPurchaseId: zod_1.z.string().optional(), status: exports.sessionStatusSchema.default(Session_const_1.SESSION_STATUS.REGISTRATION), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), }); exports.gameSessionWithPlayersSchema = exports.gameSessionSchema.extend({ players: zod_1.z.array(Player_schema_1.playerSchema), turns: zod_1.z.array(Ticketing_schema_1.gameTurnSchema).optional(), }); exports.createSessionInputSchema = zod_1.z.object({ contactPhone: zod_1.z.string().optional(), userId: zod_1.z.string().optional().nullable(), tickets: zod_1.z.array(exports.sessionTicketSchema).min(1), }); exports.joinSessionSchema = zod_1.z.object({ nickname: zod_1.z.string().min(2), birthDate: zod_1.z.coerce.date(), }); exports.addExistingPlayersSchema = zod_1.z.object({ playerIds: zod_1.z.array(zod_1.z.uuidv4()).min(1), }); exports.updateSessionStatusSchema = zod_1.z.object({ status: exports.sessionStatusSchema, }); exports.createGameTurnInputSchema = zod_1.z.object({ assignments: zod_1.z .array(zod_1.z.object({ ticketId: zod_1.z.string(), playerId: zod_1.z.uuidv4(), })) .min(1), }); exports.assignSessionTicketsInputSchema = zod_1.z.object({ assignments: zod_1.z .array(zod_1.z.object({ ticketId: zod_1.z.string(), playerId: zod_1.z.uuidv4(), })) .min(1), }); exports.bulkCreateGameTurnSchema = zod_1.z.object({ turns: zod_1.z.array(exports.createGameTurnInputSchema).min(1), });