import { z } from 'zod';

export const RoleGroupInputSchema = z.object({
  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(),
}).strict();

