feat: Admin Area Challenges: List, Import/Export and Add/Edit Modal 1.02

This commit is contained in:
OpenVelo Agent
2026-07-22 21:47:50 +00:00
parent d3307c3225
commit d111c519a2
8 changed files with 351 additions and 159 deletions
@@ -15,12 +15,12 @@ export const ChallengeDifficultySchema = z.enum(DIFFICULTIES);
export const ChallengeProtocolSchema = z.enum(PROTOCOLS);
export const ChallengeIdParamSchema = z.object({
id: z.string().min(1).max(64),
id: z.string().uuid({ message: 'Invalid challenge id' }),
});
export const ListChallengesQuerySchema = z.object({
q: z.string().trim().min(1).max(128).optional(),
categoryId: z.string().min(1).max(64).optional(),
categoryId: z.string().uuid({ message: 'Invalid category id' }).optional(),
});
export type ListChallengesQuery = z.infer<typeof ListChallengesQuerySchema>;
@@ -44,7 +44,7 @@ const portField = z
const baseShape = {
descriptionMd: z.string().max(64_000),
categoryId: z.string().min(1).max(64),
categoryId: z.string().uuid({ message: 'Category is required' }),
difficulty: ChallengeDifficultySchema,
initialPoints: z.number().int().min(1).max(100000),
minimumPoints: z.number().int().min(1).max(100000),