Untitled

 avatar
unknown
plain_text
a year ago
1.6 kB
8
Indexable
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(CoverCode.CONTENTS, CoverCode.PERSONAL_POSESSIONS, CoverCode.BUILDING).required(),
				coverIncluded: Joi.boolean().required(),
				coverageLimit: Joi.number().required(),
				coverageRange: Joi.string().optional()
			})
		).required().when('ownershipCode', {
			switch: [
				{
					is: 1,
					then: Joi.alternatives().try(
						Joi.array().has([
							Joi.object({ coverCode: Joi.string().valid(CoverCode.CONTENTS).required() }),
							Joi.object({ coverCode: Joi.string().valid(CoverCode.PERSONAL_POSESSIONS).required() }),
							Joi.object({ coverCode: Joi.string().valid(CoverCode.BUILDING).required() })
						]).length(3),
						Joi.array().has([
							Joi.object({ coverCode: Joi.string().valid(CoverCode.CONTENTS).required() }),
							Joi.object({ coverCode: Joi.string().valid(CoverCode.PERSONAL_POSESSIONS).required() })
						]).length(2),
						Joi.array().has([
							Joi.object({ coverCode: Joi.string().valid(CoverCode.BUILDING).required() })
						]).length(1)
					)
				},
				{
					is: 2,
					then: Joi.array().has([
						Joi.object({ coverCode: Joi.string().valid(CoverCode.CONTENTS).required() }),
						Joi.object({ coverCode: Joi.string().valid(CoverCode.PERSONAL_POSESSIONS).required() })
					]).length(2)
				}
			]
		})
	}).required()
}).unknown(true);
Editor is loading...
Leave a Comment