feat: phase 2 — exercises + programs CRUD, seed 12 exercices + 2 programmes
This commit is contained in:
25
backend/src/validators/program.validators.ts
Normal file
25
backend/src/validators/program.validators.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { z } from "zod";
|
||||
|
||||
const programExerciseSchema = z.object({
|
||||
exerciseId: z.string().uuid(),
|
||||
sets: z.number().int().min(1),
|
||||
reps: z.number().int().min(1).optional(),
|
||||
durationSec: z.number().int().min(1).optional(),
|
||||
order: z.number().int().min(0).default(0),
|
||||
});
|
||||
|
||||
export const createProgramSchema = z.object({
|
||||
name: z.string().min(2).max(50),
|
||||
description: z.string().max(300).optional(),
|
||||
isPublic: z.boolean().default(false),
|
||||
exercises: z.array(programExerciseSchema).min(1),
|
||||
});
|
||||
|
||||
export const updateProgramSchema = z.object({
|
||||
name: z.string().min(2).max(50).optional(),
|
||||
description: z.string().max(300).optional(),
|
||||
isPublic: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export type CreateProgramInput = z.infer<typeof createProgramSchema>;
|
||||
export type UpdateProgramInput = z.infer<typeof updateProgramSchema>;
|
||||
Reference in New Issue
Block a user