code: function separateJoiValidationObject(config) {
    const post = {};
    const put = {};
    const schema = Object.assign({}, config);
    Object.keys(schema).forEach((prop) => {
      if (schema[prop] === null) {
        throw new Error('Null configs are not supported!');
      } else if (schema[prop].joi) {
        const itemConf = schema[prop];
        if (!itemConf.joi.isJoi) {
          itemConf.joi = Joi.object(itemConf.joi);
        }
        put[prop] = itemConf.joi;
        if (itemConf.required) {
          post[prop] = itemConf.joi.required();
        } else {
          post[prop] = itemConf.joi;
        }
        delete schema[prop].joi;
      }
    });
    return {
      schema,
      post,
      put,
    };
  }
docs: The model definition should have the Joi Definitions also
  But not the required() method of Joi
  because it will be added by this method
  The Joi object will be used for both POST and PUT
  only difference will be of required() in various keys among them
  
  @function
  @name separateJoiValidationObject
  @param  {object} config The Schema Config object
  @return {object}