import joi from 'joi'; export class userBaseValidation { static createValidation = { body: joi.object().required().keys({ name: joi.string().empty().required().messages({ "string.base": "please enter a valid name", "any.required": "name is required", "string.empty": "name can not be empty", }), email: joi.string().required().email({ minDomainSegments: 2, tlds: { allow: ['com', 'net', 'org', 'eg', 'io'] } }).empty().messages({ "string.email": "please enter a valid email", "any.required": "email must be entered", "string.empty": "email can not be empty", }), password: joi.string().empty().min(8).required().messages({ "string.base": "please enter a valid password", "any.required": "password must be entered", "string.empty": "password cannot be empty", "string.min": "password must be at least 8 characters" }), confirmPassword: joi.string().empty().min(8).required().messages({ "string.base": "please enter a valid password", "any.required": "password must be entered", "string.empty": "password cannot be empty", "string.min": "password must be at least 8 characters" }), image: joi.object().optional().keys({ url: joi.string().optional().messages({ "string.base": "please enter a valid url", }), public_id: joi.string().optional().messages({ "string.base": "please enter a valid public_id", }) }), gender: joi.string().empty().required().messages({ "string.base": "please enter a valid gender", "any.required": "gender must be entered", "string.empty": "gender cannot be empty", }), height: joi.number().empty().required().messages({ "number.base": "please enter a valid height number", "any.required": "height must be entered", "number.empty": "height cannot be empty", }), weight: joi.number().empty().required().messages({ "number.base": "please enter a valid weight number", "any.required": "weight must be entered", "number.empty": "weight cannot be empty", }), fitness_level: joi.string().empty().required().messages({ "string.base": "please enter a valid fitness_level", "any.required": "fitness_level must be entered", "string.empty": "fitness_level cannot be empty", }), preferences: joi.object().optional().keys({ fitness_goal: joi.string().empty().required().messages({ "string.base": "please enter a valid fitness_goal", "any.required": "fitness_goal must be entered", "string.empty": "fitness_goal cannot be empty", }), target_weight: joi.number().empty().required().messages({ "number.base": "please enter a valid target_weight number", "any.required": "target_weight must be entered", "number.empty": "target_weight cannot be empty", }), workout_frequency: joi.number().empty().required().messages({ "number.base": "please enter a valid workout_frequency number", "any.required": "workout_frequency must be entered", "number.empty": "workout_frequency cannot be empty", }), preferred_days: joi.array().empty().required().items(joi.string().empty().required().messages({ "string.base": "please enter a valid preferred_days", "any.required": "preferred_days must be entered", "string.empty": "preferred_days cannot be empty", })), workout_place: joi.string().empty().required().messages({ "string.base": "please enter a valid workout_place", "any.required": "workout_place must be entered", "string.empty": "workout_place cannot be empty", }), preferred_equipment: joi.array().empty().required().items(joi.string().empty().required().messages({ "string.base": "please enter a valid preferred_equipment", "any.required": "preferred_equipment must be entered", "string.empty": "preferred_equipment cannot be empty", })) }), injuries: joi.array().empty().required().items(joi.string().empty().required().messages({ "string.base": "please enter a valid injuries", "any.required": "injuries must be entered", "string.empty": "injuries cannot be empty", })), dob: joi.date().empty().optional().messages({ "date.base": "please enter a valid date", }) }) } }