UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

74 lines (73 loc) 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addTeamMemberSchema = exports.answerJoinRequestSchema = exports.createJoinRequestSchema = exports.racingTeamWithMembersSchema = exports.teamMemberWithPlayerSchema = exports.teamMemberSchema = exports.joinRequestSchema = exports.paginatedRacingTeamSummarySchema = exports.paginatedRacingTeamSchema = exports.racingTeamSummarySchema = exports.filterRacingTeamSchema = exports.updateRacingTeamSchema = exports.createRacingTeamSchema = exports.racingTeamSchema = void 0; const zod_1 = require("zod"); const pagination_1 = require("../pagination"); const RacingTeam_const_1 = require("./RacingTeam.const"); const Player_schema_1 = require("../player/Player.schema"); // --- Team Schemas --- exports.racingTeamSchema = zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string().min(3).max(50), imageUrl: zod_1.z.url().optional(), adminUserId: zod_1.z.string(), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), }); exports.createRacingTeamSchema = exports.racingTeamSchema.omit({ id: true, createdAt: true, updatedAt: true, adminUserId: true, }); exports.updateRacingTeamSchema = exports.racingTeamSchema.partial(); exports.filterRacingTeamSchema = zod_1.z.object({ name: zod_1.z.string().optional(), adminUserId: zod_1.z.string().optional(), page: zod_1.z.coerce.number().min(1).default(1), limit: zod_1.z.coerce.number().min(1).max(100).default(10), cursor: zod_1.z.string().optional(), }); exports.racingTeamSummarySchema = exports.racingTeamSchema.pick({ id: true, name: true, imageUrl: true, }); exports.paginatedRacingTeamSchema = (0, pagination_1.paginatedResponseSchema)(exports.racingTeamSchema); exports.paginatedRacingTeamSummarySchema = (0, pagination_1.paginatedResponseSchema)(exports.racingTeamSummarySchema); // --- Membership Schemas --- exports.joinRequestSchema = zod_1.z.object({ id: zod_1.z.string(), racingTeamId: zod_1.z.string(), playerId: zod_1.z.string(), status: zod_1.z.enum(RacingTeam_const_1.JOIN_REQUEST_STATUS), createdAt: zod_1.z.date(), updatedAt: zod_1.z.date(), }); exports.teamMemberSchema = zod_1.z.object({ id: zod_1.z.string(), racingTeamId: zod_1.z.string(), playerId: zod_1.z.string(), role: zod_1.z.enum(RacingTeam_const_1.RACING_TEAM_ROLE), joinedAt: zod_1.z.date(), }); exports.teamMemberWithPlayerSchema = Player_schema_1.playerSchema.extend({ role: zod_1.z.enum(RacingTeam_const_1.RACING_TEAM_ROLE), joinedAt: zod_1.z.date(), }); exports.racingTeamWithMembersSchema = exports.racingTeamSchema.extend({ members: zod_1.z.array(exports.teamMemberWithPlayerSchema), }); exports.createJoinRequestSchema = zod_1.z.object({ racingTeamId: zod_1.z.string(), playerId: zod_1.z.string(), }); exports.answerJoinRequestSchema = zod_1.z.object({ racingTeamId: zod_1.z.string(), targetPlayerId: zod_1.z.string(), accepted: zod_1.z.boolean(), }); exports.addTeamMemberSchema = zod_1.z.object({ nickname: zod_1.z.string().min(2).max(20), birthDate: zod_1.z.coerce.date(), });