{
"BU":[
{
"businessName":"OOO Александров",
"businessStatus":"0"
}
],
"PN":[
{
"number":"7777777",
"status":1
},
{
"number":"7777777",
"status":2
}
]
}
Joi.object({
BU: Joi.array()
.items(require("./BU"))
.max(1),
PN: Joi.array()
.items(require("./PN"))
.max(5)
}).when(
Joi.object({
BU: Joi.exist()
}).unknown(),
{
then: Joi.object({
PN: Joi.array()
.required()
.has(
Joi.object({
status: Joi.valid("1")
})
)
})
}
);
const schema = Joi.object().keys({
BU: Joi.object().keys({
businessName: Joi.string(),
businessStatus: Joi.string(),
}),
PN: Joi.object()
.keys({
number: Joi.string(), // стоит поменять на number() судя по тому, что у вас приводится
status: Joi.number().valid(1)
})
.required()
.when('BU', {
is: Joi.object(),
then: Joi.object({ status: Joi.required() })
})
});