Validate collection properties
        Performs validation on collection properties to return a result object.
        :param model:  object or dict
        :param context: object, dict or None
        :return: shiftschema.result.Result

def validate_collections(self, model, context=None):
        """
        Validate collection properties
        Performs validation on collection properties to return a result object.
        :param model:  object or dict
        :param context: object, dict or None
        :return: shiftschema.result.Result
        """
        result = Result()
        for property_name in self.collections:
            prop = self.collections[property_name]
            collection = self.get(model, property_name)

            errors = prop.validate(
                value=collection,
                model=model,
                context=context
            )
            if len(errors):
                result.add_collection_errors(
                    property_name=property_name,
                    direct_errors=errors
                )

            collection_errors = prop.validate_with_schema(
                collection=collection,
                context=context
            )

            result.add_collection_errors(
                property_name=property_name,
                collection_errors=collection_errors
            )

        return result