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