Untitled
unknown
plain_text
a year ago
2.1 kB
13
Indexable
import Joi from 'joi';
import { CoverCode } from './path-to-cover-code'; // Adjust the import path as needed
const BuildingSchema = Joi.object({
city: Joi.string().required(),
area: Joi.string().required(),
propertyTypeCode: Joi.number().required(),
buildingName: Joi.string().required(),
flatVillaNo: Joi.number().required(),
poBox: Joi.number().required(),
numberOfFloors: Joi.number().required(),
numberOfBedrooms: Joi.number().required(),
latitude: Joi.number().required(),
longitude: Joi.number().required(),
street: Joi.string().required(),
zone: Joi.string().required(),
grl: Joi.string().required(),
infoMapStatus: Joi.string().required(),
effectiveDate: Joi.string().required(),
mortgageCode: Joi.number().required(),
mortgage: Joi.string().required(),
});
const CoverageDetailsSchema = Joi.object({
listedItems: Joi.object({
contents: Joi.array().items(
Joi.object({
coverDescription: Joi.string().required(),
coverageLimit: Joi.number().required(),
})
).optional(),
personalPossessions: Joi.array().items(
Joi.object({
coverDescription: Joi.string().required(),
coverageLimit: Joi.number().required(),
})
).optional(),
}).optional(),
mandatoryCovers: Joi.array().items(
Joi.object({
coverCode: Joi.string().valid(CoverCode.CONTENTS, CoverCode.PERSONAL_POSESSIONS, CoverCode.BUILDING).required(),
coverIncluded: Joi.boolean().optional(),
coverageLimit: Joi.number().required(),
coverageRange: Joi.string().optional(),
})
).required(),
}).optional();
export const UpdateHomeFormSchema = Joi.object({
building: BuildingSchema,
coverageDetails: CoverageDetailsSchema,
}).xor('building', 'coverageDetails'); // Ensure that either 'building' or 'coverageDetails' is required, but not both
Editor is loading...
Leave a Comment