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