Untitled
unknown
plain_text
a year ago
3.4 kB
11
Indexable
import Joi from 'joi'; // Define the base schema for MandatoryCover const mandatoryCoverSchema = Joi.object({ coverCode: Joi.string().valid('CT', 'PP', 'BG').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }); // Define the schema for coverageDetails export const CreateHomeFormSchema = Joi.object({ coverageDetails: Joi.object({ ownershipCode: Joi.number().valid(1, 2).required(), nationalityCode: Joi.number().required(), mandatoryCovers: Joi.array().items( Joi.object({ coverCode: Joi.string().valid('CT', 'PP', 'BG').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }) ).required().when('ownershipCode', { switch: [ { is: 1, then: Joi.array().items( Joi.object({ coverCode: Joi.string().valid('CT').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }), Joi.object({ coverCode: Joi.string().valid('PP').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }), Joi.object({ coverCode: Joi.string().valid('BG').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }), Joi.array().items( Joi.object({ coverCode: Joi.string().valid('BG').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }), Joi.object({ coverCode: Joi.string().valid('CT').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }), Joi.object({ coverCode: Joi.string().valid('PP').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }) ) ) }, { is: 2, then: Joi.array().items( Joi.object({ coverCode: Joi.string().valid('CT').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }), Joi.object({ coverCode: Joi.string().valid('PP').required(), coverIncluded: Joi.boolean().required(), coverageLimit: Joi.number().required(), coverageRange: Joi.string().optional() }) ) } ] }) }).required().error(errors => { mapErrorMessages(errors, 'Coverage details is required.') });
Editor is loading...
Leave a Comment