api/app/validators/meal.ts
2025-08-25 19:12:28 +02:00

40 lines
890 B
TypeScript

import vine from '@vinejs/vine'
const meals = vine.array(
vine.object({
date: vine.string(), // YYYY-MM-DD
meal_type: vine.string().in(['dinner', 'lunch']),
})
)
export const createMealValidator = vine.compile(
vine.union([
vine.union.if(
(data) => vine.helpers.isObject(data) && 'meals' in data,
vine.object({
meals,
})
),
vine.union.else(
vine.object({
date: vine.date(),
type: vine.string().in(['Déjeuner', 'Dîner']),
courses: vine
.array(
vine.object({
name: vine.string().minLength(1).maxLength(255),
description: vine.string().minLength(1),
})
)
.minLength(1),
})
),
])
)
export const updateMealsRegistrationsValidator = vine.compile(
vine.object({
userId: vine.number().min(1),
meals,
})
)