UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

66 lines (65 loc) 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreatePurchaseInternalSchema = exports.CreatePurchasePublicSchema = exports.PurchaseSchema = exports.GameTicketSchema = exports.TicketSummarySchema = exports.TicketTypeSchema = exports.TicketUserTypeSchema = exports.GameTicketStatusSchema = exports.TICKET_TYPE = exports.TICKET_USER_TYPE = exports.GAME_TICKET_STATUS = void 0; const zod_1 = require("zod"); exports.GAME_TICKET_STATUS = { CREATED: 'created', ASSIGNED: 'assigned', ACTIVE: 'active', COMPLETED: 'completed', }; exports.TICKET_USER_TYPE = { LEADER: 'leader', SUB_USER: 'sub-user', EXISTING: 'existing', GUEST: 'guest', }; exports.TICKET_TYPE = { RACE: 'race', BATTLE: 'battle', SOCCER: 'soccer', }; exports.GameTicketStatusSchema = zod_1.z.enum(exports.GAME_TICKET_STATUS); exports.TicketUserTypeSchema = zod_1.z.enum(exports.TICKET_USER_TYPE); exports.TicketTypeSchema = zod_1.z.enum(exports.TICKET_TYPE); exports.TicketSummarySchema = zod_1.z.record(exports.TicketTypeSchema, zod_1.z.number()); exports.GameTicketSchema = zod_1.z.object({ id: zod_1.z.string(), purchaseId: zod_1.z.string(), gameTurnId: zod_1.z.string(), ownerUsername: zod_1.z.string(), userType: exports.TicketUserTypeSchema, status: exports.GameTicketStatusSchema, type: exports.TicketTypeSchema.default(exports.TICKET_TYPE.RACE), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), completedAt: zod_1.z.date().optional(), }); exports.PurchaseSchema = zod_1.z.object({ id: zod_1.z.string(), purchaseNumber: zod_1.z.number(), buyerUserId: zod_1.z.string(), totalTickets: zod_1.z.number(), purchaseDate: zod_1.z.date(), ticketType: exports.TicketTypeSchema.default(exports.TICKET_TYPE.RACE), paymentData: zod_1.z.any().optional(), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), }); /** * Probably temporary as the purchase will be a webhook called by the provider (Stripe, PayPal, etc) */ exports.CreatePurchasePublicSchema = exports.PurchaseSchema.pick({ ticketType: true, }).extend({ ticketCount: zod_1.z.number(), }); /** * The public input doesn't receive a userId, as it's resolved on the backend */ exports.CreatePurchaseInternalSchema = exports.PurchaseSchema.pick({ ticketType: true, buyerUserId: true, }).extend({ ticketCount: zod_1.z.number(), });