code: function(options) {
      if (this.fetchAllRequired()) {
        options = _.clone(options) || {};
        options.ignoreFailures = true;
        // no need load collection models
        options.skipModelsFetch = true;
        return this.fetchAll(options);
      }
      return when.resolve();
    }
docs: ## BaseModel.prototype.preDelete
  
  preDelete is called before main destroy (deleting from db) is run.
  Here you can for example check access control dependencies.
  
  @param {Object} options Options for deleting
  @returns {Promise} by default fetches all relations before deleting.