UNPKG

@guildxyz/bev3

Version:

Schemas and types related to the Guild.xyz v3 API

119 lines (116 loc) 3.14 kB
import { z } from 'zod'; export const RoleGroupFullSchema = z.object({ id: z .string() .regex( new RegExp( "^[0-9a-f]{8}-[0-9a-f]{4}-[45][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", ), ) .describe("Unique identifier (UUID v4 or v5 format)"), legacyId: z .string() .max(50) .describe("Legacy system unique identifier for backward compatibility") .optional(), createdAt: z .number() .int() .gte(1) .describe("Unix timestamp of creation date"), updatedAt: z.number().int().gte(1).describe("Unix timestamp of last update"), system: z .object({}) .catchall(z.any()) .describe("System-managed settings for internal classification") .optional(), name: z .string() .min(1) .max(255) .describe("Name of the template (1-255 characters)"), urlName: z .string() .max(255) .describe("URL-friendly name (optional, max 255 characters)") .optional(), description: z .string() .max(3000) .describe( "Detailed description of the template (optional, max 3000 characters)", ) .optional(), imageUrl: z .string() .max(255) .describe("URL to the template's primary image") .optional(), backgroundImageUrl: z .string() .max(255) .describe("URL to the template's background image") .optional(), visibility: z .object({}) .catchall(z.any()) .describe("Conditions that determine template visibility") .optional(), settings: z .object({}) .catchall(z.any()) .describe("Template-specific settings") .optional(), searchTags: z .array(z.string().max(50)) .max(20) .describe("Tags used for template search functionality") .optional(), categoryTags: z .array(z.string().max(30)) .max(10) .describe("Category classification tags") .optional(), guildId: z.string().describe("The ID of the guild").optional(), adminRoleId: z .string() .describe("An admin role that accumulates all the privileges.") .optional(), type: z .enum(["CATEGORY", "QUEST", "CAMPAIGN", "EVENT"]) .describe("The type of role group") .optional(), permissions: z .object({ read: z .string() .regex( new RegExp( "^[0-9a-f]{8}-[0-9a-f]{4}-[45][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", ), ) .describe("The reward ID that controls this permission action") .optional(), update: z .string() .regex( new RegExp( "^[0-9a-f]{8}-[0-9a-f]{4}-[45][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", ), ) .describe("The reward ID that controls this permission action") .optional(), delete: z .string() .regex( new RegExp( "^[0-9a-f]{8}-[0-9a-f]{4}-[45][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", ), ) .describe("The reward ID that controls this permission action") .optional(), }) .optional(), }) .strict() .describe("A collection of related roles within a guild");