import Joi from 'joi'; /** * Validator for saving video progress */ export const SaveVideoProgressValidator = Joi.object({ video_progress_seconds: Joi.number().min(0).required().messages({ 'any.required': 'Video progress seconds is required', 'number.min': 'Video progress must be at least 0' }), video_duration_seconds: Joi.number().min(0).optional().messages({ 'number.min': 'Video duration must be at least 0' }) }); /** * Validator for quiz answer */ const QuizAnswerValidator = Joi.object({ question_id: Joi.number().integer().positive().required().messages({ 'any.required': 'Question ID is required', 'number.positive': 'Question ID must be positive' }), choice_id: Joi.number().integer().positive().required().messages({ 'any.required': 'Choice ID is required', 'number.positive': 'Choice ID must be positive' }) }); /** * Validator for submitting quiz answers */ export const SubmitQuizValidator = Joi.object({ answers: Joi.array().items(QuizAnswerValidator).min(1).required().messages({ 'any.required': 'Answers are required', 'array.min': 'At least one answer is required' }) });